Exemple #1
0
 def test_timed_and_normal_transitions_mix(self):
     a = TimedFiniteAutomaton("start")
     a.add_state("a")
     a.add_state("b")
     a.add_transition("start", "a", "foo")
     a.add_transition("start", "b", 1.0)
     a.tick(2.0)
     self.assertEqual("b", a.state)
Exemple #2
0
 def test_timed_transition_trigger_the_first_one(self):
     a = TimedFiniteAutomaton("start")
     a.add_state("a")
     a.add_state("b")
     a.add_transition("start", "a", 2.0)
     a.add_transition("start", "b", 1.0)
     a.tick(2.0)
     self.assertEqual("b", a.state)
Exemple #3
0
 def test_tick_without_arguments(self):
     a = TimedFiniteAutomaton("start")
     a.add_state("end")
     a.add_transition("start", "end", .2)
     a.tick()
     self.assertEqual("start", a.state)
     time.sleep(.3)
     a.tick()
     self.assertEqual("end", a.state)
Exemple #4
0
 def test_callback_called_on_transition_to_self_on_timer(self):
     a = TimedFiniteAutomaton("start")
     a.add_transition("start", "start", 1.0)
     transitions = []
     a.add_state_change_listener(lambda *a: transitions.append(a))
     a.tick(2.0)
     self.assertEqual(
         [("start", "start", 1.0)],
         transitions,
     )
Exemple #5
0
 def test_timed_transition(self):
     a = TimedFiniteAutomaton("start")
     a.add_state("end")
     a.add_transition("start", "end", 1.0)
     a.tick(2.0)
     self.assertEqual("end", a.state)