expand tests for castling etc - chess-puzzles - chess puzzle book generator
 (HTM) git clone git://git.codemadness.org/chess-puzzles
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 4ccd78674dc439a488331c561af552b0b129d621
 (DIR) parent 732bc42efda65c2ecc30a416f20516b9fcca62f6
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Wed, 20 Dec 2023 20:19:08 +0100
       
       expand tests for castling etc
       
       Diffstat:
         M tests.sh                            |      42 +++++++++++++++++++++++++++++++
       
       1 file changed, 42 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/tests.sh b/tests.sh
       @@ -16,6 +16,7 @@ testfen() {
        
        testfen 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1' \
                "startpos" ""
       +
        # white castling
        testfen 'rnbqkb1r/p4ppp/1pp1pn2/3p4/3P1B2/3BPN2/PPP2PPP/RN1Q1RK1 b kq - 1 6' \
                'rnbqkb1r/p4ppp/1pp1pn2/3p4/3P1B2/3BPN2/PPP2PPP/RN1QK2R w KQkq - 0 6' 'e1g1'
       @@ -23,3 +24,44 @@ testfen 'rnbqkb1r/p4ppp/1pp1pn2/3p4/3P1B2/3BPN2/PPP2PPP/RN1Q1RK1 b kq - 1 6' \
        testfen 'rnbq1rk1/p3bppp/1pp1pn2/3p4/3P1B2/3BPN2/PPPN1PPP/R2Q1RK1 w - - 4 8' \
                'rnbqk2r/p3bppp/1pp1pn2/3p4/3P1B2/3BPN2/PPPN1PPP/R2Q1RK1 b kq - 3 7' 'e8g8'
        
       +# check castling: the white queen is in check, but this doesn't change the castling state.
       +testfen 'rnb1kb1r/pp2qppp/2p2n2/3p4/3P1B2/3B1N2/PPP2PPP/RN1QK2R w KQkq - 0 8' \
       +        'rnb1kb1r/pp2qppp/2p1pn2/3P4/3P1B2/3B1N2/PPP2PPP/RN1QK2R b KQkq - 0 7' 'e6d5'
       +# check castling: black moves kingside rook: this removes castling on this side.
       +testfen 'rnb1kbr1/pp2qppp/2p2n2/3p4/3P1B2/3B1N2/PPP1QPPP/RN2K2R w KQq - 2 9' \
       +        'rnb1kb1r/pp2qppp/2p2n2/3p4/3P1B2/3B1N2/PPP1QPPP/RN2K2R b KQkq - 1 8' 'h8g8'
       +# check castling: white moves kingside rook: this removes castling on this side.
       +testfen 'rnb1kb2/pp2qppr/2p2n2/3p4/3P1B2/3B1N2/PPP1QPPP/RN2K1R1 b Qq - 3 9'\
       +        'rnb1kb2/pp2qppr/2p2n2/3p4/3P1B2/3B1N2/PPP1QPPP/RN2K2R w KQq - 2 9'\
       +        'h1g1'
       +# check castling: white moves queenside rook: this removes castling on this side.
       +testfen 'rnb1kb2/1p2qpp1/p1p2n2/3p4/3P1B2/3B1N2/PPPNQPPr/1R2K1R1 b q - 1 11'\
       +        'rnb1kb2/1p2qpp1/p1p2n2/3p4/3P1B2/3B1N2/PPPNQPPr/R3K1R1 w Qq - 0 11'\
       +        'a1b1'
       +# white king move, remove castling availability
       +testfen 'rnb1kb2/1p2qpp1/p1p2n2/3p4/3P1B2/3B1N2/PPPNQPPr/R2K2R1 b q - 1 11'\
       +        'rnb1kb2/1p2qpp1/p1p2n2/3p4/3P1B2/3B1N2/PPPNQPPr/R3K1R1 w Qq - 0 11'\
       +        'e1d1'
       +# white king move, remove castling availability
       +testfen 'r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R2K3R b kq - 1 1'\
       +        'r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R3K2R w KQkq - 0 1'\
       +        'e1d1'
       +# black king move, remove castling availability
       +testfen 'r4k1r/pppppppp/8/8/8/8/PPPPPPPP/R2K3R w - - 2 2'\
       +        'r3k2r/pppppppp/8/8/8/8/PPPPPPPP/R2K3R b kq - 1 1'\
       +        'e8f8'
       +
       +
       +# black is laz0rbeamed by white bishop on the queenside on b8, but not on the
       +# castling square it is allowed to castle.
       +testfen '2kr1br1/pp2qppp/n1p1bn2/3p4/3P1B2/3BQN2/PPP2PPP/RN2K2R w KQ - 8 12'\
       +        'r3kbr1/pp2qppp/n1p1bn2/3p4/3P1B2/3BQN2/PPP2PPP/RN2K2R b KQq - 7 11'\
       +        'e8c8'
       +# white moves bishop and blocks castling for black, but this doesn't change the
       +# castle state itself.
       +testfen 'r3kbr1/pp2qppp/n1p2n2/3p1B2/3P1B2/4QN1b/PPP2PPP/RN2K2R b KQq - 9 12'\
       +        'r3kbr1/pp2qppp/n1p2n2/3p4/3P1B2/3BQN1b/PPP2PPP/RN2K2R w KQq - 8 12'\
       +        'd3f5'
       +
       +# TODO: test halfmove
       +# TODO: test enpassant