Esempio n. 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'))
Esempio n. 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'))
Esempio n. 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())
Esempio n. 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'))