diff options
Diffstat (limited to 'scripts/tests/hash.bash')
| -rwxr-xr-x | scripts/tests/hash.bash | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/scripts/tests/hash.bash b/scripts/tests/hash.bash new file mode 100755 index 0000000..92be2e6 --- /dev/null +++ b/scripts/tests/hash.bash @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +status=0 + +testZobrist() { + local name="$1" + local fen="$2" + local moves="$3" + local expected="$4" + + echo "" + + resultRaw=$(./build/mono hash "$fen" $moves) + result=$(echo $resultRaw | jq -r '.hash') + took=$(echo $resultRaw | jq -r '.ms') + if [ "$result" = "$expected" ]; then + echo "OK: $name, Took: $took" + else + echo "WRONG: $name" + echo "Expected: $expected" + echo "Got: $result" + echo "Raw: $resultRaw" + status=1 + fi +} + +configs=( + # starting position + "startpos|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1||5060803636482931868" + # single moves + "1.d4|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|d2d4|9443689642921087454" + "1.e4|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|e2e4|9384546495678726550" + "1.c4|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|c2c4|14562399549841627035" + # two moves + "1.e4 e5|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|e2e4 e7e5|595762792459712928" + "1.e4 c5|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|e2e4 c7c5|7227515431820872427" + "1.e4 e6|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|e2e4 e7e6|17603279437685838276" + "1.e4 c6|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|e2e4 c7c6|1172755318016414253" + "1.d4 d5|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|d2d4 d7d5|460664201775194104" + # three moves + "1.e4 e5 2.Nf3|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|e2e4 e7e5 g1f3|15213300192948443293" + "1.d4 d5 2.c4|rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1|d2d4 d7d5 c2c4|9963937660605248767" + # different starting FEN + "Kiwipete|r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1||14109232545397825053" +) + +for config in "${configs[@]}"; do + IFS='|' read -r name fen moves expected <<< "$config" + testZobrist "$name" "$fen" "$moves" "$expected" + if [ $status -ne 0 ]; then + exit "$status" + fi +done |
