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)