コード例 #1
0
    def test_undo(self, move_data):
        move = Move(*move_data)
        from_piece_pre_move = self.test_board.get_piece(move.from_x, move.from_y)
        to_piece_pre_move = self.test_board.get_piece(move.to_x, move.to_y)
        move.execute(self.test_board)
        move.undo(self.test_board)
        from_piece_post_move = self.test_board.get_piece(move.from_x, move.from_y)
        to_piece_post_move = self.test_board.get_piece(move.to_x, move.to_y)

        self.assertEqual(from_piece_pre_move, from_piece_post_move)
        self.assertEqual(to_piece_pre_move, to_piece_post_move)
コード例 #2
0
    def test_execute(self, move_data, should_promote):
        move = Move(*move_data)
        from_piece_pre_move = self.test_board.get_piece(move.from_x, move.from_y)
        move.execute(self.test_board)
        from_piece_post_move = self.test_board.get_piece(move.from_x, move.from_y)
        to_piece_post_move = self.test_board.get_piece(move.to_x, move.to_y)
        self.assertEqual(from_piece_post_move, pieces.Blank)

        if should_promote:
            self.assertEqual(from_piece_pre_move, pieces.Pawn)
            self.assertEqual(to_piece_post_move, pieces.Queen)
        else:
            self.assertEqual(from_piece_pre_move, to_piece_post_move)