diff options
| author | Scott Gasch <[email protected]> | 2026-09-16 00:08:27 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-09-16 00:08:27 -0700 |
| commit | b91c8453f3fe21c8ccd3568923d8e39141c9c945 (patch) | |
| tree | b908fea282ecd4075744590d3dfc88ffa903d943 /tests/arasan.epd | |
| parent | c0ac3d7845f60c7f6f2c3bfc306ceb0e4ac045ba (diff) | |
Add search self-tests (hash consistency, QSearch sanity) and a native EPD parser (`epd` command + ParseEpdRecord), fixing a silent-corruption bug in convert_epd.pl that broke every Black-to-move EPD conversion.
testsearch.c: TestSearchHashConsistency exercises the hash table through real search (repeat-with-warm-table and shallow-then-deep agreement) rather than synthetic store/probe calls. TestQSearchSanity checks termination and a node-count ceiling; its own header documents that the TEST=1 self-test build doesn't define PERF_COUNTERS, so it checks whole-search node count rather than the qsearch-only counter. A planned null-move zugzwang test was dropped in favor of tests/zugzwang.epd (best-move outcome, not an internal counter) after the three classic literature positions turned out not to structurally reach this engine's verification-search code path on this build.
fen.c/script.c/command.c: new `epd <file>` command reads raw EPD directly via ParseEpdRecord, reusing ScriptCommand's existing suite-reporting machinery (factored into _ProcessSuiteLine/_PrintSuiteReport). Replaces the need for tests/convert_epd.pl, which had a real bug: its bm/am regex's [^b]+ filler breaks on any Black-to-move record (side-to-move field is literally "b"), and unscoped $fen/$id/$solution globals meant a failed match silently duplicated the previous record instead of erroring.
tests/ep_to_epd.pl converts the existing setboard/solution/avoid/id/go suites back to real EPD; cross-checked ecm_ringers.ep_ via `script` against ecm_ringers.epd via `epd` -- byte-identical node counts and solve stats. Added .epd siblings for every genuine tactical suite in tests/.
Added src/TESTING_PLAN.md: full audit of test*.c coverage gaps (dead SEE oracle, unwired eval/recognizer tests, zero hash-table correctness coverage, thin search self-tests) with a prioritized plan for closing them.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'tests/arasan.epd')
| -rw-r--r-- | tests/arasan.epd | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/tests/arasan.epd b/tests/arasan.epd new file mode 100644 index 0000000..cf565fe --- /dev/null +++ b/tests/arasan.epd @@ -0,0 +1,140 @@ +8/1p2r1kp/1p1R2p1/4qp2/1P6/P1p1P1P1/5P1P/3Q2K1 w - - am Rxb6; id "arasan4.2"; +8/1p2r1kp/1p1R2p1/4qp2/1P6/P1p1P1P1/5P1P/3Q2K1 w - - am Rxb6; id "arasan4.3"; +8/1p2r1kp/1p1R2p1/4qp2/1P6/P1p1P1P1/5P1P/3Q2K1 w - - am Rxb6; id "arasan4.4"; +2r3k1/1b1nqppp/p3p3/8/1pQPn3/4PNP1/PP3PBP/RN4K1 w - - bm Qf1; id "arasan4.5"; +r3r1k1/6p1/1pqp2Np/2p1nP1P/N1PbPQ2/1P3PR1/P2K4/7R w - - bm f6; id "arasan4.6"; +r3r1k1/6p1/1pqp2Np/2p1nP1P/N1PbPQ2/1P3PR1/P2K4/7R w - - bm f6; id "arasan4.7"; +r3r1k1/6p1/1pqp2Np/2p1nP1P/N1PbPQ2/1P3PR1/P2K4/7R w - - bm f6; id "arasan4.8"; +4k3/5ppQ/1n3b2/3bp3/1B6/1P1R2NP/5PPK/1qr5 w - - bm Ba5; id "arasan4.9"; +r3r1k1/pb1n1p2/1p1p1n1p/q1pPpN2/2P4p/2PBPP2/P1Q3PP/1R3RK1 w - - bm Qf2; id "arasan4.10"; +r3r1k1/pb1n1p2/1p1p1n1p/q1pPpN2/2P4p/2PBPP2/P1Q3PP/1R3RK1 w - - bm Qf2; id "arasan4.11"; +q2r2k1/1bpn1ppp/1p1bp3/8/r2PP3/P4NP1/1BQ2PBP/3RR1K1 w - - bm e5; id "arasan4.12"; +q2r2k1/1bpn1ppp/1p1bp3/8/r2PP3/P4NP1/1BQ2PBP/3RR1K1 w - - bm e5; id "arasan4.13"; +rnbq1rk1/p3nppp/1p2p3/2ppP3/3P4/P1PB1N2/2P2PPP/R1BQK2R w KQ - bm Bxh7+; id "arasan4.14"; +4nr1k/r4p1p/2bq4/pp1pNP2/3P3Q/2P5/4PPB1/RR4K1 w - - bm c4; id "arasan4.15"; +4nr1k/r4p1p/2bq4/pp1pNP2/3P3Q/2P5/4PPB1/RR4K1 w - - bm c4; id "arasan4.16"; +1r1n3k/3qbppp/pr1p4/2pPpP2/2P1N1Q1/R6P/1P3PP1/2B1R1K1 w - - bm Bh6; id "arasan4.17"; +1r1n3k/3qbppp/pr1p4/2pPpP2/2P1N1Q1/R6P/1P3PP1/2B1R1K1 w - - bm Bh6; id "arasan4.18"; +1r1n3k/3qbppp/pr1p4/2pPpP2/2P1N1Q1/R6P/1P3PP1/2B1R1K1 w - - bm Bh6; id "arasan4.19"; +1r1n3k/3qbppp/pr1p4/2pPpP2/2P1N1Q1/R6P/1P3PP1/2B1R1K1 w - - bm Bh6; id "arasan4.20"; +1r1n3k/3qbppp/pr1p4/2pPpP2/2P1N1Q1/R6P/1P3PP1/2B1R1K1 w - - bm Bh6; id "arasan4.21"; +2q2k1r/1pbb1ppp/2n2n2/1B2p3/Q3P3/4BP1P/PP4P1/1KRR4 w - - bm Rxd7; id "arasan4.22"; +2q2k1r/1pbb1ppp/2n2n2/1B2p3/Q3P3/4BP1P/PP4P1/1KRR4 w - - bm Rxd7; id "arasan4.23"; +2q2k1r/1pbb1ppp/2n2n2/1B2p3/Q3P3/4BP1P/PP4P1/1KRR4 w - - bm Rxd7; id "arasan4.24"; +5q2/3Q1N1p/r4kp1/4p3/3nb3/1B5P/5PP1/1R4K1 w - - bm f4; id "arasan4.25"; +5rk1/1p1P1ppp/pBn1p1r1/3p4/6P1/RPP4K/7P/4R3 w - - bm Ra5; id "arasan4.26"; +5rk1/1p1P1ppp/pBn1p1r1/3p4/6P1/RPP4K/7P/4R3 w - - bm Ra5; id "arasan4.27"; +3r2k1/2qn1ppp/8/1pbrp3/pP1N4/P2P2P1/RB2RP1P/4QK2 w - - bm Nxb5; id "arasan4.28"; +3r2k1/2qn1ppp/8/1pbrp3/pP1N4/P2P2P1/RB2RP1P/4QK2 w - - bm Nxb5; id "arasan4.29"; +2Q5/8/8/8/3kbP1N/2pq3P/6PK/8 w - - bm f5; id "arasan4.30"; +2Q5/8/8/8/3kbP1N/2pq3P/6PK/8 w - - bm f5; id "arasan4.31"; +r1b2rk1/pp3pp1/4p2p/2ppP1b1/3Pq3/2P1PNP1/PP2Q2P/R3KB1R w KQ - bm Nxg5; id "arasan4.32"; +Qn3rk1/p5p1/1pnqp3/6p1/6P1/2P5/P4P1P/R1B2RK1 w - - bm Qb7; id "arasan4.33"; +Qn3rk1/p5p1/1pnqp3/6p1/6P1/2P5/P4P1P/R1B2RK1 w - - bm Qb7; id "arasan4.34"; +r1b2r2/pp3p1p/1q1p3k/2p1n2N/3N4/4P1P1/P1PP2BP/R4QK1 w - - bm Qf6+; id "arasan4.35"; +r1bq2k1/1p1n1r1p/3Qppp1/pP5N/2P1B3/8/P4P1P/2KR2R1 w - - bm Bxg6; id "arasan4.36"; +r1bq2k1/1p1n1r1p/3Qppp1/pP5N/2P1B3/8/P4P1P/2KR2R1 w - - bm Bxg6; id "arasan4.37"; +r4rk1/2qbbpp1/7p/2pPp3/ppN1P3/4Q1P1/PPPN4/2K3RR w - - bm Rxh6; id "arasan4.38"; +r2q1r1k/1p2bppp/pnb1p3/4P3/6R1/2N5/PPB1QPPP/R1B3K1 w - - bm Rxg7; id "arasan4.39"; +1r3k2/4q3/2Pp3b/3Bp3/2Q2p2/1p1P2P1/1P2KP2/3N4 w - - bm Be6; id "arasan4.40"; +r4rk1/pp1nqppp/2b1p3/6N1/4N3/6Q1/PPP2PPP/1K1RR3 w - - bm Rxd7; id "arasan4.41"; +r3k1nr/pp1b1ppp/4p3/3p4/q4B2/3B1Q2/PP3PPP/2R1R1K1 w kq - bm Qg3; id "arasan4.42"; +r3k1nr/pp1b1ppp/4p3/3p4/q4B2/3B1Q2/PP3PPP/2R1R1K1 w kq - bm Qg3; id "arasan4.43"; +r3k1nr/pp1b1ppp/4p3/3p4/q4B2/3B1Q2/PP3PPP/2R1R1K1 w kq - bm Qg3; id "arasan4.44"; +r1bk2nr/ppp2ppp/2np1b2/1N6/N4P1q/P3B3/1PP1B1PP/R2QR1K1 w - - bm Nxd6; id "arasan4.45"; +r5nr/ppp2kpp/3pbp2/1B6/PP5q/8/1BPQ1PPP/1R2R1K1 w - - bm Rxe6; id "arasan4.46"; +r5nr/ppp2kpp/3pbp2/1B6/PP5q/8/1BPQ1PPP/1R2R1K1 w - - bm Rxe6; id "arasan4.47"; +r5nr/ppp2kpp/3pbp2/1B6/PP5q/8/1BPQ1PPP/1R2R1K1 w - - bm Rxe6; id "arasan4.48"; +2r1k1nr/p1Pq4/1p3p2/4pn1p/1B1p4/1N3Q2/PP2P1RP/2R4K w - - bm Nd2; id "arasan4.49"; +r2qr1k1/pp1b2pp/2nBpp1n/6NQ/2B1N3/P3b3/1PP3PP/R4R1K w - - bm Nxf6+; id "arasan4.50"; +1n3rn1/3b4/rq1P1pkp/1p4p1/p1p1N1N1/2Q2B1P/1P3PP1/R3R1K1 w - - bm Nexf6 Ngxf6; id "arasan4.51"; +r1bq1rk1/ppp1bpp1/2np3p/3N3n/2P1PB2/3BQN2/PP3PPP/R3K2R w KQ - bm Bxh6; id "arasan4.52"; +2r3k1/5pp1/1p5p/p1n1P3/2B2P2/P3Q3/1PP4q/1K4R1 w - - bm Qd4; id "arasan4.53"; +2r3k1/5pp1/1p5p/p1n1P3/2B2P2/P3Q3/1PP4q/1K4R1 w - - bm Qd4; id "arasan4.54"; +2r3k1/5pp1/1p5p/p1n1P3/2B2P2/P3Q3/1PP4q/1K4R1 w - - bm Qd4; id "arasan4.55"; +2r3k1/5pp1/1p5p/p1n1P3/2B2P2/P3Q3/1PP4q/1K4R1 w - - bm Qd4; id "arasan4.56"; +r2r2k1/pbpq1ppp/1pn1pn2/8/P2PP3/B1R2NP1/P1Q2PBP/3R2K1 w - - bm d5; id "arasan4.57"; +r2r2k1/pbpq1ppp/1pn1pn2/8/P2PP3/B1R2NP1/P1Q2PBP/3R2K1 w - - bm d5; id "arasan4.58"; +1b6/4kPp1/Pp6/2p2K1B/2P5/3p4/8/8 w - - bm Ke4; id "arasan4.59"; +4r1k1/pppb3p/1n4p1/3P4/1bP2p2/qN3PPP/P1Q3B1/2R3KR w - - bm g4; id "arasan4.60"; +2r3k1/2r1b1p1/p1q3Pp/3pP3/1p6/1P2B2Q/2PR4/1K4R1 w - - bm Bxh6; id "arasan4.61"; +4R3/1k4p1/8/pp4P1/8/3K4/1b5P/8 w - - bm Re2; id "arasan4.62"; +r3k2r/pb3ppp/1p2pn2/1Nb1q3/4P3/P2B4/1PQ2PPP/R1B2RK1 w kq - bm b4; id "arasan4.63"; +2r1r1k1/1pn3qp/2pbn1p1/p2pN3/3P1P2/3BP1BP/PPQ3K1/2R2R2 w - - bm f5; id "arasan4.64"; +5Nk1/1p2n3/p2q1rp1/3p1pQP/5P2/2P2B2/b1PK2P1/4R3 w - - bm Nd7; id "arasan4.65"; +5Nk1/1p2n3/p2q1rp1/3p1pQP/5P2/2P2B2/b1PK2P1/4R3 w - - bm Nd7; id "arasan4.66"; +8/1B1r1b1k/3N2pp/p3Qp2/3P1P2/7P/1P1b1K2/2r5 w - - bm Nxf5; id "arasan4.67"; +8/1B1r1b1k/3N2pp/p3Qp2/3P1P2/7P/1P1b1K2/2r5 w - - bm Nxf5; id "arasan4.68"; +2kb4/r7/4p1r1/1RNn2p1/8/6P1/pB3PK1/7R w - - bm Be5; id "arasan4.69"; +2kb4/r7/4p1r1/1RNn2p1/8/6P1/pB3PK1/7R w - - bm Be5; id "arasan4.70"; +4rrk1/1bpn1qp1/1p1b3p/pP1Ppn2/4N3/P2Q1N1P/1BB2PP1/2R1R1K1 w - - bm g4; id "arasan4.71"; +4rrk1/1bpn1qp1/1p1b3p/pP1Ppn2/4N3/P2Q1N1P/1BB2PP1/2R1R1K1 w - - bm g4; id "arasan4.72"; +1r5k/pp5p/3Nn1p1/3R4/3b4/BP3rPP/P4P2/1R4K1 w - - bm Rxd4; id "arasan4.73"; +rn1r2k1/p4p2/1pp1pqp1/6Rp/3PB2P/8/PPPQ1P2/2KR4 w - - bm Bxg6; id "arasan4.74"; +r4rk1/1pp3q1/2np3p/p2Npb1B/2PbN1p1/3P2P1/PP4PP/R2Q1R1K w - - bm Ndf6+ Nef6+; id "arasan4.75"; +r5k1/p6r/1n2p2p/2BbPpp1/8/P2B4/5PPP/2RR2K1 w - - bm Bxf5; id "arasan4.76"; +5rk1/q4ppp/pp1bp1n1/6N1/4QP2/P3P3/1P1B2PP/2R3K1 w - - bm Nxe6; id "arasan4.77"; +r3kb1r/2R2bpp/p2p1p2/1p2pPP1/3qP3/5Q2/1PPB3P/2K2B1R w kq - bm Bc4; id "arasan4.78"; +r3kb1r/2R2bpp/p2p1p2/1p2pPP1/3qP3/5Q2/1PPB3P/2K2B1R w kq - bm Bc4; id "arasan4.79"; +6k1/3p2p1/1p1Npq2/3n3r/1P6/5PQ1/P4KP1/RNBR3r w - - bm Ne4; id "arasan4.80"; +6k1/3p2p1/1p1Npq2/3n3r/1P6/5PQ1/P4KP1/RNBR3r w - - bm Ne4; id "arasan4.81"; +2k4r/1q1bBQ2/2p1p3/1p2P2p/6r1/8/5PP1/R1R3K1 w - - bm Bf8; id "arasan4.82"; +2r2k1r/p1q3pp/1p3p2/3Bp3/2Pb2b1/P1Q5/1B1R1PPP/4R1K1 w - - bm Rxd4; id "arasan4.83"; +2r2k1r/p1q3pp/1p3p2/3Bp3/2Pb2b1/P1Q5/1B1R1PPP/4R1K1 w - - bm Rxd4; id "arasan4.84"; +3q1k2/8/1p1b1r1p/p2R2p1/P1BQ2P1/1P3P2/8/3K4 w - - bm f4; id "arasan4.85"; +2r2rk1/5qp1/1pN2p1p/pPnRp3/P1P5/5PP1/2Q1R1KP/8 w - - bm Rxc5; id "arasan4.86"; +3r1r2/pb3pkp/1pn1qNp1/2p1P3/5P2/P2BQ3/1P4PP/3R1R1K w - - bm f5; id "arasan4.87"; +r3rb1k/1b3pp1/3p2qp/p2P1N2/Pp1Qn3/4RN1P/1P3PP1/R1B3K1 w - - bm N3h4; id "arasan4.88"; +r3rb1k/1b3pp1/3p2qp/p2P1N2/Pp1Qn3/4RN1P/1P3PP1/R1B3K1 w - - bm N3h4; id "arasan4.89"; +r3rb1k/1b3pp1/3p2qp/p2P1N2/Pp1Qn3/4RN1P/1P3PP1/R1B3K1 w - - bm N3h4; id "4.90"; +r3rk2/ppq2pbQ/2p1b1p1/4p1B1/2P3P1/3P1B2/P3PPK1/1R5R w - - bm Qxg7+ Qh8+; id "4.91"; +r1b2rk1/1pqp1p1p/p3nBpQ/4p3/4P3/1N4P1/PbP2PBP/R4RK1 w - - bm Nd2; id "4.92"; +4r1k1/2P3pp/1n2q3/2pn1p2/8/6B1/1P1QBP1P/4R1K1 w - - bm Rd1; id "arasan4.93"; +r2q1rk1/p4p2/1p2pn1p/n2b2p1/3P3B/2R2N2/PP3PPP/1B1QR1K1 w - - bm Nxg5; id "arasan4.94"; +r2q1rk1/p4p2/1p2pn1p/n2b2p1/3P3B/2R2N2/PP3PPP/1B1QR1K1 w - - bm Nxg5; id "arasan4.95"; +r2q1rk1/p4p2/1p2pn1p/n2b2p1/3P3B/2R2N2/PP3PPP/1B1QR1K1 w - - bm Nxg5; id "arasan4.96"; +5rk1/3R1p2/ppp3r1/b1p1P2p/2P2B1q/2P2Q2/P5PP/3R3K w - - bm h3; id "arasan4.97"; +2r1r1k1/5p1p/p3qBp1/1ppbP3/2n5/2PB3P/P3QPP1/3RR1K1 w - - bm Bxc4; id "arasan4.98"; +r1br3k/pp2qn1p/4p2P/4Ppp1/2B5/P4NQ1/1P3PP1/3R1RK1 w - - bm Nxg5; id "arasan4.99"; +2r2rk1/3bq1p1/4p1Pp/3pP3/1p1N1PQ1/pP5R/P1P4R/4K3 w - - bm Rxh6; id "arasan4.100"; +2b2rk1/r3bp2/p3pp2/q2p4/5PPp/1RNB4/P1PQ3P/1R5K w - - bm Qf2; id "arasan4.101"; +2b2rk1/r3bp2/p3pp2/q2p4/5PPp/1RNB4/P1PQ3P/1R5K w - - bm Qf2; id "arasan4.102"; +2b2rk1/r3bp2/p3pp2/q2p4/5PPp/1RNB4/P1PQ3P/1R5K w - - bm Qf2; id "arasan4.103"; +2b2rk1/r3bp2/p3pp2/q2p4/5PPp/1RNB4/P1PQ3P/1R5K w - - bm Qf2; id "arasan4.104"; +2b2rk1/r3bp2/p3pp2/q2p4/5PPp/1RNB4/P1PQ3P/1R5K w - - bm Qf2; id "arasan4.105"; +4r1k1/p5qp/Pp1Rbb2/4pp1r/2P1p1p1/1PB1P3/1Q2BPPP/3R2K1 w - - bm c5; id "arasan4.106"; +8/4k1p1/8/5P1p/b1N4P/5PP1/1p1K4/1B1n4 w - - bm g4; id "arasan4.107"; +3q1r1k/1P1n2p1/4R2p/2QBp2P/3pPb2/R1p2P2/5P2/5K2 w - - bm Qxf8+; id "arasan4.108"; +3q1r1k/1P1n2p1/4R2p/2QBp2P/3pPb2/R1p2P2/5P2/5K2 w - - bm Qxf8+; id "arasan4.109"; +2rbk1r1/7R/p1n3p1/1p3q2/2n2N2/4pQ2/PP2B1PP/3R2K1 w - - bm g4; id "arasan4.110"; +8/8/3k4/1p1npP1p/pP2B2P/P7/5K2/8 w - - bm Bxd5; id "arasan4.111"; +5nk1/p2r1pp1/1p4bp/3B4/4PPP1/P6P/1B6/2R3K1 w - - bm f5; id "arasan4.112"; +5nk1/p2r1pp1/1p4bp/3B4/4PPP1/P6P/1B6/2R3K1 w - - bm f5; id "arasan4.113"; +5nk1/p2r1pp1/1p4bp/3B4/4PPP1/P6P/1B6/2R3K1 w - - bm f5; id "arasan4.114"; +2kr3r/Rbpnq3/1p1pp3/2P3p1/3P4/2P1P1p1/Q2N1PP1/4KB2 w - - bm Rxb7; id "arasan4.115"; +2R2b1r/3nkp2/B2pp1p1/1N4Pn/P3P3/4BP2/1r5q/3QK1R1 w - - bm Nd4 Na7; id "arasan4.116"; +r3r1k1/1p1b2pp/p2qpp2/3n4/Pn1P4/1BN2Q2/1P1B1PPP/R2R2K1 w - - bm Ne4; id "arasan5.1"; +r3r1k1/1p1b2pp/p2qpp2/3n4/Pn1P4/1BN2Q2/1P1B1PPP/R2R2K1 w - - bm Ne4; id "arasan5.2"; +8/6p1/1b4k1/1p1KP3/1p3PP1/pB6/8/8 w - - bm e6; id "arasan5.3"; +r4rk1/1bq2p2/p3p1p1/n3P2p/3NpP2/2P1B2R/2P3PP/R3Q1K1 w - - bm g4; id "arasan5.4"; +2rq1rk1/pb1n1p2/1p2pn1p/6p1/2BP3B/1QR2N2/PP3PPP/4R1K1 w - - bm Nxg5; id "arasan5.5"; +2r1qrk1/1b1nbppp/4p3/pB1nP1B1/Pp2N3/5N1P/1P1Q1PP1/R2R2K1 w - - bm Nf6+; id "arasan5.6"; +1q4k1/r4p1p/6p1/1p1Q3n/p3N3/P7/1P3PPP/4R1K1 w - - bm g4; id "arasan5.7"; +3rr1k1/1pq2p1p/p1n3p1/3Bb3/P7/2P1BQ2/1P3PKP/3RR3 w - - bm Bb6; id "arasan5.8"; +3rr1k1/1pq2p1p/p1n3p1/3Bb3/P7/2P1BQ2/1P3PKP/3RR3 w - - bm Bb6; id "arasan5.9"; +r2qr1k1/pb4b1/1pnP2pp/5p2/5PB1/B4NQ1/P5PP/2R1R1K1 w - - bm Bxf5; id "arasan5.10"; +r1b2rk1/p1q4p/1p4p1/2NP1p2/1PPB4/6P1/P6P/Q3R1K1 w - - bm Qc1; id "arasan5.11"; +8/3k4/1p4b1/3p1p1p/K2P1PpP/3B2P1/1P6/8 w - - bm Kb5; id "arasan5.12"; +r1bn1rk1/2q2ppN/7p/p2p4/R7/2PB4/3B1PPb/3QRK2 w - - bm Nf6+; id "arasan5.13"; +4qrk1/1p1nb1p1/2p1pn1p/r2p4/3P1BPP/P1NBP3/5P2/R2QK1R1 w - - bm g5; id "arasan5.14"; +4qrk1/1p1nb1p1/2p1pn1p/r2p4/3P1BPP/P1NBP3/5P2/R2QK1R1 w - - bm g5; id "arasan5.15"; +4qrk1/1p1nb1p1/2p1pn1p/r2p4/3P1BPP/P1NBP3/5P2/R2QK1R1 w - - bm g5; id "arasan5.16"; +r1bq1rk1/4ppbp/p2p1n1B/2p5/1p2p2Q/3P1N2/PPP1N1PP/R4RK1 w - - bm Ng5; id "arasan5.17"; +4rrk1/p2n2pp/npbp4/2p1p3/2P2P1q/PNB1P3/1P2B1PP/1R1Q1RK1 w - - am Qxd6; id "arasan5.18"; +4rrk1/p2n2pp/npbp4/2p1p3/2P2P1q/PNB1P3/1P2B1PP/1R1Q1RK1 w - - am Qxd6; id "arasan5.19"; +8/B3r1p1/8/P4k1p/1P6/5P2/5K2/8 w - - bm Bc5; id "arasan5.21"; +b2rn1k1/3r1ppp/3N2n1/1pB1P3/p5P1/P3KP2/B6P/1RR5 w - - bm e6; id "arasan5.24"; +8/4rq2/2Q1N1pk/p3R2p/3p1P2/2n4P/6P1/7K w - - bm g4; id "arasan5.25"; +4kb1r/3n1p1p/p1q1p1p1/1p1nP3/1prPN3/4BB2/P2Q1PPP/3R1RK1 w - - bm Bh6; id "arasan5.26"; +3q2k1/rbp2r1p/1p1p1pp1/p1nN4/2P1PP2/1P2QBPP/1P5K/3RR3 w - - bm e5; id "arasan5.27"; +3q2k1/rbp2r1p/1p1p1pp1/p1nN4/2P1PP2/1P2QBPP/1P5K/3RR3 w - - bm e5; id "arasan5.28"; |
