aboutsummaryrefslogtreecommitdiff
path: root/perft.bash
diff options
context:
space:
mode:
authorAdam <adammegarules1@gmail.com>2026-08-10 15:04:16 +0200
committerAdam <adammegarules1@gmail.com>2026-08-10 15:04:16 +0200
commit6a39e28205d44e96da72728c0a3d4d6468962539 (patch)
tree8c9685dbe7b82edd7fc3068a51ff41e2e4d0be07 /perft.bash
parent775368b3596d8d1c376d7b783a1b6faf9db7f7ef (diff)
adding json based perft tests
Diffstat (limited to 'perft.bash')
-rwxr-xr-xperft.bash39
1 files changed, 39 insertions, 0 deletions
diff --git a/perft.bash b/perft.bash
new file mode 100755
index 0000000..cb0149b
--- /dev/null
+++ b/perft.bash
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+
+testPerft() {
+ local fen="$1"
+ local depth="$2"
+ local expected="$3"
+
+ result=$(./build/mono "perft" $depth "$fen")
+ count=$(echo $result | jq -r '.result')
+ if [ "$count" = "$expected" ]; then
+ echo "Results match"
+ else
+ echo "Results dont match"
+ echo "Expected: $expected"
+ echo "Got: $count"
+ fi
+ echo "-------------------"
+}
+
+configs=(
+ # starting pos
+ "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|1|1"
+ "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"
+ "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -|5|193690690"
+)
+
+for config in "${configs[@]}"; do
+ IFS='|' read -r fen depth expected <<< "$config"
+ testPerft "$fen" "$depth" "$expected"
+done \ No newline at end of file