Пример #1
0
class TestInitialPossibleMoves(unittest.TestCase):
    """
        Introduced after a bug in a move found
    """

    def test_white(self):
        self.board = Board(player_down="W", create=True)
        self.game_engine = GameEngine(self.board)
        assert self.board.player_down is "W"

        # all possible moves at start
        assert len([k for i in self.game_engine.possible_moves().values() for k in i]) == 20

    def test_black(self):
        self.board = Board(player_down="B", create=True)
        self.game_engine = GameEngine(self.board)
        assert self.board.player_down is "B"

        # all possible moves at start
        assert len([k for i in self.game_engine.possible_moves().values() for k in i]) == 20
Пример #2
0
class TestModernDefence(unittest.TestCase):
    """
        http://www.chess.com/opening/eco/B06_Modern_Defense_Standard_Defense
    """

    def setUp(self):
        self.board = Board(player_down="W", create=True)
        self.game_engine = GameEngine(self.board)

    def test_moves(self):
        assert self.board.player_down is "W"

        # all possible moves at start
        assert len([k for i in self.game_engine.possible_moves().values() for k in i]) == 20

        assert self.game_engine.move((4, 6), (4, 4), "W")
        assert self.game_engine.move((6, 1), (6, 2), "B")

        assert self.game_engine.move((3, 6), (3, 4), "W")
        assert self.game_engine.move((5, 0), (6, 1), "B")

        assert self.game_engine.move((1, 7), (2, 5), "W")
        assert self.game_engine.move((3, 1), (3, 2), "B")

        self.assertRaises(Exception, self.wrong_player_moved)

        assert len(self.board.moves) is 6
        assert self.board.turn is "W"

        # undo all moves
        for i in range(0, len(self.board.moves)):
            self.game_engine.undo()
            # assert undo was fine
        assert self.board == Board(player_down="W", create=True)
        assert not self.board == Board(player_down="B", create=True)
        assert self.board.turn is "W"
        assert not self.board.moves

    def wrong_player_moved(self):
        # TODO move in separate class and make it generic, for now its fine
        assert self.game_engine.move((0, 1), (0, 2), "B")