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)
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)