Пример #1
0
    def test_execution_no_transitions(self):
        sm = StateMachineNetwork([State(1)], [])
        sm.states[1].set_biases([1, 2])
        sm.states[1].set_weights([[1, 2], [3, 4]])

        next_state, output = sm.activate(1, [5, 10])
        self.assertEqual(next_state, 1)
        self.assertEqual(output, [26, 57])
Пример #2
0
    def test_execution_true_transition(self):
        sm = StateMachineNetwork([State(1), State(2)], [Transition(1, 2)])
        sm.states[1].set_biases([1, 2])
        sm.states[1].set_weights([[1, 2], [3, 4]])
        sm.transitions[1][0].add_condition(Condition(0, operator.eq, 5))

        next_state, output = sm.activate(1, [5, 10])
        self.assertEqual(next_state, 2)
        self.assertEqual(output, [26, 57])
Пример #3
0
    def test_execution_multiple_transitions_all_false(self):
        sm = StateMachineNetwork(
            [State(1), State(2), State(3)],
            [Transition(1, 2), Transition(1, 2)])
        sm.states[1].set_biases([1, 2])
        sm.states[1].set_weights([[1, 2], [3, 4]])
        sm.transitions[1][0].add_condition(Condition(0, operator.eq, 4))
        sm.transitions[1][1].add_condition(Condition(1, operator.gt, 10))

        next_state, output = sm.activate(1, [5, 10])
        self.assertEqual(1, next_state)
        self.assertEqual(output, [26, 57])