Ejemplo n.º 1
0
 def test_transition_multiple(self):
     sm = StateMachineNetwork(
         [State(1), State(2)],
         [Transition(1, 2), Transition(2, 1)])
     self.assertEqual(len(sm.transitions), 2)
     self.assertEqual(len(sm.transitions[1]), 1)
     self.assertEqual(len(sm.transitions[2]), 1)
Ejemplo n.º 2
0
    def test_execution_multiple_transitions_all_true(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, 5))
        sm.transitions[1][1].add_condition(Condition(1, operator.gt, 5))

        next_state, output = sm.activate(1, [5, 10])
        self.assertIn(next_state, [2, 3])
        self.assertEqual(output, [26, 57])
Ejemplo n.º 3
0
 def test_many_conditions_true(self):
     transition = Transition(1, 2)
     transition.add_condition(Condition(1, operator.lt, 5))
     transition.add_condition(Condition(2, operator.eq, 4))
     transition.add_condition(Condition(2, operator.lt, 5))
     transition.add_condition(Condition(0, operator.lt, 4))
     transition.add_condition(Condition(1, operator.eq, 0))
     transition.add_condition(Condition(0, operator.lt, 4))
     self.assertTrue(transition.check_transition([0, 0, 4]))
Ejemplo n.º 4
0
    def test_execution_false_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, 4))

        next_state, output = sm.activate(1, [5, 10])
        self.assertEqual(next_state, 1)
        self.assertEqual(output, [26, 57])
Ejemplo n.º 5
0
 def test_invalid_transition(self):
     self.assertRaises(ValueError, StateMachineNetwork, [State(1)],
                       [Transition(4, 2)])
Ejemplo n.º 6
0
 def test_transition_multiple_begin_state(self):
     sm = StateMachineNetwork(
         [State(1), State(2), State(3)],
         [Transition(1, 2), Transition(1, 3)])
     self.assertEqual(len(sm.transitions), 3)
     self.assertEqual(len(sm.transitions[1]), 2)
Ejemplo n.º 7
0
 def test_two_conditions_false(self):
     transition = Transition(1, 2)
     transition.add_condition(Condition(1, operator.eq, 5))
     transition.add_condition(Condition(2, operator.eq, 4))
     self.assertFalse(transition.check_transition([0, 0, 4]))
Ejemplo n.º 8
0
 def test_one_condition_true(self):
     transition = Transition(1, 2)
     transition.add_condition(Condition(2, operator.eq, 5))
     self.assertTrue(transition.check_transition([0, 0, 5]))
Ejemplo n.º 9
0
 def test_no_codition(self):
     transition = Transition(1, 2)
     self.assertTrue(transition.check_transition([0, 0, 0]))
Ejemplo n.º 10
0
 def test_init(self):
     transition = Transition(1, 2)
     self.assertEqual(transition.begin_state_id, 1)
     self.assertEqual(transition.end_state_id, 2)