aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xperft.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/perft.sh b/perft.sh
new file mode 100755
index 0000000..7bf1043
--- /dev/null
+++ b/perft.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+
+testPerft() {
+ local fen="$1"
+ local depth="$2"
+ local expected="$3"
+
+ printf "position fen %s\nperft %s\nquit\n" "$fen" "$depth" | ./build/mono
+ echo "Expected: $expected"
+ echo "-------------------"
+}
+
+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"
+ "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