Some Test Suites Need to be Updated

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Norm Pollock
Posts: 1078
Joined: Thu Mar 09, 2006 4:15 pm
Location: Long Island, NY, USA

Some Test Suites Need to be Updated

Post by Norm Pollock »

While I was testing my new "epd" tool "epdCastling" on some Test Suites, it came to my attention that some of the Test Suites I was looking at were missing a Castling permission even though the corresponding King and Rook were in their original positions. What this means is that one (or both) of the sides in that Test Suite record did not have ALL of its legal moves available. Consequently it is possible that the "best move" given in the Test Suite is, in a few cases, not really the best move!

In the following two examples from two well-known Test Suites, the first line is from the Test Suite and the bottom line has a restored Castling permission. Other test suites, but not all, had this issue. My suggestion is that the affected records should be re-evaluated with the restoration of the missing Castling permissions.

Code: Select all

Line 84
r3k2r/1bq1bpp1/p4n2/2p1pP2/2NpP2p/3B4/PPP3PP/R1B1QR1K b k - bm h3; id "STS(v1.0) Undermine.084"; c0 "h3=10, Bc6=3, Bd8=1, Kf8=1"; c7 "h3 Bc6 Bd8 Kf8"; c8 "10 3 1 1"; c9 "h4h3 b7c6 e7d8 e8f8";
r3k2r/1bq1bpp1/p4n2/2p1pP2/2NpP2p/3B4/PPP3PP/R1B1QR1K b kq -  bm h3; id "STS(v1.0) Undermine.084"; c0 "h3=10, Bc6=3, Bd8=1, Kf8=1"; c7 "h3 Bc6 Bd8 Kf8"; c8 "10 3 1 1"; c9 "h4h3 b7c6 e7d8 e8f8";

Line 86
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b k - bm h5; id "STS(v1.0) Undermine.086"; c0 "h5=10, O-O=3, Qb6=1, Rc8=1, Rc8=3"; c7 "h5 O-O Qb6 Rc8 Rc8"; c8 "10 3 1 1 3"; c9 "h7h5 e8g8 c7b6 a8c8 a8c8";
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b kq -  bm h5; id "STS(v1.0) Undermine.086"; c0 "h5=10, O-O=3, Qb6=1, Rc8=1, Rc8=3"; c7 "h5 O-O Qb6 Rc8 Rc8"; c8 "10 3 1 1 3"; c9 "h7h5 e8g8 c7b6 a8c8 a8c8";

Line 147
4k2r/p2n3p/4q1pQ/1p2b2P/8/P1P2R2/1P4P1/K4R2 w - - bm Rd1; c0 "Rd1=10, Re1=9, Re3=5"; id "STS(v2.2) Open Files and Diagonals.047"; c7 "Rd1 Re1 Re3"; c8 "10 9 5"; c9 "f1d1 f1e1 f3e3";
4k2r/p2n3p/4q1pQ/1p2b2P/8/P1P2R2/1P4P1/K4R2 w k -  bm Rd1; c0 "Rd1=10, Re1=9, Re3=5"; id "STS(v2.2) Open Files and Diagonals.047"; c7 "Rd1 Re1 Re3"; c8 "10 9 5"; c9 "f1d1 f1e1 f3e3";

Line 633
2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w - - bm Rg3; id "STS(v7.0) Offer of Simplification.033"; c0 "Rg3=10, Bb2=7, Bc1=8, Rg2=8"; c7 "Rg3 Bb2 Bc1 Rg2"; c8 "10 7 8 8"; c9 "g1g3 a3b2 a3c1 g1g2";
2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w Q -  bm Rg3; id "STS(v7.0) Offer of Simplification.033"; c0 "Rg3=10, Bb2=7, Bc1=8, Rg2=8"; c7 "Rg3 Bb2 Bc1 Rg2"; c8 "10 7 8 8"; c9 "g1g3 a3b2 a3c1 g1g2";

