12 m 58 s

Unittests in tests: 91 total, 91 passed

  • Collapse |
  • Expand
  • 3 ms
    test_chmengine
    • 3 ms
      TestCMHEngineImports
      • 3 ms
        passedtest_from_imports (test from chmengine imports)
      • 0 ms
        passedtest_mod_level_imports (tests imports)
      • 0 ms
        passedtest_star_imports (test from chmengine import *)
  • 1 m 13 s
    test_chmengine_play
    • 1 m 13 s
      TestPlayCMHMEngine
      • 436 ms
        passedtest_get_local_time (Tests get_local_time method_)
      • 1 m 11 s
        passedtest_play (tests play method_ (TBD))
        • Round: 1 | Time: 2025-04-25 15:21:41.723310-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:21:46.113633-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
      • 518 ms
        passedtest_save_to_pgn (Tests save_to_pgn method_ (TBD))
      • 412 ms
        passedtest_set_all_datetime_headers (Tests set_all_datetime_headers method_ (TBD))
      • 429 ms
        passedtest_set_utc_headers (Tests set_utc_headers method (TBD))
      • 463 ms
        passedtest_train_cmhmey_jr (Tests train_cmhmey_jr method_ (TBD))
  • 4.39 s
    test_chmutils
    • 1.58 s
      TestCalculateChessMoveHeatmap
      • 2 ms
        passedtest_calculate_chess_move_heatmap_depth_0 (Test calculate_chess_move_heatmap at depth 0 for accuracy of values_)
      • 4 ms
        passedtest_calculate_chess_move_heatmap_depth_1 (Test calculate_chess_move_heatmap at depth 1 for performance and type_)
      • 66 ms
        passedtest_calculate_chess_move_heatmap_depth_2 (Test calculate_chess_move_heatmap at depth 2 for performance and type_)
      • 1.50 s
        passedtest_calculate_chess_move_heatmap_depth_3 (Test calculate_chess_move_heatmap at depth 3 for performance and type_)
    • 1.63 s
      TestCalculateChessMoveHeatmapWithBetterDiscount
      • 6 ms
        passedtest_calculate_chess_move_heatmap_depth_0 (Test calculate_chess_move_heatmap at depth 0 for accuracy of values_)
      • 14 ms
        passedtest_calculate_chess_move_heatmap_depth_1 (Test calculate_chess_move_heatmap at depth 1 for performance and type_)
      • 79 ms
        passedtest_calculate_chess_move_heatmap_depth_2 (Test calculate_chess_move_heatmap at depth 2 for performance and type_)
      • 1.53 s
        passedtest_calculate_chess_move_heatmap_depth_3 (Test calculate_chess_move_heatmap at depth 3 for performance and type_)
    • 994 ms
      TestCalculateHeatmap
      • 1 ms
        passedtest_calculate_heatmap_depth_0 (Test calculate_heatmap at depth 0 for accuracy of values_)
      • 3 ms
        passedtest_calculate_heatmap_depth_1 (Test calculate_heatmap at depth 1 for performance and type_)
      • 45 ms
        passedtest_calculate_heatmap_depth_2 (Test calculate_heatmap at depth 2 for performance and type_)
      • 945 ms
        passedtest_calculate_heatmap_depth_3 (Test calculate_heatmap at depth 3 for performance and type_)
    • 194 ms
      TestHeatmapCacheAndFunctions
      • 4 ms
        passedtest_flatten_and_inflate_heatmap (Verify that a ChessMoveHeatmap can be flattened and then re-inflated correctly_)
      • 80 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_)
      • 110 ms
        passedtest_heatmap_cache_store_and_retrieve (Test that HeatmapCache stores a heatmap and later retrieves an equivalent object_)
  • 2.45 s
    test_cmhmey1
    • 2.45 s
      TestCMHMEngine
      • 3 ms
        passedtest_board (tests board property)
      • 0 ms
        passedtest_board_copy_pushed (tests board_copy_pushed method)
      • 0 ms
        passedtest_current_moves_list
      • 1 ms
        passedtest_current_player_heatmap_index (Tests current_player_heatmap_index property)
      • 0 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)
      • 1 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.44 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
      • 0 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
      • 0 ms
        passedtest_update_target_moves_by_min_other
  • 11 m 36 s
    test_cmhmey2
    • 11 m 36 s
      TestCMHMEngine2
      • 597 ms
        passedtest__get_or_calc_next_move_score_ (Tests internal _get_or_calc_response_move_scores_ method_)
      • 947 ms
        passedtest__get_or_calculate_responses_ (Tests internal _get_or_calculate_responses_ method_)
      • 946 ms
        passedtest__init_qdb (Tests method that initiates DB files)
      • 1.61 s
        passedtest__update_current_move_choices_ (Tests internal _update_current_move_choices_ method_)
      • 3 m 20 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.893s/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
      • 7.08 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)
      • 487 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)
      • 487 ms
        passedtest_get_q_value (Tests q-value getter, somewhat___ see test_set_q_value_)
      • 2.53 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 58 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.579s/branch
          rnbqkbnr/pppppppp/8/8/8/7N/PPPPPPPP/RNBQKB1R b KQkq - 1 1 pick_move call: (e7e6, -1.20) 0.621s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 2: (e2e3, 0.23) 0.028s/branch
          rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R b KQkq - 1 1 pick_move call: (e7e6, -0.24) 0.624s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 3: (e2e3, 0.23) 0.031s/branch
          rnbqkbnr/pppppppp/8/8/8/2N5/PPPPPPPP/R1BQKBNR b KQkq - 1 1 pick_move call: (e7e5, 2.77) 0.620s/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.477s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 5: (b1c3, 2.77) 0.025s/branch
          rnbqkbnr/pppppppp/8/8/8/7P/PPPPPPP1/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, -1.23) 0.545s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 6: (b1c3, 2.77) 0.024s/branch
          rnbqkbnr/pppppppp/8/8/8/6P1/PPPPPP1P/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 0.87) 0.580s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 7: (b1c3, 2.77) 0.025s/branch
          rnbqkbnr/pppppppp/8/8/8/5P2/PPPPP1PP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, -4.71) 0.486s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 8: (b1c3, 2.77) 0.027s/branch
          rnbqkbnr/pppppppp/8/8/8/4P3/PPPP1PPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 15.33) 0.928s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 9: (e2e3, 15.33) 0.029s/branch
          rnbqkbnr/pppppppp/8/8/8/3P4/PPP1PPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 4.78) 0.757s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 10: (e2e3, 15.33) 0.028s/branch
          rnbqkbnr/pppppppp/8/8/8/2P5/PP1PPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 7.14) 0.484s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 11: (e2e3, 15.33) 0.024s/branch
          rnbqkbnr/pppppppp/8/8/8/1P6/P1PPPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 0.73) 0.451s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 12: (e2e3, 15.33) 0.025s/branch
          rnbqkbnr/pppppppp/8/8/8/P7/1PPPPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, -1.10) 0.348s/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.442s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 14: (e2e3, 15.33) 0.025s/branch
          rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, -1.23) 0.440s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 15: (e2e3, 15.33) 0.025s/branch
          rnbqkbnr/pppppppp/8/8/5P2/8/PPPPP1PP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, -1.03) 0.409s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 16: (e2e3, 15.33) 0.025s/branch
          rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 13.38) 0.791s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 17: (e2e3, 15.33) 0.026s/branch
          rnbqkbnr/pppppppp/8/8/3P4/8/PPP1PPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 11.50) 0.663s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 18: (e2e3, 15.33) 0.025s/branch
          rnbqkbnr/pppppppp/8/8/2P5/8/PP1PPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e5, 2.32) 0.415s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 19: (e2e3, 15.33) 0.032s/branch
          rnbqkbnr/pppppppp/8/8/1P6/8/P1PPPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 1.86) 0.403s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 20: (e2e3, 15.33) 0.026s/branch
          rnbqkbnr/pppppppp/8/8/P7/8/1PPPPPPP/RNBQKBNR b KQkq - 0 1 pick_move call: (e7e6, 0.83) 0.290s/branch
          rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 pick_move call 21: (e2e3, 15.33) 0.030s/branch
          mean pick time: 0.053s
          percentiles (0, 1, 10, 25, 50, 75, 90, 99, 100):
          [0.02373568 0.02380704 0.02438696 0.02466038 0.02540302 0.02807911
          0.03136238 0.46963538 0.57913481]
          mean response time: 0.541s
          percentiles (0, 1, 10, 25, 50, 75, 90, 99, 100):
          [0.29031552 0.3017853 0.40272817 0.44014245 0.4861337 0.6208292
          0.75680835 0.90062364 0.92811431]
          mean revisit time: 0.026s
          percentiles (0, 1, 10, 25, 50, 75, 90, 99, 100):
          [0.02373568 0.02380347 0.02435751 0.02462826 0.02539959 0.027927
          0.03015509 0.03158535 0.03163765]
      • 2 m 51 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)
      • 552 ms
        passedtest_qdb_path (Tests q-table path builder)
      • 451 ms
        passedtest_qtable_filename (Tests q-table filename builder)
      • 473 ms
        passedtest_set_q_value (Test q-value setter, as well as the getter)
      • 420 ms
        passedtest_state_fen (Tests fen method)
      • 1 m 10 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.25 s
    test_engine_utils
    • 2.25 s
      TestEngineUtils
      • 483 ms
        passedtest_calculate_score (tests internal calculate_score method)
      • 426 ms
        passedtest_format_moves (Tests internal format method)
      • 420 ms
        passedtest_insert_ordered_best_to_worst (Tests internal insert_ordered_best_to_worst method)
      • 475 ms
        passedtest_insert_ordered_worst_to_best (Tests internal insert_ordered_worst_to_best method)
      • 443 ms
        passedtest_pieces_count_from_fen (Tests internal pieces_count_from_fen method)
  • 51 ms
    test_heatmaps
    • 12 ms
      TestChessMoveHeatmap
      • 6 ms
        passedtest_copy_behavior (Ensure copying behavior works correctly_)
      • 3 ms
        passedtest_initialization (Ensure ChessMoveHeatmap initializes correctly_)
      • 3 ms
        passedtest_invalid_piece_counts (Ensure TypeError is raised when setting invalid piece_counts_)
    • 32 ms
      TestChessMoveHeatmapT
      • 21 ms
        passedtest_addition (Test addition of two ChessMoveHeatmapT instances and a valid constructor args)
      • 0 ms
        passedtest_initialization (Ensure piece counts initialize correctly_)
      • 0 ms
        passedtest_invalid_addition_shape (Ensure ValueError is raised when setting incorrect shape_)
      • 10 ms
        passedtest_invalid_addition_type (Ensure TypeError is raised when adding an incompatible type_)
      • 0 ms
        passedtest_invalid_piece_counts (Ensure TypeError is raised for invalid piece_counts assignment_)
      • 1 ms
        passedtest_piece_counts_setter (Test setting piece count data_)
    • 3 ms
      TestGradientHeatmap
      • 1 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_)
      • 1 ms
        passedtest_intensity_to_color (Test if color conversion produces valid hex RGB values_)
      • 0 ms
        passedtest_normalization (Test normalization functionality_)
    • 4 ms
      TestGradientHeatmapT
      • 0 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_)
      • 2 ms
        passedtest_initialization (Test if heatmap initializes with correct shape and zeros_)
      • 0 ms
        passedtest_invalid_addition_shape (Ensure ValueError is raised when setting incorrect shape_)
      • 2 ms
        passedtest_invalid_addition_type (Ensure TypeError is raised when adding an incompatible type_)
      • 0 ms
        passedtest_invalid_getitem_setitem (Ensure Error is raised when setting incorrectly per the object model_)
  • 1 ms
    test_pick
    • 1 ms
      TestPick
      • 0 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)
      • 1 ms
        passedtest_score
  • 1 ms
    test_quartney
    • 1 ms
      TestQuartney
      • 1 ms
        passedtest_instantiate_quartney (Test that trying to instantiate Quartney raises TypeError)

Generated by PyCharm on 4/25/25, 3:35 PM