-
2 ms
test_chmengine
-
2 ms
TestCMHEngineImports
-
1 ms
passedtest_from_imports (test from chmengine imports)
-
0 ms
passedtest_mod_level_imports (tests imports)
-
1 ms
passedtest_star_imports (test from chmengine import *)
-
1 m 12 s
test_chmengine_play
-
1 m 12 s
TestPlayCMHMEngine
-
445 ms
passedtest_get_local_time (Tests get_local_time method_)
-
1 m 10 s
passedtest_play (tests play method_ (TBD))
-
Round: 1 | Time: 2025-04-25 15:01:39.346479-07:00
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
All legal moves: g1h3, g1f3, b1c3, b1a3, h2h3, g2g3, f2f3, e2e3, d2d3, c2c3, b2b3, a2a3, h2h4, g2g4, f2f4, e2e4, d2d4, c2c4, b2b4, a2a4
Calculating move scores...
My recommended move has a all-delta score of 10.00: e2e4
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
You're white, and thus it's your move: 1.
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . P . .
P P P P P . P P
R N B Q K B N R
All legal moves: g8h6, g8f6, b8c6, b8a6, h7h6, g7g6, f7f6, e7e6, d7d6, c7c6, b7b6, a7a6, h7h5, g7g5, f7f5, e7e5, d7d5, c7c5, b7b5, a7a5
Pick(move=Move.from_uci('e7e5'), score=11.0)
My recommended move has a all-delta score of 11.00: e7e5
I'm black, and thus it's my move!
I'll play 1. f2f3 e7e5
r n b q k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . . .
. . . . . P . .
P P P P P . P P
R N B Q K B N R
All legal moves: g1h3, e1f2, b1c3, b1a3, f3f4, h2h3, g2g3, e2e3, d2d3, c2c3, b2b3, a2a3, h2h4, g2g4, e2e4, d2d4, c2c4, b2b4, a2a4
Pick(move=Move.from_uci('d2d4'), score=-4.709677419354847)
My recommended move has a all-delta score of -4.71: d2d4
r n b q k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . . .
. . . . . P . .
P P P P P . P P
R N B Q K B N R
You're white, and thus it's your move: 2.
r n b q k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . P .
. . . . . P . .
P P P P P . . P
R N B Q K B N R
All legal moves: g8e7, g8h6, g8f6, f8e7, f8d6, f8c5, f8b4, f8a3, e8e7, d8e7, d8f6, d8g5, d8h4, b8c6, b8a6, h7h6, g7g6, f7f6, d7d6, c7c6, b7b6, a7a6, e5e4, h7h5, g7g5, f7f5, d7d5, c7c5, b7b5, a7a5
Pick(move=Move.from_uci('d8h4'), score=nan)
My recommended move has a all-delta score of nan: d8h4
I'm black, and thus it's my move!
I'll play 2. g2g4 d8h4
r n b . k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . P q
. . . . . P . .
P P P P P . . P
R N B Q K B N R
All legal moves:
Game Over: Outcome(termination=, winner=False)
r n b . k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . P q
. . . . . P . .
P P P P P . . P
R N B Q K B N R
Round: 1 | Time: 2025-04-25 15:01:43.344286-07:00
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
All legal moves: g1h3, g1f3, b1c3, b1a3, h2h3, g2g3, f2f3, e2e3, d2d3, c2c3, b2b3, a2a3, h2h4, g2g4, f2f4, e2e4, d2d4, c2c4, b2b4, a2a4
Calculating move scores...
My recommended move has a all-delta score of 0.23: e2e3
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
You're white, and thus it's your move: 1.
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . P . .
P P P P P . P P
R N B Q K B N R
All legal moves: g8h6, g8f6, b8c6, b8a6, h7h6, g7g6, f7f6, e7e6, d7d6, c7c6, b7b6, a7a6, h7h5, g7g5, f7f5, e7e5, d7d5, c7c5, b7b5, a7a5
Pick(move=Move.from_uci('e7e5'), score=-4.709677419354847)
My recommended move has a all-delta score of -4.71: e7e5
I'm black, and thus it's my move!
I'll play 1. f2f3 e7e5
r n b q k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . . .
. . . . . P . .
P P P P P . P P
R N B Q K B N R
All legal moves: g1h3, e1f2, b1c3, b1a3, f3f4, h2h3, g2g3, e2e3, d2d3, c2c3, b2b3, a2a3, h2h4, g2g4, e2e4, d2d4, c2c4, b2b4, a2a4
Pick(move=Move.from_uci('f3f4'), score=-18.641025641025642)
My recommended move has a all-delta score of -18.64: f3f4
r n b q k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . . .
. . . . . P . .
P P P P P . P P
R N B Q K B N R
You're white, and thus it's your move: 2.
r n b q k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . P .
. . . . . P . .
P P P P P . . P
R N B Q K B N R
All legal moves: g8e7, g8h6, g8f6, f8e7, f8d6, f8c5, f8b4, f8a3, e8e7, d8e7, d8f6, d8g5, d8h4, b8c6, b8a6, h7h6, g7g6, f7f6, d7d6, c7c6, b7b6, a7a6, e5e4, h7h5, g7g5, f7f5, d7d5, c7c5, b7b5, a7a5
Pick(move=Move.from_uci('d8h4'), score=-4096.0)
My recommended move has a all-delta score of -4096.00: d8h4
I'm black, and thus it's my move!
I'll play 2. g2g4 d8h4
r n b . k b n r
p p p p . p p p
. . . . . . . .
. . . . p . . .
. . . . . . P q
. . . . . P . .
P P P P P . . P
R N B Q K B N R
All legal moves:
Game Over: Outcome(termination=, winner=False)
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
-
468 ms
passedtest_save_to_pgn (Tests save_to_pgn method_ (TBD))
-
427 ms
passedtest_set_all_datetime_headers (Tests set_all_datetime_headers method_ (TBD))
-
434 ms
passedtest_set_utc_headers (Tests set_utc_headers method (TBD))
-
544 ms
passedtest_train_cmhmey_jr (Tests train_cmhmey_jr method_ (TBD))
-
3.58 s
test_chmutils
-
1.23 s
TestCalculateChessMoveHeatmap
-
2 ms
passedtest_calculate_chess_move_heatmap_depth_0 (Test calculate_chess_move_heatmap at depth 0 for accuracy of values_)
-
3 ms
passedtest_calculate_chess_move_heatmap_depth_1 (Test calculate_chess_move_heatmap at depth 1 for performance and type_)
-
54 ms
passedtest_calculate_chess_move_heatmap_depth_2 (Test calculate_chess_move_heatmap at depth 2 for performance and type_)
-
1.18 s
passedtest_calculate_chess_move_heatmap_depth_3 (Test calculate_chess_move_heatmap at depth 3 for performance and type_)
-
1.36 s
TestCalculateChessMoveHeatmapWithBetterDiscount
-
7 ms
passedtest_calculate_chess_move_heatmap_depth_0 (Test calculate_chess_move_heatmap at depth 0 for accuracy of values_)
-
16 ms
passedtest_calculate_chess_move_heatmap_depth_1 (Test calculate_chess_move_heatmap at depth 1 for performance and type_)
-
72 ms
passedtest_calculate_chess_move_heatmap_depth_2 (Test calculate_chess_move_heatmap at depth 2 for performance and type_)
-
1.27 s
passedtest_calculate_chess_move_heatmap_depth_3 (Test calculate_chess_move_heatmap at depth 3 for performance and type_)
-
803 ms
TestCalculateHeatmap
-
1 ms
passedtest_calculate_heatmap_depth_0 (Test calculate_heatmap at depth 0 for accuracy of values_)
-
1 ms
passedtest_calculate_heatmap_depth_1 (Test calculate_heatmap at depth 1 for performance and type_)
-
37 ms
passedtest_calculate_heatmap_depth_2 (Test calculate_heatmap at depth 2 for performance and type_)
-
764 ms
passedtest_calculate_heatmap_depth_3 (Test calculate_heatmap at depth 3 for performance and type_)
-
181 ms
TestHeatmapCacheAndFunctions
-
2 ms
passedtest_flatten_and_inflate_heatmap (Verify that a ChessMoveHeatmap can be flattened and then re-inflated correctly_)
-
76 ms
passedtest_get_or_compute_heatmap (Test that get_or_compute_heatmap computes the heatmap on the first call and then retrieves it from cache_)
-
103 ms
passedtest_heatmap_cache_store_and_retrieve (Test that HeatmapCache stores a heatmap and later retrieves an equivalent object_)
-
2.52 s
test_cmhmey1
-
2.52 s
TestCMHMEngine
-
2 ms
passedtest_board (tests board property)
-
0 ms
passedtest_board_copy_pushed (tests board_copy_pushed method)
-
0 ms
passedtest_current_moves_list
-
0 ms
passedtest_current_player_heatmap_index (Tests current_player_heatmap_index property)
-
1 ms
passedtest_depth (test depth property)
-
1 ms
passedtest_get_king_boxes
-
0 ms
passedtest_get_or_calc_move_maps
-
0 ms
passedtest_get_or_calc_move_maps_list
-
0 ms
passedtest_heatmap_data_is_zeros (Tests heatmap_data_is_zeros method)
-
0 ms
passedtest_is_valid_king_box_square
-
0 ms
passedtest_null_target_moves (test null_target_moves method)
-
0 ms
passedtest_other_player_heatmap_index (Tests other_player_heatmap_index property)
-
2.51 s
passedtest_pick_move (tests pick_move method)
-
1 ms
passedtest_update_target_moves_by_delta (Tests the update_target_moves_by_delta method)
-
0 ms
passedtest_update_target_moves_by_king_delta
-
1 ms
passedtest_update_target_moves_by_max_current
-
0 ms
passedtest_update_target_moves_by_max_other_king
-
0 ms
passedtest_update_target_moves_by_min_current_king
-
1 ms
passedtest_update_target_moves_by_min_other
-
10 m 40 s
test_cmhmey2
-
10 m 40 s
TestCMHMEngine2
-
582 ms
passedtest__get_or_calc_next_move_score_ (Tests internal _get_or_calc_response_move_scores_ method_)
-
1.02 s
passedtest__get_or_calculate_responses_ (Tests internal _get_or_calculate_responses_ method_)
-
876 ms
passedtest__init_qdb (Tests method that initiates DB files)
-
1.56 s
passedtest__update_current_move_choices_ (Tests internal _update_current_pick_score_ method_)
-
3 m 6 s
passedtest_false_positive_fen (Tests a regression position where a queen was sac-ed to by playing 'e7c5' to defend against a check:)
-
r1b1kb1r/1p1pqppp/5n2/pp3Q2/3p4/1P1PP3/PB1PNPPP/2RK3R b kq - 1 12
r . b . k b . r
. p . p q p p p
. . . . . n . .
p p . . . Q . .
. . . p . . . .
. P . P P . . .
P B . P N P P P
. . R K . . . R
All 29 moves ranked: [('d4e3', '39.67'), ('a8b8', '36.71'), ('e8d8', '36.71'), ('a8a7', '35.78'), ('e7d8', '35.46'), ('e7c5', '35.38'), ('g7g5', '34.88'), ('f6h5', '34.85'), ('e7a3', '34.80'), ('h8g8', '34.80'), ('h7h6', '34.78'), ('f6g8', '34.78'), ('d7d6', '34.65'), ('g7g6', '34.53'), ('e7b4', '34.24'), ('b5b4', '34.18'), ('d7d5', '34.08'), ('h7h5', '33.88'), ('e7e3', '33.86'), ('f6e4', '33.70'), ('e7e5', '33.18'), ('b7b6', '33.12'), ('a5a4', '33.04'), ('e7e4', '32.96'), ('e7d6', '32.29'), ('e7e6', '32.23'), ('a8a6', '30.96'), ('f6g4', '30.09'), ('f6d5', '29.88')]
r1b1kb1r/1p1pqppp/5n2/pp3Q2/3p4/1P1PP3/PB1PNPPP/2RK3R b kq - 1 12 pick: (f6d5, 29.9) 6.413s/branch
r1b1kb1r/1p1pqppp/8/pp1n1Q2/3p4/1P1PP3/PB1PNPPP/2RK3R w kq - 2 13
r . b . k b . r
. p . p q p p p
. . . . . . . .
p p . n . Q . .
. . . p . . . .
. P . P P . . .
P B . P N P P P
. . R K . . . R
-
6.84 s
passedtest_forced_mate_pick_move (Tests two possible back to back mate-in-one scenarios)
-
kb6/p3p3/5p2/2RP1p2/2RK4/2BPP3/6B1/8 b - - 0 1
k b . . . . . .
p . . . p . . .
. . . . . p . .
. . R P . p . .
. . R K . . . .
. . B P P . . .
. . . . . . B .
. . . . . . . .
All 12 moves ranked: [('e7e6', '1792.00'), ('e7e5', '1664.00'), ('a8b7', '26.79'), ('b8c7', '23.79'), ('a7a5', '22.50'), ('b8h2', '21.93'), ('b8g3', '21.93'), ('b8f4', '21.93'), ('b8d6', '21.93'), ('a7a6', '21.66'), ('f5f4', '17.12'), ('b8e5', '-1792.00')]
k7/p3p3/5p2/2RPbp2/2RK4/2BPP3/6B1/8 w - - 1 2
k . . . . . . .
p . . . p . . .
. . . . . p . .
. . R P b p . .
. . R K . . . .
. . B P P . . .
. . . . . . B .
. . . . . . . .
Outcome(termination=, winner=False)
kb6/p7/5p2/2RPpp2/2RK4/2BPP3/6B1/8 w - e6 0 2
k b . . . . . .
p . . . . . . .
. . . . . p . .
. . R P p p . .
. . R K . . . .
. . B P P . . .
. . . . . . B .
. . . . . . . .
All 1 moves ranked: [('d5e6', '1664.00')]
kb6/p7/4Pp2/2R2p2/2RK4/2BPP3/6B1/8 b - - 0 2
k b . . . . . .
p . . . . . . .
. . . . P p . .
. . R . . p . .
. . R K . . . .
. . B P P . . .
. . . . . . B .
. . . . . . . .
Outcome(termination=, winner=True)
-
462 ms
passedtest_forced_mate_scenario_3 (Tests a mate-in-one scenario that requires the previous move miss a different mate in one_)
-
kb6/p7/5p2/2RPpp2/2RK4/2BPP3/6B1/8 w - e6 0 2
k b . . . . . .
p . . . . . . .
. . . . . p . .
. . R P p p . .
. . R K . . . .
. . B P P . . .
. . . . . . B .
. . . . . . . .
All 1 moves ranked: [('d5e6', '1664.00')]
kb6/p7/4Pp2/2R2p2/2RK4/2BPP3/6B1/8 b - - 0 2
k b . . . . . .
p . . . . . . .
. . . . P p . .
. . R . . p . .
. . R K . . . .
. . B P P . . .
. . . . . . B .
. . . . . . . .
Outcome(termination=, winner=True)
-
449 ms
passedtest_get_q_value (Tests q-value getter, somewhat___ see test_set_q_value_)
-
2.40 s
passedtest_mate_capture_scenario (Tests that when faced with 2 mate positions the winner picks the one with the higher score_)
-
2k5/Q1p5/2K5/8/8/8/8/8 w - - 0 1
. . k . . . . .
Q . p . . . . .
. . K . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
All 19 moves ranked: [('a7a8', '512.00'), ('a7c7', '384.00'), ('a7d4', '28.81'), ('a7e3', '26.72'), ('a7f2', '23.70'), ('a7c5', '23.04'), ('a7a3', '22.72'), ('a7a5', '22.25'), ('a7a2', '21.68'), ('a7a1', '21.64'), ('a7g1', '21.52'), ('a7a4', '18.86'), ('a7a6', '16.32'), ('c6b5', '15.36'), ('c6d5', '15.14'), ('a7b7', '13.60'), ('c6c5', '10.81'), ('a7b6', '-0.20'), ('a7b8', '-1.33')]
Q1k5/2p5/2K5/8/8/8/8/8 b - - 1 1
Q . k . . . . .
. . p . . . . .
. . K . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
Outcome(termination=, winner=True)
All 19 moves ranked: [('a7a8', '512.00'), ('a7c7', '384.00'), ('a7d4', '28.81'), ('a7e3', '26.72'), ('a7f2', '23.70'), ('a7c5', '23.04'), ('a7a3', '22.72'), ('a7a5', '22.25'), ('a7a2', '21.68'), ('a7a1', '21.64'), ('a7g1', '21.52'), ('a7a4', '18.86'), ('a7a6', '16.32'), ('c6b5', '15.36'), ('c6d5', '15.14'), ('a7b7', '13.60'), ('c6c5', '10.81'), ('a7b6', '-0.20'), ('a7b8', '-1.33')]
Q1k5/2p5/2K5/8/8/8/8/8 b - - 1 1
Q . k . . . . .
. . p . . . . .
. . K . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
Outcome(termination=, winner=True)
-
3 m 46 s
passedtest_pick_move (Tests pick_move method_)
-
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call: (e2e3, 0.23) 0.558s/branch
rnbqkbnr/pppppppp/8/8/8/7N/PPPPPPPP/RNBQKB1R b KQkq - 1 1 pick_move call: (e7e6, -1.20) 0.583s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 2: (e2e3, 0.23) 0.024s/branch
rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R b KQkq - 1 1 pick_move call: (e7e6, -0.24) 0.607s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 3: (e2e3, 0.23) 0.027s/branch
rnbqkbnr/pppppppp/8/8/8/2N5/PPPPPPPP/R1BQKBNR b KQkq - 1 1 pick_move call: (e7e5, 2.77) 0.587s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 4: (b1c3, 2.77) 0.024s/branch
rnbqkbnr/pppppppp/8/8/8/N7/PPPPPPPP/R1BQKBNR b KQkq - 1 1 pick_move call: (e7e6, -0.27) 0.447s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 5: (b1c3, 2.77) 0.023s/branch
rnbqkbnr/pppppppp/8/8/8/7P/PPPPPPP1/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, -1.23) 0.531s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 6: (b1c3, 2.77) 0.025s/branch
rnbqkbnr/pppppppp/8/8/8/6P1/PPPPPP1P/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 0.87) 0.565s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 7: (b1c3, 2.77) 0.024s/branch
rnbqkbnr/pppppppp/8/8/8/5P2/PPPPP1PP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, -4.71) 0.475s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 8: (b1c3, 2.77) 0.023s/branch
rnbqkbnr/pppppppp/8/8/8/4P3/PPPP1PPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 15.33) 0.889s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 9: (e2e3, 15.33) 0.025s/branch
rnbqkbnr/pppppppp/8/8/8/3P4/PPP1PPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 4.78) 0.752s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 10: (e2e3, 15.33) 0.024s/branch
rnbqkbnr/pppppppp/8/8/8/2P5/PP1PPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 7.14) 0.465s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 11: (e2e3, 15.33) 0.025s/branch
rnbqkbnr/pppppppp/8/8/8/1P6/P1PPPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 0.73) 0.432s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 12: (e2e3, 15.33) 0.023s/branch
rnbqkbnr/pppppppp/8/8/8/P7/1PPPPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, -1.10) 0.344s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 13: (e2e3, 15.33) 0.024s/branch
rnbqkbnr/pppppppp/8/8/7P/8/PPPPPPP1/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 0.83) 0.425s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 14: (e2e3, 15.33) 0.024s/branch
rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, -1.23) 0.426s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 15: (e2e3, 15.33) 0.031s/branch
rnbqkbnr/pppppppp/8/8/5P2/8/PPPPP1PP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, -1.03) 0.387s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 16: (e2e3, 15.33) 0.026s/branch
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 13.38) 0.777s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 17: (e2e3, 15.33) 0.025s/branch
rnbqkbnr/pppppppp/8/8/3P4/8/PPP1PPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 11.50) 0.653s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 18: (e2e3, 15.33) 0.024s/branch
rnbqkbnr/pppppppp/8/8/2P5/8/PP1PPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 2.32) 0.372s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 19: (e2e3, 15.33) 0.023s/branch
rnbqkbnr/pppppppp/8/8/1P6/8/P1PPPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 1.86) 0.293s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 20: (e2e3, 15.33) 0.024s/branch
rnbqkbnr/pppppppp/8/8/P7/8/1PPPPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 0.83) 0.233s/branch
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 21: (e2e3, 15.33) 0.023s/branch
mean pick time: 0.050s
percentiles (0, 1, 10, 25, 50, 75, 90, 99, 100):
[0.02322102 0.0232305 0.02334373 0.02393067 0.0243023 0.02458285
0.02685276 0.45256462 0.55785286]
mean response time: 0.514s
percentiles (0, 1, 10, 25, 50, 75, 90, 99, 100):
[0.23255798 0.24471434 0.34447939 0.42485632 0.47453513 0.58664745
0.75165388 0.86693963 0.88931777]
mean revisit time: 0.025s
percentiles (0, 1, 10, 25, 50, 75, 90, 99, 100):
[0.02322102 0.02323003 0.0233362 0.02381228 0.02430179 0.0245678
0.02627323 0.03054547 0.03141167]
-
2 m 24 s
passedtest_pick_move_regression_mate_in_1 (Tests mate in one regression scenario)
-
4k2r/ppp4p/4pBp1/2Q5/4B3/4p1PK/PP1r3P/5R2 w - - 2 32
. . . . k . . r
p p p . . . . p
. . . . p B p .
. . Q . . . . .
. . . . B . . .
. . . . p . P K
P P . r . . . P
. . . . . R . .
All 60 moves ranked: [('c5e7', '2432.00'), ('c5b5', '28.98'), ('f6e5', '18.96'), ('f1c1', '18.20'), ('f6g5', '17.07'), ('f6c3', '17.07'), ('f6g7', '16.33'), ('e4b7', '16.26'), ('c5c4', '15.75'), ('c5c7', '15.74'), ('f6h8', '15.25'), ('f6e7', '14.82'), ('h3h4', '14.63'), ('f1e1', '14.53'), ('b2b4', '14.43'), ('b2b3', '14.40'), ('c5e3', '14.30'), ('g3g4', '13.93'), ('f6h4', '13.86'), ('e4f3', '13.86'), ('c5a3', '13.85'), ('a2a4', '13.80'), ('a2a3', '13.80'), ('f1g1', '13.63'), ('f1b1', '13.57'), ('c5c3', '13.50'), ('c5b4', '13.50'), ('c5a5', '13.50'), ('e4d3', '12.35'), ('f1a1', '12.17'), ('c5a7', '11.96'), ('f1h1', '11.77'), ('e4h1', '11.75'), ('e4c2', '10.15'), ('c5c1', '9.79'), ('e4b1', '9.60'), ('e4g2', '9.08'), ('f6d4', '8.68'), ('c5e5', '7.82'), ('f1f4', '7.23'), ('e4d5', '7.23'), ('e4c6', '6.85'), ('c5g5', '6.79'), ('h3g4', '6.76'), ('f1f2', '6.16'), ('f6d8', '5.44'), ('f1f3', '4.43'), ('e4f5', '4.00'), ('f1d1', '3.00'), ('f1f5', '2.72'), ('c5d6', '2.00'), ('c5b6', '1.88'), ('c5c6', '1.08'), ('c5c2', '0.56'), ('c5d5', '-0.33'), ('e4g6', '-0.63'), ('c5h5', '-0.86'), ('c5f8', '-2.23'), ('c5d4', '-2.30'), ('c5f5', '-3.93')]
(c5e7, 2432.00)
4k2r/ppp1Q2p/4pBp1/8/4B3/4p1PK/PP1r3P/5R2 b - - 3 32
. . . . k . . r
p p p . Q . . p
. . . . p B p .
. . . . . . . .
. . . . B . . .
. . . . p . P K
P P . r . . . P
. . . . . R . .
Outcome(termination=, winner=True)
-
451 ms
passedtest_qdb_path (Tests q-table path builder)
-
438 ms
passedtest_qtable_filename (Tests q-table filename builder)
-
452 ms
passedtest_set_q_value (Test q-value setter, as well as the getter)
-
439 ms
passedtest_state_fen (Tests fen method)
-
1 m 8 s
passedtest_update_q_values (Tests update_q_values method (rewards function))
-
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
All 20 moves ranked: [('e2e3', '0.23'), ('e2e4', '0.21'), ('d2d4', '-1.82'), ('d2d3', '-2.89'), ('c2c4', '-7.77'), ('b1c3', '-7.86'), ('g1f3', '-7.86'), ('b2b4', '-8.05'), ('g2g4', '-8.90'), ('c2c3', '-8.90'), ('a2a4', '-8.95'), ('h2h4', '-8.95'), ('b2b3', '-8.95'), ('g2g3', '-9.00'), ('f2f4', '-9.95'), ('b1a3', '-9.95'), ('g1h3', '-9.95'), ('a2a3', '-11.00'), ('f2f3', '-11.00'), ('h2h3', '-11.00')]
game line move: (Move.from_uci('f2f3'), -11.0)
engine line move: Pick(move=Move.from_uci('e2e3'), score=0.23333333333333428)
rnbqkbnr/pppppppp/8/8/8/5P2/PPPPP1PP/RNBQKBNR b KQkq - 0 1
All 20 moves ranked: [('a7a6', '8.00'), ('f7f6', '8.00'), ('h7h6', '8.00'), ('b8a6', '7.00'), ('g8h6', '6.95'), ('f7f5', '6.85'), ('b7b6', '6.00'), ('a7a5', '5.95'), ('b7b5', '5.95'), ('h7h5', '5.95'), ('g7g6', '5.95'), ('g7g5', '5.10'), ('c7c6', '5.05'), ('b8c6', '4.95'), ('g8f6', '4.82'), ('c7c5', '3.91'), ('d7d6', '-0.04'), ('d7d5', '-1.00'), ('e7e6', '-4.60'), ('e7e5', '-4.71')]
game line move: (Move.from_uci('e7e5'), -4.709677419354847)
engine line move: Pick(move=Move.from_uci('e7e5'), score=-4.709677419354847)
rnbqkbnr/pppp1ppp/8/4p3/8/5P2/PPPPP1PP/RNBQKBNR w KQkq - 0 2
All 19 moves ranked: [('f3f4', '-18.64'), ('c2c4', '-20.46'), ('b2b4', '-21.41'), ('g2g3', '-22.21'), ('b1c3', '-22.37'), ('h2h4', '-23.09'), ('c2c3', '-23.30'), ('a2a4', '-23.40'), ('b2b3', '-23.44'), ('b1a3', '-24.44'), ('e2e4', '-24.70'), ('h2h3', '-25.29'), ('d2d4', '-25.30'), ('a2a3', '-25.30'), ('g1h3', '-26.95'), ('d2d3', '-28.82'), ('e2e3', '-29.38'), ('e1f2', '-34.80'), ('g2g4', '-4096.00')]
game line move: (Move.from_uci('g2g4'), -4096.0)
engine line move: Pick(move=Move.from_uci('f3f4'), score=-18.641025641025642)
rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR b KQkq - 0 2
All 30 moves ranked: [('g8e7', '4.92'), ('e8e7', '3.92'), ('f7f6', '1.07'), ('f7f5', '-0.30'), ('g8f6', '-1.00'), ('f8e7', '-1.93'), ('e5e4', '-1.95'), ('f8a3', '-2.00'), ('g7g5', '-2.07'), ('f8d6', '-2.83'), ('a7a6', '-2.87'), ('h7h6', '-2.87'), ('d8e7', '-2.87'), ('g8h6', '-2.90'), ('c7c5', '-3.03'), ('b8a6', '-3.81'), ('h7h5', '-4.05'), ('b7b6', '-4.75'), ('a7a5', '-4.78'), ('b7b5', '-4.78'), ('g7g6', '-4.78'), ('d7d6', '-4.97'), ('c7c6', '-5.06'), ('f8c5', '-5.09'), ('b8c6', '-5.79'), ('d7d5', '-10.38'), ('d8f6', '-11.56'), ('f8b4', '-11.70'), ('d8g5', '-12.05'), ('d8h4', '-4096.00')]
game line move: (Move.from_uci('d8h4'), -4096.0)
engine line move: Pick(move=Move.from_uci('d8h4'), score=-4096.0)
rnb1kbnr/pppp1ppp/8/4p3/6Pq/5P2/PPPPP2P/RNBQKBNR w KQkq - 1 3
All 30 moves ranked: [('g8e7', '4.92'), ('e8e7', '3.92'), ('f7f6', '1.07'), ('f7f5', '-0.30'), ('g8f6', '-1.00'), ('f8e7', '-1.93'), ('e5e4', '-1.95'), ('f8a3', '-2.00'), ('g7g5', '-2.07'), ('f8d6', '-2.83'), ('a7a6', '-2.87'), ('h7h6', '-2.87'), ('d8e7', '-2.87'), ('g8h6', '-2.90'), ('c7c5', '-3.03'), ('b8a6', '-3.81'), ('h7h5', '-4.05'), ('b7b6', '-4.75'), ('a7a5', '-4.78'), ('b7b5', '-4.78'), ('g7g6', '-4.78'), ('d7d6', '-4.97'), ('c7c6', '-5.06'), ('f8c5', '-5.09'), ('b8c6', '-5.79'), ('d7d5', '-10.38'), ('d8f6', '-11.56'), ('f8b4', '-11.70'), ('d8g5', '-12.05'), ('d8h4', '-4096.00')]
Game Pick & Score: (d8h4, -4096.00) --> New Pick & Score: (d8h4, -4096.00)
All 19 moves ranked: [('f3f4', '-18.64'), ('c2c4', '-20.46'), ('b2b4', '-21.41'), ('g2g3', '-22.21'), ('b1c3', '-22.37'), ('h2h4', '-23.09'), ('c2c3', '-23.30'), ('a2a4', '-23.40'), ('b2b3', '-23.44'), ('b1a3', '-24.44'), ('e2e4', '-24.70'), ('h2h3', '-25.29'), ('d2d4', '-25.30'), ('a2a3', '-25.30'), ('g1h3', '-26.95'), ('d2d3', '-28.82'), ('e2e3', '-29.38'), ('e1f2', '-34.80'), ('g2g4', '-4096.00')]
Game Pick & Score: (g2g4, -4096.00) --> New Pick & Score: (f3f4, -18.64)
All 20 moves ranked: [('a7a6', '8.00'), ('f7f6', '8.00'), ('h7h6', '8.00'), ('b8a6', '7.00'), ('g8h6', '6.95'), ('f7f5', '6.85'), ('b7b6', '6.00'), ('a7a5', '5.95'), ('b7b5', '5.95'), ('h7h5', '5.95'), ('g7g6', '5.95'), ('g7g5', '5.10'), ('c7c6', '5.05'), ('b8c6', '4.95'), ('g8f6', '4.82'), ('c7c5', '3.91'), ('d7d6', '-0.04'), ('d7d5', '-1.00'), ('e7e6', '-4.60'), ('e7e5', '-18.64')]
Game Pick & Score: (e7e5, -18.64) --> New Pick & Score: (e7e5, -18.64)
All 20 moves ranked: [('e2e3', '0.23'), ('e2e4', '0.21'), ('d2d4', '-1.82'), ('d2d3', '-2.89'), ('c2c4', '-7.77'), ('b1c3', '-7.86'), ('g1f3', '-7.86'), ('b2b4', '-8.05'), ('g2g4', '-8.90'), ('c2c3', '-8.90'), ('a2a4', '-8.95'), ('h2h4', '-8.95'), ('b2b3', '-8.95'), ('g2g3', '-9.00'), ('f2f4', '-9.95'), ('b1a3', '-9.95'), ('g1h3', '-9.95'), ('a2a3', '-11.00'), ('h2h3', '-11.00'), ('f2f3', '-18.64')]
Game Pick & Score: (f2f3, -18.64) --> New Pick & Score: (e2e3, 0.23)
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
All 20 moves ranked: [('e2e3', '0.23'), ('e2e4', '0.21'), ('d2d4', '-1.82'), ('d2d3', '-2.89'), ('c2c4', '-7.77'), ('b1c3', '-7.86'), ('g1f3', '-7.86'), ('b2b4', '-8.05'), ('g2g4', '-8.90'), ('c2c3', '-8.90'), ('a2a4', '-8.95'), ('h2h4', '-8.95'), ('b2b3', '-8.95'), ('g2g3', '-9.00'), ('f2f4', '-9.95'), ('b1a3', '-9.95'), ('g1h3', '-9.95'), ('a2a3', '-11.00'), ('h2h3', '-11.00'), ('f2f3', '-18.64')]
game line move: (Move.from_uci('f2f3'), -18.641025641025642)
engine line move: Pick(move=Move.from_uci('e2e3'), score=0.23333333333333428)
rnbqkbnr/pppppppp/8/8/8/5P2/PPPPP1PP/RNBQKBNR b KQkq - 0 1
All 20 moves ranked: [('a7a6', '8.00'), ('f7f6', '8.00'), ('h7h6', '8.00'), ('b8a6', '7.00'), ('g8h6', '6.95'), ('f7f5', '6.85'), ('b7b6', '6.00'), ('a7a5', '5.95'), ('b7b5', '5.95'), ('h7h5', '5.95'), ('g7g6', '5.95'), ('g7g5', '5.10'), ('c7c6', '5.05'), ('b8c6', '4.95'), ('g8f6', '4.82'), ('c7c5', '3.91'), ('d7d6', '-0.04'), ('d7d5', '-1.00'), ('e7e6', '-4.60'), ('e7e5', '-18.64')]
game line move: (Move.from_uci('e7e5'), -18.641025641025642)
engine line move: Pick(move=Move.from_uci('e7e5'), score=-18.641025641025642)
rnbqkbnr/pppp1ppp/8/4p3/8/5P2/PPPPP1PP/RNBQKBNR w KQkq - 0 2
All 19 moves ranked: [('f3f4', '-18.64'), ('c2c4', '-20.46'), ('b2b4', '-21.41'), ('g2g3', '-22.21'), ('b1c3', '-22.37'), ('h2h4', '-23.09'), ('c2c3', '-23.30'), ('a2a4', '-23.40'), ('b2b3', '-23.44'), ('b1a3', '-24.44'), ('e2e4', '-24.70'), ('h2h3', '-25.29'), ('d2d4', '-25.30'), ('a2a3', '-25.30'), ('g1h3', '-26.95'), ('d2d3', '-28.82'), ('e2e3', '-29.38'), ('e1f2', '-34.80'), ('g2g4', '-4096.00')]
game line move: (Move.from_uci('g2g4'), -4096.0)
engine line move: Pick(move=Move.from_uci('f3f4'), score=-18.641025641025642)
rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR b KQkq - 0 2
All 30 moves ranked: [('g8e7', '4.92'), ('e8e7', '3.92'), ('f7f6', '1.07'), ('f7f5', '-0.30'), ('g8f6', '-1.00'), ('f8e7', '-1.93'), ('e5e4', '-1.95'), ('f8a3', '-2.00'), ('g7g5', '-2.07'), ('f8d6', '-2.83'), ('a7a6', '-2.87'), ('h7h6', '-2.87'), ('d8e7', '-2.87'), ('g8h6', '-2.90'), ('c7c5', '-3.03'), ('b8a6', '-3.81'), ('h7h5', '-4.05'), ('b7b6', '-4.75'), ('a7a5', '-4.78'), ('b7b5', '-4.78'), ('g7g6', '-4.78'), ('d7d6', '-4.97'), ('c7c6', '-5.06'), ('f8c5', '-5.09'), ('b8c6', '-5.79'), ('d7d5', '-10.38'), ('d8f6', '-11.56'), ('f8b4', '-11.70'), ('d8g5', '-12.05'), ('d8h4', '-4096.00')]
game line move: (Move.from_uci('d8h4'), -4096.0)
engine line move: Pick(move=Move.from_uci('d8h4'), score=-4096.0)
rnb1kbnr/pppp1ppp/8/4p3/6Pq/5P2/PPPPP2P/RNBQKBNR w KQkq - 1 3
-
2.19 s
test_engine_utils
-
2.19 s
TestEngineUtils
-
485 ms
passedtest_calculate_score (tests internal calculate_score method)
-
419 ms
passedtest_format_moves (Tests internal format method)
-
417 ms
passedtest_insert_ordered_best_to_worst (Tests internal insert_ordered_best_to_worst method)
-
465 ms
passedtest_insert_ordered_worst_to_best (Tests internal insert_ordered_worst_to_best method)
-
409 ms
passedtest_pieces_count_from_fen (Tests internal pieces_count_from_fen method)
-
48 ms
test_heatmaps
-
11 ms
TestChessMoveHeatmap
-
6 ms
passedtest_copy_behavior (Ensure copying behavior works correctly_)
-
2 ms
passedtest_initialization (Ensure ChessMoveHeatmap initializes correctly_)
-
3 ms
passedtest_invalid_piece_counts (Ensure TypeError is raised when setting invalid piece_counts_)
-
33 ms
TestChessMoveHeatmapT
-
22 ms
passedtest_addition (Test addition of two ChessMoveHeatmapT instances and a valid constructor args)
-
0 ms
passedtest_initialization (Ensure piece counts initialize correctly_)
-
1 ms
passedtest_invalid_addition_shape (Ensure ValueError is raised when setting incorrect shape_)
-
9 ms
passedtest_invalid_addition_type (Ensure TypeError is raised when adding an incompatible type_)
-
1 ms
passedtest_invalid_piece_counts (Ensure TypeError is raised for invalid piece_counts assignment_)
-
0 ms
passedtest_piece_counts_setter (Test setting piece count data_)
-
1 ms
TestGradientHeatmap
-
0 ms
passedtest_colors (Test if colors property returns valid hex color codes for all squares_)
-
1 ms
passedtest_html_representation (Ensure HTML representation is properly formatted_)
-
0 ms
passedtest_initialization (Test if heatmap initializes correctly from valid data_)
-
0 ms
passedtest_intensity_to_color (Test if color conversion produces valid hex RGB values_)
-
0 ms
passedtest_normalization (Test normalization functionality_)
-
3 ms
TestGradientHeatmapT
-
1 ms
passedtest_addition (Test addition of two GradientHeatmapT instances and a valid np_array_)
-
0 ms
passedtest_getitem_setitem (Test setting and getting heatmap values_)
-
0 ms
passedtest_initialization (Test if heatmap initializes with correct shape and zeros_)
-
1 ms
passedtest_invalid_addition_shape (Ensure ValueError is raised when setting incorrect shape_)
-
0 ms
passedtest_invalid_addition_type (Ensure TypeError is raised when adding an incompatible type_)
-
1 ms
passedtest_invalid_getitem_setitem (Ensure Error is raised when setting incorrectly per the object model_)
-
1 ms
test_pick
-
1 ms
TestPick
-
1 ms
passedtest_bad_score
-
0 ms
passedtest_data
-
0 ms
passedtest_init_failure (Tests init failures)
-
0 ms
passedtest_move
-
0 ms
passedtest_other_magic_methods (Tests other methods)
-
0 ms
passedtest_score
-
0 ms
test_quartney
-
0 ms
TestQuartney
-
0 ms
passedtest_instantiate_quartney (Test that trying to instantiate Quartney raises TypeError)