and

Code: Select all

Line 154
r3k3/1p4p1/1Bb1Bp1p/P1p1bP1P/2Pp2P1/3P4/5K2/4R3 w - - bm g5; id "arasan2024.154"; c0 "Nakamura-Giri, FIDE Grand Prix, London 2012";
r3k3/1p4p1/1Bb1Bp1p/P1p1bP1P/2Pp2P1/3P4/5K2/4R3 w q -  bm g5; id "arasan2024.154"; c0 "Nakamura-Giri, FIDE Grand Prix, London 2012";

Line 171
r1b1k2r/pp3pbp/1nn3p1/q1pp4/5B2/PP2PN2/2QNBPPP/R4RK1 w q - bm b4; id "arasan2024.171"; c0 "Lc0 0.26.2 J92-130 (30x384)-Stockfish 200418 bmi2, Stefan Pohl 2020";
r1b1k2r/pp3pbp/1nn3p1/q1pp4/5B2/PP2PN2/2QNBPPP/R4RK1 w kq -  bm b4; id "arasan2024.171"; c0 "Lc0 0.26.2 J92-130 (30x384)-Stockfish 200418 bmi2, Stefan Pohl 2020";
Updated links for 40H Tools and Databases
http://40Hchess.epizy.com
http://nk-qy.info/40h
Norm Pollock
Posts: 1078
Joined: Thu Mar 09, 2006 4:15 pm
Location: Long Island, NY, USA

Re: Some Test Suites Need to be Updated

Post by Norm Pollock »

Here is a direct link:

https://www.mediafire.com/file/b90q9mr3 ... g.exe/file

usage in a Command Prompt Window: epdCastling filename.epd
Updated links for 40H Tools and Databases
http://40Hchess.epizy.com
http://nk-qy.info/40h
Norm Pollock
Posts: 1078
Joined: Thu Mar 09, 2006 4:15 pm
Location: Long Island, NY, USA

Re: Some Test Suites Need to be Updated

Post by Norm Pollock »

I issued an update for "epdCastling.exe" today. It is version 1.03.

Same link as above. It is also available in my "epd" toolbox (link below).

3 improvements:
1. bugfix to fix incomplete finding of missing castling permissions. See line 1037-

Code: Select all

Line 84
r3k2r/1bq1bpp1/p4n2/2p1pP2/2NpP2p/3B4/PPP3PP/R1B1QR1K b k - bm h3; id "STS(v1.0) Undermine.084"; c0 "h3=10, Bc6=3, Bd8=1, Kf8=1"; c7 "h3 Bc6 Bd8 Kf8"; c8 "10 3 1 1"; c9 "h4h3 b7c6 e7d8 e8f8";
r3k2r/1bq1bpp1/p4n2/2p1pP2/2NpP2p/3B4/PPP3PP/R1B1QR1K b kq - bm h3; id "STS(v1.0) Undermine.084"; c0 "h3=10, Bc6=3, Bd8=1, Kf8=1"; c7 "h3 Bc6 Bd8 Kf8"; c8 "10 3 1 1"; c9 "h4h3 b7c6 e7d8 e8f8";

Line 86
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b k - bm h5; id "STS(v1.0) Undermine.086"; c0 "h5=10, O-O=3, Qb6=1, Rc8=1, Rc8=3"; c7 "h5 O-O Qb6 Rc8 Rc8"; c8 "10 3 1 1 3"; c9 "h7h5 e8g8 c7b6 a8c8 a8c8";
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b kq - bm h5; id "STS(v1.0) Undermine.086"; c0 "h5=10, O-O=3, Qb6=1, Rc8=1, Rc8=3"; c7 "h5 O-O Qb6 Rc8 Rc8"; c8 "10 3 1 1 3"; c9 "h7h5 e8g8 c7b6 a8c8 a8c8";

