示例#1
0
 def test_get_next_turn(self):
     self.assertEqual(get_next_turn(self.game), self.x)
     move(self.game, self.x, position=(0, 0))
     self.assertEqual(get_next_turn(self.game), self.o)
示例#2
0
 def test_play_invalid_position(self):
     with self.assertRaisesRegexp(InvalidMovement,
                                  'Position out of range.'):
         move(self.game, self.x, position=(9, 8))
示例#3
0
 def test_play_position_already_taken(self):
     move(self.game, self.x, position=(0, 0))
     with self.assertRaisesRegexp(InvalidMovement,
                                  'Position already taken.'):
         move(self.game, self.o, position=(0, 0))
示例#4
0
 def test_play_O_wins(self):
     # [
     #     ["O", "X", "X"],
     #     ["X", "O", "-"],
     #     ["-", "-", "O"],   <--- "O" wins
     # ]
     move(self.game, self.x, position=(0, 1))
     move(self.game, self.o, position=(0, 0))
     move(self.game, self.x, position=(0, 2))
     move(self.game, self.o, position=(1, 1))
     move(self.game, self.x, position=(1, 0))
     with self.assertRaisesRegexp(GameOver, '"O" wins!'):
         move(self.game, self.o, position=(2, 2))
     self.assertEqual(get_winner(self.game), self.o)
     with self.assertRaisesRegexp(InvalidMovement, 'Game is over'):
         move(self.game, self.x, position=(2, 0))
示例#5
0
 def test_play_one_player_moves_twice(self):
     move(self.game, self.x, position=(0, 1))
     with self.assertRaisesRegexp(InvalidMovement, '"O" moves next'):
         move(self.game, self.x, position=(0, 0))
 def test_get_next_turn(self):
     self.assertEqual(get_next_turn(self.game), self.x)
     move(self.game, self.x, position=(0, 0))
     self.assertEqual(get_next_turn(self.game), self.o)
示例#7
0
 def test_play_no_winner(self):
     # [
     #     ["X", "O", "X"],
     #     ["O", "O", "X"],
     #     ["X", "X", "O"],
     # ]
     move(self.game, self.x, position=(0, 0))
     move(self.game, self.o, position=(0, 1))
     move(self.game, self.x, position=(0, 2))
     move(self.game, self.o, position=(1, 0))
     move(self.game, self.x, position=(1, 2))
     move(self.game, self.o, position=(1, 1))
     move(self.game, self.x, position=(2, 0))
     move(self.game, self.o, position=(2, 2))
     with self.assertRaisesRegexp(GameOver, 'Game is tied!'):
         move(self.game, self.x, position=(2, 1))
     self.assertEqual(get_winner(self.game), None)
     self.assertTrue(_board_is_full(self.game['board']))
     with self.assertRaisesRegexp(InvalidMovement, 'Game is over.'):
         move(self.game, self.o, position=(0, 0))
 def test_play_position_already_taken(self):
     move(self.game, self.x, position=(0, 0))
     with self.assertRaisesRegexp(InvalidMovement,
                                  'Position already taken.'):
         move(self.game, self.o, position=(0, 0))
 def test_play_invalid_position(self):
     with self.assertRaisesRegexp(InvalidMovement,
                                  'Position out of range.'):
         move(self.game, self.x, position=(9, 8))
示例#10
0
 def test_play_one_player_moves_twice(self):
     move(self.game, self.x, position=(0, 1))
     with self.assertRaisesRegexp(InvalidMovement, '"O" moves next'):
         move(self.game, self.x, position=(0, 0))
示例#11
0
 def test_play_O_wins(self):
     # [
     #     ["O", "X", "X"],
     #     ["X", "O", "-"],
     #     ["-", "-", "O"],   <--- "O" wins
     # ]
     move(self.game, self.x, position=(0, 1))
     move(self.game, self.o, position=(0, 0))
     move(self.game, self.x, position=(0, 2))
     move(self.game, self.o, position=(1, 1))
     move(self.game, self.x, position=(1, 0))
     with self.assertRaisesRegexp(GameOver, '"O" wins!'):
         move(self.game, self.o, position=(2, 2))
     self.assertEqual(get_winner(self.game), self.o)
     with self.assertRaisesRegexp(InvalidMovement, 'Game is over'):
         move(self.game, self.x, position=(2, 0))
示例#12
0
 def test_play_no_winner(self):
     # [
     #     ["X", "O", "X"],
     #     ["O", "O", "X"],
     #     ["X", "X", "O"],
     # ]
     move(self.game, self.x, position=(0, 0))
     move(self.game, self.o, position=(0, 1))
     move(self.game, self.x, position=(0, 2))
     move(self.game, self.o, position=(1, 0))
     move(self.game, self.x, position=(1, 2))
     move(self.game, self.o, position=(1, 1))
     move(self.game, self.x, position=(2, 0))
     move(self.game, self.o, position=(2, 2))
     with self.assertRaisesRegexp(GameOver, 'Game is tied!'):
         move(self.game, self.x, position=(2, 1))
     self.assertEqual(get_winner(self.game), None)
     self.assertTrue(_board_is_full(self.game['board']))
     with self.assertRaisesRegexp(InvalidMovement, 'Game is over.'):
         move(self.game, self.o, position=(0, 0))