From c1d6113da12bfbe92ae718d93dd56e25556e52cb Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 14 Aug 2026 18:20:56 +0200 Subject: adding a tests folder in scripts --- scripts/perft.bash | 62 ------------------------------------------------ scripts/tests/perft.bash | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 62 deletions(-) delete mode 100755 scripts/perft.bash create mode 100755 scripts/tests/perft.bash diff --git a/scripts/perft.bash b/scripts/perft.bash deleted file mode 100755 index b3a942a..0000000 --- a/scripts/perft.bash +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -status=0 - -testPerft() { - local fen="$1" - local depth="$2" - local expected="$3" - - echo "" - - result=$(./build/mono "perft" $depth "$fen") - count=$(echo "$result" | jq -r '.result') - took=$(echo "$result" | jq -r '.ms') - if [ "$count" = "$expected" ]; then - echo "Results match" - echo "Took: $took ms" - else - echo "RESULTS DONT MATCH" - echo "Took: $took ms" - echo "Depth: $depth" - echo "Fen: $fen" - echo "Expected: $expected" - echo "Got: $count" - status=1 - fi -} - -configs=( - # starting pos - "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|1|20" - "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|2|400" - "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|3|8902" - "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|4|197281" - "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|5|4865609" - - # kiwipete - "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|1|48" - "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|2|2039" - "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|3|97862" - "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|4|4085603" - - # other positions - "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1|1|14" - "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1|2|191" - "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1|3|2812" - "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1|4|43238" - - # even more cool ones - "r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1|1|6" - "r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1|2|264" - "r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1|3|9467" - "r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1|4|422333" -) - -for config in "${configs[@]}"; do - IFS='|' read -r fen depth expected <<< "$config" - testPerft "$fen" "$depth" "$expected" - if [ $status -ne 0 ]; then - exit "$status" - fi -done \ No newline at end of file diff --git a/scripts/tests/perft.bash b/scripts/tests/perft.bash new file mode 100755 index 0000000..1338569 --- /dev/null +++ b/scripts/tests/perft.bash @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +status=0 + +testPerft() { + local fen="$1" + local depth="$2" + local expected="$3" + + echo "" + + result=$(./build/mono "perft" $depth "$fen") + count=$(echo "$result" | jq -r '.result') + took=$(echo "$result" | jq -r '.ms') + if [ "$count" = "$expected" ]; then + echo "Results match" + echo "Took: $took ms" + else + echo "RESULTS DONT MATCH" + echo "Took: $took ms" + echo "Depth: $depth" + echo "Fen: $fen" + echo "Expected: $expected" + echo "Got: $count" + status=1 + fi +} + +configs=( + # starting pos + "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|1|20" + "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|2|400" + "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|3|8902" + "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|4|197281" + "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|5|4865609" + + # kiwipete + "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|1|48" + "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|2|2039" + "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|3|97862" + "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|4|4085603" + + # other positions + "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1|1|14" + "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1|2|191" + "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1|3|2812" + "8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 1|4|43238" + + # even more cool ones + "r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1|1|6" + "r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1|2|264" + "r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1|3|9467" + "r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1|4|422333" +) + +for config in "${configs[@]}"; do + IFS='|' read -r fen depth expected <<< "$config" + testPerft "$fen" "$depth" "$expected" + if [ $status -ne 0 ]; then + exit "$status" + fi +done -- cgit v1.2.3