Run each test like so python perft.py
.
The tests will run for each engine placed in the engines/ folder.
Tests the engine on perftsuite.epd, a set of 127 positions.
Requires the engine to respond to
position <fen>
perft <depth> <fen>
with a perft count. This can be part of a longer info print, as long as the perft count is given either as line with only one number, or as the first number following the word "nodes" ("Nodes", "nodes:", "nodes searched:" etc all work) in the first string "nodes" occurs.
Tests whether the engine gives the same eval if the board is mirrored.
Requires the engine to respond to
position <fen>
eval
with an evaluation from white's point of view, given as a single integer.
Tests an engine's aptitude at finding mating lines in positions from mate_in_x.epd with x going from 1 to 8.
Requires the engine to suport these uci commands
position <fen>
go mate x movetime y
Tests speed difference between two engines (different patches of the same one). Put two binaries in engines/ and run it. Runs until interrupted.
Requires the engine to run a benchmark when ran with bench
as cmd line arg, and output a summary including "x nps" at the end.