Line 147
4k2r/p2n3p/4q1pQ/1p2b2P/8/P1P2R2/1P4P1/K4R2 w - - bm Rd1; c0 "Rd1=10, Re1=9, Re3=5"; id "STS(v2.2) Open Files and Diagonals.047"; c7 "Rd1 Re1 Re3"; c8 "10 9 5"; c9 "f1d1 f1e1 f3e3";
4k2r/p2n3p/4q1pQ/1p2b2P/8/P1P2R2/1P4P1/K4R2 w k - bm Rd1; c0 "Rd1=10, Re1=9, Re3=5"; id "STS(v2.2) Open Files and Diagonals.047"; c7 "Rd1 Re1 Re3"; c8 "10 9 5"; c9 "f1d1 f1e1 f3e3";

Line 633
2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w - - bm Rg3; id "STS(v7.0) Offer of Simplification.033"; c0 "Rg3=10, Bb2=7, Bc1=8, Rg2=8"; c7 "Rg3 Bb2 Bc1 Rg2"; c8 "10 7 8 8"; c9 "g1g3 a3b2 a3c1 g1g2";
2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w Q - bm Rg3; id "STS(v7.0) Offer of Simplification.033"; c0 "Rg3=10, Bb2=7, Bc1=8, Rg2=8"; c7 "Rg3 Bb2 Bc1 Rg2"; c8 "10 7 8 8"; c9 "g1g3 a3b2 a3c1 g1g2";

Line 1037
3r2k1/2p2ppp/8/P1b1N3/8/1Bn1nP2/5B1P/4K2R b - - bm Kf8; id "STS(v11.0) King Activity.037"; c0 "Kf8=10, g6=3, Ncd5=1"; c7 "Kf8 g6 Ncd5"; c8 "10 3 1"; c9 "g8f8 g7g6 c3d5";
3r2k1/2p2ppp/8/P1b1N3/8/1Bn1nP2/5B1P/4K2R b K - bm Kf8; id "STS(v11.0) King Activity.037"; c0 "Kf8=10, g6=3, Ncd5=1"; c7 "Kf8 g6 Ncd5"; c8 "10 3 1"; c9 "g8f8 g7g6 c3d5";

2. an output file with just the fixed "epd" records "outCP2.epd"

3. Now also "fixes" false insertions of castling permissions. Although I never encountered this problem, I did this to make the tool complete. So assuming there was no back and forth with regard to a Rook or King now in its original position, the tool detects and fixes any omissions or incorrect insertions in the Castling permissions.
Updated links for 40H Tools and Databases
http://40Hchess.epizy.com
http://nk-qy.info/40h
Dann Corbit
Posts: 12799
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Some Test Suites Need to be Updated

Post by Dann Corbit »

Having taken this list of positions and analyzing them with several different engines:

Code: Select all

