Пример #1
0
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();
}
Пример #2
0
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);
}