Пример #1
0
 def test_legal_no_such_player(self):
     fsm = StateMachine()
     data = '''
     (role x)
     (init 1)
     (<= (legal x ?x) (true ?x))
     '''
     fsm.store(data=data)
     self.assertFalse(fsm.legal(player='o', move='1'))
Пример #2
0
 def test_legal_player_and_move_failure(self):
     fsm = StateMachine()
     data = '''
     (role x)
     (init 1)
     (<= (legal x ?x) (true ?x))
     '''
     fsm.store(data=data)
     self.assertFalse(fsm.legal(player='x', move='2'))
Пример #3
0
 def test_legal_all_moves(self):
     fsm = StateMachine()
     data = '''
     (role x)
     (role o)
     (init 1) (init 2) (init 3) (init 4)
     (even 2) (even 4)
     (odd 1) (odd 3)
     (<= (legal x ?x) (true ?x) (even ?x))
     (<= (legal o ?x) (true ?x) (odd ?x))
     '''
     fsm.store(data=data)
     self.assertEqual({'x': ['2', '4'], 'o': ['1', '3']}, fsm.legal())
Пример #4
0
 def test_legal_player_moves(self):
     fsm = StateMachine()
     data = '''
     (role x)
     (role o)
     (init 1) (init 2) (init 3) (init 4)
     (even 2) (even 4)
     (odd 1) (odd 3)
     (<= (legal x ?x) (true ?x) (even ?x))
     (<= (legal o ?x) (true ?x) (odd ?x))
     '''
     fsm.store(data=data)
     self.assertEqual(['2', '4'], fsm.legal(player='x'))