2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w - - acd 52; acs 7176; bm Bc1; c3 "Rg3"; pm Bc1; pv Bc1 b4 Be3 bxc3 Rg3 Rh5 Ra3 Rc7 Rxc3 c4 Rg1 Rb7 Nd2 Rb5 Ke2 Rxa5 Nxc4 Rd5 Nd2 Rxh2 Nxe4 Rh4 f3 g4 Rc7+ Rd7 Rxd7+ Bxd7 fxg4 Bxg4+ Kd2 Bd7 Nc5 Bb5 Kc3 a5 Rb1 Rc4+ Kd2 Rb4 Rh1 Rg4 Ra1 a4 Rb1 Be8 Rb7+ Kg6 Ra7 Rg2+ Kc1 Rh2; id "STS(v7.0) Offer of Simplification.033a"; 
2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w Q - acd 51; acs 6417; bm Bc1; c3 "Rg3"; pm Bc1; pv Bc1 b4 Be3 bxc3 Ng3 Rb8 Nxe4 Rh4 Nxc3 Rc4 Bd2 Bf5 Kd1 Rb2 Ra2 Rxa2 Nxa2 Bxc2+ Kc1 Be4+ Nc3 Bf5 Kb2 Be6 Rb1 Kg6 Kc1 Bd5 Rb8 f5 Rd8 Bf3 Rg8+ Kf6 Rc8 Kg6 Rd8 Kh5 Rd7 a6 Rh7+ Kg6 Ra7 Rh4 Rxa6+ Kh5 Ra7 Kg4 Be3 f4 Bxc5 Rh6 Rg7 Ba8; id "STS(v7.0) Offer of Simplification.033b"; 
3r2k1/2p2ppp/8/P1b1N3/8/1Bn1nP2/5B1P/4K2R b - - acd 75; acs 1625; bm Kf8; c3 "Kf8"; pm Kf8; pv Kf8 Nc4 Ncd1 Nxe3 Nxf2 Kxf2 Rd3 Rb1 Rxe3 Kg2 Re2+ Kg3 Bd6+ f4 Re4 Rf1 Rb4 Rf3 Rb5 a6 Rg5+ Kh3 Rc5 Bd1 Ra5 Be2 g6 Bc4 Ra4 Bb5 Ra2 Bc4 Ra4; id "STS(v11.0) King Activity.037a"; 
3r2k1/2p2ppp/8/P1b1N3/8/1Bn1nP2/5B1P/4K2R b K - acd 72; acs 1966; bm Kf8; c3 "Kf8"; pm Kf8; pv Kf8 Nc4 Ncd1 Nxe3 Nxf2 Kxf2 Rd3 Rb1 Rxe3 Kg2 Re2+ Kg3 Bd6+ f4 Re4 Rf1 Rb4 Rf3 Rb5 a6 Rg5+ Kh3 Rc5 Bd1 Rh5+ Kg2 Ra5 Be2 Ra2 Kf1 Ke7 h3 Bc5 Bc4 Ra4 Rc3 Bb6 Kg2 Kf6 Kf3 Kg6 Bd3+ Kh5 Kg3 Kh6 Bb5 Ra5 Be2 f6 h4 Ra2 Bd3 Bd4 Rb3 g6 Bc4 Ra4 Bb5 Ra5 Be2 f5 Rd3 Bc5 Rc3 Bd6 Bc4 Ra4 Kf3 Ra1 Bb5 Rb1; id "STS(v11.0) King Activity.037b"; 
4k2r/p2n3p/4q1pQ/1p2b2P/8/P1P2R2/1P4P1/K4R2 w - - acd 49; acs 493; bm Rd1; c3 "Rd1"; pm Rd1; pv Rd1 Rf8 Qxh7 Rh8 Qxg6+ Qxg6 hxg6 Rh6 Rf7 Nb6 Rxa7 Rxg6 Rb7 Nc4 Rxb5 Bh2 Rb4 Nd6 Rh4 Bg3 Rh7 Kd8 Ka2 Kc8 Rf1 Rg8 Rf6 Ne8 Rc6+ Bc7 Re7 Kb8 Ree6 Rf8 Rg6 Kb7 Rce6 Kc8 a4 Kd7 Rc6 Rf2 Rc5 Bd6 Rc4 Rf7 b4 Re7 Kb3 Bh2 a5 Nc7 Rc5 Kc8 g4 Re1 g5 Rb1+ Kc2 Rg1 Rf5 Kb7 Rb6+ Ka7 g6 Rg2+ Kb3; id "STS(v2.2) Open Files and Diagonals.047"; 
4k2r/p2n3p/4q1pQ/1p2b2P/8/P1P2R2/1P4P1/K4R2 w k - acd 48; acs 444; bm Rd1; c3 "Rd1"; pm Rd1; pv Rd1; id "STS(v2.2) Open Files and Diagonals.047b"; 
r1b1k2r/pp3pbp/1nn3p1/q1pp4/5B2/PP2PN2/2QNBPPP/R4RK1 w kq - acd 65; acs 1778; bm Rac1; c3 "b4"; pm Rac1; pv Rac1 Qxa3 Bd6 Bf5 Bxc5 Bxc2 Bxa3 Bf5 Rfe1 Be6 h4 Rc8 Ng5 Bd7 e4 d4 Red1 Bf8 Bb2 Bb4 e5 Bf5 g4 Be6 Nxe6 fxe6 Nf3 Bc3 Ba3 h6 Bb5 Kf7 Bxc6 Rxc6 Nxd4 Rcc8 Nb5 Bxe5 Bd6 Rxc1 Rxc1 Bxd6 Nxd6+ Ke7 Nxb7 Rc8 Rxc8 Nxc8 Kg2 Nd6 Nxd6 Kxd6 Kf3 Kd5 Ke3 e5 f4 exf4+ Kxf4 Kd4 h5 gxh5 gxh5; id "arasan2024.171a"; 
r1b1k2r/pp3pbp/1nn3p1/q1pp4/5B2/PP2PN2/2QNBPPP/R4RK1 w q - acd 45; acs 585; bm b4; c3 "b4"; pm b4; pv b4 cxb4 Nd4 bxa3 Bd6 Qa4 Qb1 Nxd4 exd4 Qxd4 Nb3 Qf6 Bxa3 Kd8 Bc5 Re8 Bb5 Re4 Rd1 Bf5 Qa2 Bd7 Qa5 Bxb5 Qxb5 Qc6 Bxb6+ Ke8 Qxc6+ bxc6 Rxa7 Rxa7 Bxa7 Be5 Kf1 Ra4 Be3 Rc4 h3 Rc3 Rb1 Kd7 Ke1 h5 Kd1 f6 Bd2 Rc4 Rc1 Rxc1+ Bxc1 g5 Ke2 g4 hxg4 hxg4 Nc5+ Ke7 Nd3 Bd6 Ke3 Ke6 Kd4 Kf5 Be3 Ke6 Bf4 Be7 Nc5+ Kf5; id "arasan2024.171b"; 
r3k2r/1bq1bpp1/p4n2/2p1pP2/2NpP2p/3B4/PPP3PP/R1B1QR1K b k - acd 53; acs 1906; bm h3; c3 "h3"; pm h3; pv h3 g3; id "STS(v1.0) Undermine.084a"; 
r3k2r/1bq1bpp1/p4n2/2p1pP2/2NpP2p/3B4/PPP3PP/R1B1QR1K b kq - acd 53; acs 1983; bm h3; c3 "h3"; pm h3; pv h3; id "STS(v1.0) Undermine.084b"; 
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b k - acd 71; acs 1953; bm Qb6 h5; c3 "h5"; pm Qb6 h5; pv Qb6 Nd4 Rc8 Qf2 Kd7 f5 gxf5 gxf5 Rce8 Kh1 Kc8 Nf3 Qb5 Rg1 Rhg8 f6 Qa4 b4 a5 bxa5 Kb8 a6 Rxg1+ Rxg1 Qxa6 Rg7 Rf8 Kg2 Qc4 Qe3 h5 h4 Qxa2+ Kg3 Qc4 Kf2 Qb3 Qc5 Qc2+ Ke1 Qb1+ Kd2 Qb2+ Kd1 Rc8 Rxf7 Nxe5 Qd6+ Ka7 Qxe5 Rxc3 Qd4+ Ka6 Qa4+ Kb6 Qd4+; id "STS(v1.0) Undermine.086a"; 
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b kq - acd 63; acs 6817; bm O-O-O; c3 "h5"; pm O-O-O; pv O-O-O Nd4; id "STS(v1.0) Undermine.086b"; 
r3k3/1p4p1/1Bb1Bp1p/P1p1bP1P/2Pp2P1/3P4/5K2/4R3 w - - acd 53; acs 589; bm g5; c3 "g5"; pm g5; pv g5; id "arasan2024.154"; 
r3k3/1p4p1/1Bb1Bp1p/P1p1bP1P/2Pp2P1/3P4/5K2/4R3 w q - acd 54; acs 545; bm g5; c3 "g5"; pm g5; pv g5 hxg5 Rxe5 fxe5 h6 gxh6 f6 e4 Bxc5 Kd8 f7 Kc7 dxe4 Bxe4 f8Q Rxf8+ Bxf8 h5 Bg7 Kd6 Bf7 d3 Ke3 Bf5 Bf6 g4 Bh4 Kc6 Bxh5 Kc5 Bf7 d2 Be7+ Kc6 Kxd2 Kc7 Bd5 Kb8 Bf6 Ka7 Bd4+ Kb8 Kc3 g3 Be5+ Ka7 Bxg3 Bg4 Bf2+ Kb8 Kd2 Bh5 Bg3+ Ka7 Ke3 Bg6 Bc7 Be8 Kd4 Ba4; id "arasan2024.154b"; 
I have the following differences:

