#include "../src/fen.c" #include "../src/engine/search.c" #include "../src/engine/evaluate.c" #include "../src/engine/thread.c" #include "../src/engine/ttable.c" #include "../src/engine/threads.c" #include "../src/engine/moves.c" #include "../src/engine/moves/king.c" #include "../src/uci/command.c" int total_test_count = 43; bool (*tests[43])(void) = { test_fen_no_passant, test_fen_passant, test_starting_position, test_search_finds_mate_in_one, test_search_handles_no_moves, test_search_respects_depth, test_search_stop_signal_halts, test_qsearch_finds_capture, test_pv_reconstruction, test_eval_startpos_is_balanced, test_eval_scales_with_material, test_root_thread_emits_info_and_bestmove, test_root_thread_respects_depth_limit, test_root_thread_stops_on_node_limit, test_root_thread_reports_mate, test_child_workers_claim_and_share, test_child_thread_stops_on_signal, test_child_workers_find_mate_score, test_root_split_all_moves_claimed, test_root_with_workers_reports_mate, test_ttable_empty, test_ttable_insert_and_find, test_ttable_wrong_key, test_ttable_update_existing, test_bucket_collision, test_ttable_replace_shallowest, test_ttable_many_entries, test_threads_args_init_root_propagates, test_threads_args_init_child_propagates, test_split_pool_alloc_free, test_split_claim_moves_exactly_once, test_split_merge_last_owns, test_split_share_propagates_best, test_help_scan_finds_published_work, test_thrashing_counter_tracks_nodes, test_cooperative_stop_sets_finished, test_perft_starting_position, test_perft_kiwipete_position, test_perft_position3, test_white_king_corners, test_black_king_corners, test_uci_cmd_t, test_invalid_cmd_uci_cmd_t, }; int max_test_name_size = 35; char test_names[43][100] = { "fen_no_passant", "fen_passant", "starting_position", "search_finds_mate_in_one", "search_handles_no_moves", "search_respects_depth", "search_stop_signal_halts", "qsearch_finds_capture", "pv_reconstruction", "eval_startpos_is_balanced", "eval_scales_with_material", "root_thread_emits_info_and_bestmove", "root_thread_respects_depth_limit", "root_thread_stops_on_node_limit", "root_thread_reports_mate", "child_workers_claim_and_share", "child_thread_stops_on_signal", "child_workers_find_mate_score", "root_split_all_moves_claimed", "root_with_workers_reports_mate", "ttable_empty", "ttable_insert_and_find", "ttable_wrong_key", "ttable_update_existing", "bucket_collision", "ttable_replace_shallowest", "ttable_many_entries", "threads_args_init_root_propagates", "threads_args_init_child_propagates", "split_pool_alloc_free", "split_claim_moves_exactly_once", "split_merge_last_owns", "split_share_propagates_best", "help_scan_finds_published_work", "thrashing_counter_tracks_nodes", "cooperative_stop_sets_finished", "perft_starting_position", "perft_kiwipete_position", "perft_position3", "white_king_corners", "black_king_corners", "uci_cmd_t", "invalid_cmd_uci_cmd_t", };