def test_AGTUtility_valid(self): I = IntegratorMechanism(name="I", function=AGTUtilityIntegrator()) I.reinitialize_when = Never() assert np.allclose([[0.0]], I.function_object.previous_short_term_utility) assert np.allclose([[0.0]], I.function_object.previous_long_term_utility) I.function_object.reinitialize(0.2, 0.8) assert np.allclose([[0.2]], I.function_object.previous_short_term_utility) assert np.allclose([[0.8]], I.function_object.previous_long_term_utility) I.function_object.reinitialize() assert np.allclose([[0.0]], I.function_object.previous_short_term_utility) assert np.allclose([[0.0]], I.function_object.previous_long_term_utility) I.reinitialize(0.3, 0.7) assert np.allclose([[0.3]], I.function_object.previous_short_term_utility) assert np.allclose([[0.7]], I.function_object.previous_long_term_utility) print(I.value) print(I.function_object.combine_utilities(0.3, 0.7)) assert np.allclose(I.function_object.combine_utilities(0.3, 0.7), I.value) I.reinitialize() assert np.allclose([[0.0]], I.function_object.previous_short_term_utility) assert np.allclose([[0.0]], I.function_object.previous_long_term_utility) assert np.allclose(I.function_object.combine_utilities(0.0, 0.0), I.value)
def test_utility_integrator_short_plus_long(self): # default params: # initial_short_term_utility = 0.0 # initial_long_term_utility = 0.0 # short_term_rate = 1.0 # long_term_rate = 1.0 U = IntegratorMechanism( name = "AGTUtilityIntegrator", function=AGTUtilityIntegrator( operation="s+l" ) ) engagement = [] short_term_util = [] long_term_util = [] for i in range(50): engagement.append(U.execute([1])[0][0]) short_term_util.append(U.function_object.short_term_utility_logistic[0]) long_term_util.append(U.function_object.long_term_utility_logistic[0]) print("engagement = ", engagement) print("short_term_util = ", short_term_util) print("long_term_util = ", long_term_util)