void test_procedure() { if (!uci.engine_initialized) init_engine(position); assert(test_bitscan()); assert(test_bittwiddles()); assert(test_fen()); assert(test_genmove()); assert(test_make_unmake()); assert(test_hash()); assert(test_eval()); assert(test_capture_gen()); assert(test_check_gen()); assert(test_alt_move_gen()); assert(test_see()); assert(test_position()); assert(test_hash_table()); assert(test_ep_capture()); assert(test_book()); test_search(); }
void test_positions() { int win_score = 1000; test_fen("rnbqkbnr/ppp1pppp/3p4/8/8/P7/1PPPPPPP/RNBQKBNR w KQkq - 0 2", "g2g4", win_score); //a3 d6 test_fen("rnbqkbnr/ppp1pppp/3p4/8/P7/8/1PPPPPPP/RNBQKBNR w KQkq - 0 2", "g2g4", win_score); //a4 d6 test_fen("rnbqkbnr/1ppppppp/p7/8/1P6/8/P1PPPPPP/RNBQKBNR w KQkq - 0 2", "b4b5", win_score); //b4 a6 test_fen("rnbqkbnr/ppp1pppp/3p4/8/1P6/8/P1PPPPPP/RNBQKBNR w KQkq - 0 2", "g2g4", win_score); //b4 d6 test_fen("rnbqkbnr/pppp1ppp/8/4p3/1P6/8/P1PPPPPP/RNBQKBNR w KQkq e6 0 2", "h2h3", win_score); //b4 e5 test_fen("rnbqkbnr/ppppp1pp/8/5p2/1P6/8/P1PPPPPP/RNBQKBNR w KQkq f6 0 2", "e2e4", win_score); //b4 f5 test_fen("rnbqkbnr/ppppppp1/8/7p/1P6/8/P1PPPPPP/RNBQKBNR w KQkq h6 0 2", "g2g4", win_score); //b4 h5 test_fen("rnbqkb1r/pppppppp/5n2/8/1P6/8/P1PPPPPP/RNBQKBNR w KQkq - 1 2", "e2e4", win_score); //b4 Nf6 test_fen("rnbqkbnr/ppp1pppp/3p4/8/2P5/8/PP1PPPPP/RNBQKBNR w KQkq - 0 2", "c4c5", win_score); //c4 d6 test_fen("rnbqkbnr/ppp1pppp/3p4/8/2P5/8/PP1PPPPP/RNBQKBNR w KQkq - 0 2", "c4c5", win_score); //c4 d6 test_fen("rnbqkbnr/1ppppppp/8/p7/8/3P4/PPP1PPPP/RNBQKBNR w KQkq a6 0 2", "c1h6", win_score); //d3 a5 test_fen("rnbqkbnr/1ppppppp/8/p7/3P4/8/PPP1PPPP/RNBQKBNR w KQkq a6 0 2", "c1h6", win_score); //d4 a5 test_fen("rnbqkbnr/ppp1pppp/3p4/8/3P4/8/PPP1PPPP/RNBQKBNR w KQkq - 0 2", "g2g4", win_score); //d4 d6 test_fen("rnbqkbnr/ppppp1pp/5p2/8/3P4/8/PPP1PPPP/RNBQKBNR w KQkq - 0 2", "c1g5", win_score); //d4 f6 test_fen("rnbqkbnr/ppppp1pp/8/5p2/3P4/8/PPP1PPPP/RNBQKBNR w KQkq f6 0 2", "e2e4", win_score); //d4 f5 test_fen("rnbqkbnr/ppppp1pp/5p2/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2", "e4e5", win_score); //e4 f6, Qh5 also works test_fen("rnbqkb1r/pppppppp/5n2/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2", "f2f4", win_score); //e4 Nf6 test_fen("rnbqkbnr/ppp1pppp/8/3p4/5P2/8/PPPPP1PP/RNBQKBNR w KQkq d6 0 2", "e2e4", win_score); //f4 d5 test_fen("rnbqkbnr/ppppp1pp/8/5p2/5P2/8/PPPPP1PP/RNBQKBNR w KQkq f6 0 2", "e2e4", win_score); //f4 f5 test_fen("rnbqkbnr/ppppppp1/8/7p/5P2/8/PPPPP1PP/RNBQKBNR w KQkq h6 0 2", "g2g4", win_score); //f4 h5 test_fen("rnbqkb1r/pppppppp/5n2/8/5P2/8/PPPPP1PP/RNBQKBNR w KQkq - 1 2", "e2e4", win_score); //f4 Nf6 test_fen("rnbqkbnr/ppp1pppp/8/3p4/8/6P1/PPPPPP1P/RNBQKBNR w KQkq d6 0 2", "e2e4", win_score); //g3 s5 test_fen("rnbqkbnr/ppp1pppp/3p4/8/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0 2", "a2a4", win_score); //g4 d6 test_fen("rnbqkbnr/ppp1pppp/8/3p4/6P1/8/PPPPPP1P/RNBQKBNR w KQkq d6 0 2", "e2e4", win_score); //g4 d5 test_fen("rnbqkbnr/ppp1pppp/8/3p4/8/7P/PPPPPPP1/RNBQKBNR w KQkq d6 0 2", "e2e4", win_score); //h3 d5 test_fen("rnbqkbnr/pppp1ppp/8/4p3/8/7P/PPPPPPP1/RNBQKBNR w KQkq e6 0 2", "f2f4", win_score); //h3 e5 test_fen("rnbqkbnr/ppppp1pp/8/5p2/8/7P/PPPPPPP1/RNBQKBNR w KQkq f6 0 2", "e2e4", win_score); //h3 f5 test_fen("rnbqkbnr/ppppp1pp/8/5p2/7P/8/PPPPPPP1/RNBQKBNR w KQkq f6 0 2", "e2e4", win_score); //h4 f5 test_fen("rnbqkbnr/ppppppp1/8/7p/7P/8/PPPPPPP1/RNBQKBNR w KQkq h6 0 2", "g2g4", win_score); //h4 h5 test_fen("rnq1kb1r/1b1pn3/p4p1p/p5p1/P2Pp3/NP2P3/4NPPP/R1B1Q1RK w kq - 1 14", "e1a5", win_score); test_fen("2r1k2r/4p3/p6n/8/p3p2p/8/P2P3P/RN1K3R b - - 3 1", "c8d8", win_score); test_fen("8/4k3/1PP4n/7P/8/N1P5/1P1K4/2Q2BN1 w - - 0 23", "c1e1", win_score); }