Code: Select all

2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w - - acd 52; acs 7176; bm Bc1; c3 "Rg3"; pm Bc1; pv Bc1 b4 Be3 bxc3 Rg3 Rh5 Ra3 Rc7 Rxc3 c4 Rg1 Rb7 Nd2 Rb5 Ke2 Rxa5 Nxc4 Rd5 Nd2 Rxh2 Nxe4 Rh4 f3 g4 Rc7+ Rd7 Rxd7+ Bxd7 fxg4 Bxg4+ Kd2 Bd7 Nc5 Bb5 Kc3 a5 Rb1 Rc4+ Kd2 Rb4 Rh1 Rg4 Ra1 a4 Rb1 Be8 Rb7+ Kg6 Ra7 Rg2+ Kc1 Rh2; id "STS(v7.0) Offer of Simplification.033a"; 
2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w Q - acd 51; acs 6417; bm Bc1; c3 "Rg3"; pm Bc1; pv Bc1 b4 Be3 bxc3 Ng3 Rb8 Nxe4 Rh4 Nxc3 Rc4 Bd2 Bf5 Kd1 Rb2 Ra2 Rxa2 Nxa2 Bxc2+ Kc1 Be4+ Nc3 Bf5 Kb2 Be6 Rb1 Kg6 Kc1 Bd5 Rb8 f5 Rd8 Bf3 Rg8+ Kf6 Rc8 Kg6 Rd8 Kh5 Rd7 a6 Rh7+ Kg6 Ra7 Rh4 Rxa6+ Kh5 Ra7 Kg4 Be3 f4 Bxc5 Rh6 Rg7 Ba8; id "STS(v7.0) Offer of Simplification.033b"; 
r1b1k2r/pp3pbp/1nn3p1/q1pp4/5B2/PP2PN2/2QNBPPP/R4RK1 w kq - acd 65; acs 1778; bm Rac1; c3 "b4"; pm Rac1; pv Rac1 Qxa3 Bd6 Bf5 Bxc5 Bxc2 Bxa3 Bf5 Rfe1 Be6 h4 Rc8 Ng5 Bd7 e4 d4 Red1 Bf8 Bb2 Bb4 e5 Bf5 g4 Be6 Nxe6 fxe6 Nf3 Bc3 Ba3 h6 Bb5 Kf7 Bxc6 Rxc6 Nxd4 Rcc8 Nb5 Bxe5 Bd6 Rxc1 Rxc1 Bxd6 Nxd6+ Ke7 Nxb7 Rc8 Rxc8 Nxc8 Kg2 Nd6 Nxd6 Kxd6 Kf3 Kd5 Ke3 e5 f4 exf4+ Kxf4 Kd4 h5 gxh5 gxh5; id "arasan2024.171a"; 
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b k - acd 71; acs 1953; bm Qb6 h5; c3 "h5"; pm Qb6 h5; pv Qb6 Nd4 Rc8 Qf2 Kd7 f5 gxf5 gxf5 Rce8 Kh1 Kc8 Nf3 Qb5 Rg1 Rhg8 f6 Qa4 b4 a5 bxa5 Kb8 a6 Rxg1+ Rxg1 Qxa6 Rg7 Rf8 Kg2 Qc4 Qe3 h5 h4 Qxa2+ Kg3 Qc4 Kf2 Qb3 Qc5 Qc2+ Ke1 Qb1+ Kd2 Qb2+ Kd1 Rc8 Rxf7 Nxe5 Qd6+ Ka7 Qxe5 Rxc3 Qd4+ Ka6 Qa4+ Kb6 Qd4+; id "STS(v1.0) Undermine.086a"; 
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b kq - acd 63; acs 6817; bm O-O-O; c3 "h5"; pm O-O-O; pv O-O-O Nd4; id "STS(v1.0) Undermine.086b"; 
In each case, c3 is the bm that was originally stored in the problem.

