def assert_try_move_is(self, expected_winner, pieces_before, pieces_after, position, piece): set_board(self.board, pieces_before) with self.board.try_move(position, piece) as (winner, state): self.assertEqual(expected_winner, winner) assert_board_is(self, self.board, pieces_after) assert_board_state_tuple_is(self, pieces_after, state) assert_board_is(self, self.board, pieces_before)
def test_constructor(self): assert_board_is(self, self.board)
def assert_board_is_after_move(self, pieces, position, piece): self.board.make_move(position, piece) assert_board_is(self, self.board, pieces)
def test_make_move_indicates_draw_when_board_full(self): self.assert_make_moves_winner_is(Board.DRAW, [4, 0, 6, 2, 1, 7, 5, 3, 8]) assert_board_is(self, self.controller.board, "OXO|OXX|XOX")
def test_make_move_indicates_winner_when_o_wins(self): self.assert_make_moves_winner_is(Board.O, [0, 2, 1, 4, 3, 6]) assert_board_is(self, self.controller.board, "XXO|XO-|O--")
def test_make_move_indicates_winner_when_x_wins(self): self.assert_make_moves_winner_is(Board.X, [6, 2, 8, 1, 7]) assert_board_is(self, self.controller.board, "-OO|---|XXX")
def test_make_move_sets_board_and_changes_player_number_when_valid_move( self): self.player1.set_moves([4]) self.assertEqual((None, 4), self.controller.make_move()) assert_board_is(self, self.controller.board, "---|-X-|---") self.assertEqual(1, self.controller.player_number)