From 6a39e28205d44e96da72728c0a3d4d6468962539 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 10 Aug 2026 15:04:16 +0200 Subject: adding json based perft tests --- perft.bash | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 perft.bash (limited to 'perft.bash') 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 -- cgit v1.2.3