def test_promotions_blocked(self): board = load_board([[" ", " ", "", "", " ", " ", "", " "], [" ", " ", "", "", " ", " ", "", " "], [" ", " ", "", "", " ", " ", "", " "], [" ", " ", "", "", " ", " ", "", " "], [" ", " ", "", "", " ", " ", "", " "], ["k", " ", "", "", " ", " ", "", " "], ["p", " ", "", "", " ", " ", "", " "], ["K", " ", "", "", " ", " ", "", " "]]) assert get_promotions(board, sq_to_index("a2"), sq_to_index("a1")) == [] assert get_promotions(board, sq_to_index("a2"), sq_to_index("b1")) == []
def test_promotions_pawn_black_capture(self): board = load_board([[" ", " ", "", "", " ", "k", "", "K"], [" ", " ", "", "", " ", " ", "", " "], [" ", " ", "", "", " ", " ", "", " "], [" ", " ", "", "", " ", " ", "", " "], [" ", " ", "", "", " ", " ", "", " "], [" ", " ", "", "", " ", " ", "", " "], ["p", " ", "", "", " ", " ", "", " "], [" ", "B", "", "", " ", " ", "", " "]]) assert sorted(get_promotions(board, sq_to_index("a2"), sq_to_index("a1"))) == \ sorted(["q", "r", "b", "n"]) assert sorted(get_promotions(board, sq_to_index("a2"), sq_to_index("b1"))) == \ sorted(["q", "r", "b", "n"])
def test_promotions_pawn_white_move(self): board = load_board([[" ", "", "", "", " ", "k", "", "K"], ["P", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "]]) assert sorted(get_promotions(board, sq_to_index("a7"), sq_to_index("a8"))) == \ sorted(["Q", "R", "B", "N"])
def test_promotions_pawn_forward_two_spaces(self): board = load_board([[" ", "", "", "", " ", "k", "", "K"], [" ", "", "", "", " ", " ", "", " "], ["P", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "]]) assert get_promotions(board, sq_to_index("a6"), sq_to_index("a8")) == []
def test_promotions_pawn_backwards(self): board = load_board([[" ", "", "", "", " ", "k", "", "K"], ["p", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "], [" ", "", "", "", " ", " ", "", " "]]) assert get_promotions(board, sq_to_index("a7"), sq_to_index("a8")) == []
def test_promotions_not_pawn(self): board = load_board([[" ", "", "", "", "", "k", "", "K"], ["R", "", "", "", "", " ", "", " "], [" ", "", "", "", "", " ", "", " "], [" ", "", "", "", "", " ", "", " "], [" ", "", "", "", "", " ", "", " "], [" ", "", "", "", "", " ", "", " "], [" ", "", "", "", "", " ", "", " "], [" ", "", "", "", "", " ", "", " "]]) board = Board() assert get_promotions(board, sq_to_index("a7"), sq_to_index("a8")) == []