Summary:
For both of these positions (with and without castling):
2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w - -
2r5/p4k2/4bp2/Ppp3p1/4p3/B1P4r/2P2P1P/R3KNR1 w Q -
the best move changed from Rg3 to Bc1 after re-analysis.

For this position:
r1b1k2r/pp3pbp/1nn3p1/q1pp4/5B2/PP2PN2/2QNBPPP/R4RK1 w kq -
the addition of castle rights changed the best move from b4 to Rac1.

For this position with new castle rights:
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b kq -
the best move changed from h5 to O-O-O.
For the original position:
r3k2r/ppq2p1p/2n1p1p1/3pP3/5PP1/2P1Q3/PP2N2P/3R1RK1 b k -
the best move changed from h5 to Qb6 h5 because both moves are draws.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Dann Corbit
Posts: 12799
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Some Test Suites Need to be Updated

Post by Dann Corbit »

Another point worth considering is that the board position does not dictate the castle rights.
Given this (admittedly silly) game:
[pgn][Event "No Castling for White"]
[Site "DESKTOP-426Q3JG"]
[Date "2025.08.23"]
[Round "-"]
[White "-"]
[Black "-"]
[Result "*"]

1. Na3 e5 2. Nh3 d5 3. Rb1 Nf6 4. Rg1 Nc6 5. Ra1 Bd6 6. Rh1 O-O 7. Nb1 Bg4
8. Ng1
*[/pgn]
For this position:
[d]r2q1rk1/ppp2ppp/2nb1n2/3pp3/6b1/8/PPPPPPPP/RNBQKBNR b - - 11 8
Despite the board position, white cannot castle.

Therefore, in order to update the castle rights to a test position one of two conditions are necessary:
1. The castle rights are illegal, in which case a best guess should be used
2. The full game score is available and it shows that the castle rights are not correct for the position.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Norm Pollock
Posts: 1078
Joined: Thu Mar 09, 2006 4:15 pm
Location: Long Island, NY, USA

Re: Some Test Suites Need to be Updated

Post by Norm Pollock »

Hi Dann,

I agree that the board does not dictate Castling rights. If it did, it the "Castling Permission" field in an "epd" record would be unnecessary.

I am aware that "epdCastling" could cause an error where none exists. It could do this by illegally restoring Castling Permission(s) where they have been correctly removed because a King or Rook has previously moved and returned to its original position. It is a possible, but rare, scenario.

To mitigate this possible error, I have added the following Warning in the instructions:

Code: Select all

WARNING: "epdCastling" determines valid Castling permissions by 
examining the Rooks and Kings that are currently in their original 
positions. If you are aware that a King or Rook has previously 
moved and returned to its original position, then do NOT use 
"epdCastling" on this position because it would illegally restore 
correctly removed castling permission(s).
-Norm
Updated links for 40H Tools and Databases
http://40Hchess.epizy.com
http://nk-qy.info/40h