[INFO] fetching crate skylode-core 0.2.0...
[INFO] testing skylode-core-0.2.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate skylode-core 0.2.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate skylode-core 0.2.0
[INFO] finished tweaking crates.io crate skylode-core 0.2.0
[INFO] tweaked toml for crates.io crate skylode-core 0.2.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate skylode-core 0.2.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate skylode-core 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c
[INFO] running `Command { std: "docker" "start" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.10.0
[INFO] [stderr]    Compiling skylode-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.00s
[INFO] running `Command { std: "docker" "inspect" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling skylode-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.08s
[INFO] running `Command { std: "docker" "inspect" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/skylode-core/8785526975cd71b4/out/skylode_core-8785526975cd71b4)
[INFO] [stdout] 
[INFO] [stdout] running 552 tests
[INFO] [stdout] test block::tests::doubling_the_power_never_costs_more_ticks ... ok
[INFO] [stdout] test block::tests::every_block_grants_some_experience ... ok
[INFO] [stdout] test block::tests::every_block_has_its_own_name ... ok
[INFO] [stdout] test block::tests::every_block_has_positive_hardness ... ok
[INFO] [stdout] test block::tests::dense_forms_are_tougher_and_drop_nine ... ok
[INFO] [stdout] test block::tests::no_block_contains_a_compressed_unit ... ok
[INFO] [stdout] test block::tests::all_blocks_covers_every_variant ... ok
[INFO] [stdout] test block::tests::a_blocks_name_is_not_derivable_from_its_material ... ok
[INFO] [stdout] test block::tests::a_power_that_is_not_positive_and_finite_breaks_nothing ... ok
[INFO] [stdout] test block::tests::a_cell_of_value_is_worth_three_of_its_mines_common_cell ... ok
[INFO] [stdout] test block::tests::every_world_filler_drops_its_own_material ... ok
[INFO] [stdout] test block::tests::a_tick_that_lands_short_still_costs_a_whole_tick ... ok
[INFO] [stdout] test block::tests::no_block_is_worth_more_experience_than_the_ceiling ... ok
[INFO] [stdout] test block::tests::obsidian_costs_a_diamond_pickaxe_the_ticks_minecraft_charges ... ok
[INFO] [stdout] test block::tests::every_block_drops_at_least_one_item ... ok
[INFO] [stdout] test block::tests::xp_rises_with_the_progression_at_every_dial_setting ... ok
[INFO] [stdout] test boost::tests::a_boost_never_has_more_left_than_it_was_granted ... ok
[INFO] [stdout] test boost::tests::a_boost_that_does_not_speed_the_player_up_is_refused ... ok
[INFO] [stdout] test block::tests::ore_and_dense_forms_describe_the_same_resource ... ok
[INFO] [stdout] test block::tests::the_end_gates_behind_netherite ... ok
[INFO] [stdout] test block::tests::the_nether_gates_behind_diamond ... ok
[INFO] [stdout] test block::tests::the_starter_filler_is_breakable_with_a_wooden_pickaxe ... ok
[INFO] [stdout] test block::tests::xp_is_not_the_drop_count ... ok
[INFO] [stdout] test boost::tests::a_boost_the_rules_built_is_valid ... ok
[INFO] [stdout] test boost::tests::a_boost_with_more_left_than_it_was_granted_is_refused ... ok
[INFO] [stdout] test boost::tests::a_running_boost_multiplies_by_more_than_one ... ok
[INFO] [stdout] test boost::tests::a_second_charge_adds_its_time_instead_of_restarting_the_clock ... ok
[INFO] [stdout] test boost::tests::an_expired_boost_multiplies_by_exactly_one ... ok
[INFO] [stdout] test boost::tests::extending_past_the_counters_ceiling_stays_at_the_ceiling ... ok
[INFO] [stdout] test boost::tests::ticking_an_expired_boost_stays_at_zero ... ok
[INFO] [stdout] test economy::tests::a_compress_first_refusal_can_point_the_other_way ... ok
[INFO] [stdout] test boost::tests::a_boost_lapses_on_the_tick_that_empties_it ... ok
[INFO] [stdout] test economy::tests::a_line_splits_a_total_without_losing_or_inventing_value ... ok
[INFO] [stdout] test economy::tests::a_fully_maxed_pickaxe_cannot_jump ... ok
[INFO] [stdout] test economy::tests::a_mixed_shortage_is_reported_as_the_loop_that_helps ... ok
[INFO] [stdout] test economy::tests::a_multi_material_cost_preserves_its_line_order ... ok
[INFO] [stdout] test economy::tests::a_ramp_with_no_span_stays_at_its_start ... ok
[INFO] [stdout] test economy::tests::a_single_material_cost_is_one_line ... ok
[INFO] [stdout] test economy::tests::a_special_enchant_is_priced_in_its_bands_material_plus_earlier_fuel ... ok
[INFO] [stdout] test economy::tests::a_zero_line_demands_nothing ... ok
[INFO] [stdout] test economy::tests::a_special_enchant_refuses_at_its_world_cap ... ok
[INFO] [stdout] test economy::tests::a_special_enchant_short_on_one_line_debits_neither ... ok
[INFO] [stdout] test economy::tests::an_enchant_price_follows_the_level_and_never_the_player ... ok
[INFO] [stdout] test economy::tests::a_second_boost_costs_the_same_as_the_first ... ok
[INFO] [stdout] test economy::tests::buy_max_efficiency_stops_at_the_tier_cap ... ok
[INFO] [stdout] test economy::tests::an_unaffordable_efficiency_buy_changes_nothing ... ok
[INFO] [stdout] test economy::tests::buying_a_boost_debits_the_quoted_denomination_only ... ok
[INFO] [stdout] test economy::tests::a_tier_jump_is_paid_in_the_tier_being_left ... ok
[INFO] [stdout] test economy::tests::buying_a_special_enchant_debits_all_its_lines ... ok
[INFO] [stdout] test economy::tests::a_tier_jump_needs_efficiency_maxed_first ... ok
[INFO] [stdout] test economy::tests::buying_a_tier_jump_advances_and_resets_efficiency ... ok
[INFO] [stdout] test economy::tests::buying_efficiency_debits_and_raises_the_level ... ok
[INFO] [stdout] test economy::tests::buying_mine_richness_raises_the_ceiling_and_unlocks_the_dial ... ok
[INFO] [stdout] test economy::tests::buying_mine_size_grows_the_grid_and_debits ... ok
[INFO] [stdout] test economy::tests::an_enchant_price_shares_one_total_across_its_lines ... ok
[INFO] [stdout] test economy::tests::an_unaffordable_boost_changes_nothing ... ok
[INFO] [stdout] test economy::tests::buy_n_stops_when_the_stock_runs_out ... ok
[INFO] [stdout] test economy::tests::a_compress_first_refusal_can_always_be_cleared_by_converting ... ok
[INFO] [stdout] test economy::tests::can_afford_is_exactly_the_affordable_state ... ok
[INFO] [stdout] test economy::tests::efficiency_is_not_sold_at_the_enchant_shop ... ok
[INFO] [stdout] test economy::tests::each_curve_opens_at_its_own_base_cost ... ok
[INFO] [stdout] test economy::tests::each_refusal_quotes_the_denomination_its_question_was_asked_in ... ok
[INFO] [stdout] test economy::tests::efficiency_gets_dearer_within_each_segment ... ok
[INFO] [stdout] test economy::tests::can_afford_reads_every_line_strictly ... ok
[INFO] [stdout] test economy::tests::buying_richness_past_the_top_rung_refuses_and_debits_nothing ... ok
[INFO] [stdout] test economy::tests::buying_size_past_the_top_of_the_table_refuses_and_debits_nothing ... ok
[INFO] [stdout] test economy::tests::mine_size_is_priced_in_the_mines_own_material ... ok
[INFO] [stdout] test economy::tests::every_curve_strictly_increases_over_the_range_tracks_use ... ok
[INFO] [stdout] test economy::tests::every_curve_saturates_rather_than_wrapping ... ok
[INFO] [stdout] test economy::tests::fortune_is_one_line_of_emerald_at_every_level ... ok
[INFO] [stdout] test economy::tests::efficiency_refuses_at_the_cap_without_debiting ... ok
[INFO] [stdout] test economy::tests::fortune_is_priced_in_emerald ... ok
[INFO] [stdout] test economy::tests::efficiency_through_the_enchant_door_uses_the_pickaxe_path ... ok
[INFO] [stdout] test economy::tests::enchant_fuel_never_reaches_back_to_an_earlier_world ... ok
[INFO] [stdout] test economy::tests::netherite_efficiency_is_paid_in_obsidian_and_crying_past_the_standard_cap ... ok
[INFO] [stdout] test economy::tests::pickaxe_upgrades_are_priced_in_the_tier_material ... ok
[INFO] [stdout] test economy::tests::reaching_a_later_tier_costs_more ... ok
[INFO] [stdout] test economy::tests::requirements_name_only_the_non_zero_denominations ... ok
[INFO] [stdout] test economy::tests::richness_on_a_same_material_mine_is_one_common_line ... ok
[INFO] [stdout] test economy::tests::splitting_a_price_never_changes_its_total ... ok
[INFO] [stdout] test economy::tests::richness_on_a_two_material_mine_shifts_from_common_to_rare ... ok
[INFO] [stdout] test economy::tests::the_documented_example_splits_as_written ... ok
[INFO] [stdout] test economy::tests::the_end_fuels_its_enchants_from_its_only_mine ... ok
[INFO] [stdout] test economy::tests::the_fuel_shares_make_one_whole ... ok
[INFO] [stdout] test economy::tests::the_netherite_enhancement_asks_for_more_crying_as_it_climbs ... ok
[INFO] [stdout] test economy::tests::the_rare_ramp_never_goes_backwards ... ok
[INFO] [stdout] test economy::tests::the_rare_ramp_spans_exactly_its_two_ends ... ok
[INFO] [stdout] test economy::tests::the_three_states_are_told_apart_by_what_is_held ... ok
[INFO] [stdout] test economy::tests::two_material_mine_size_is_paid_in_both_materials ... ok
[INFO] [stdout] test enchant::tests::a_bigger_mine_makes_a_longer_jackhammer_row ... ok
[INFO] [stdout] test enchant::tests::a_level_zero_enchant_breaks_nothing ... ok
[INFO] [stdout] test enchant::tests::a_mine_with_no_cells_yields_an_empty_blast ... ok
[INFO] [stdout] test enchant::tests::a_level_zero_enchant_never_procs ... ok
[INFO] [stdout] test enchant::tests::a_blast_at_the_origin_is_clipped_rather_than_wrapped ... ok
[INFO] [stdout] test enchant::tests::an_impact_off_the_grid_never_yields_cells_off_the_grid ... ok
[INFO] [stdout] test enchant::tests::all_enchants_covers_every_variant ... ok
[INFO] [stdout] test enchant::tests::an_absent_enchant_reads_as_level_zero ... ok
[INFO] [stdout] test enchant::tests::dropping_what_the_shop_does_not_price_leaves_the_six_rows_in_frame_order ... ok
[INFO] [stdout] test enchant::tests::an_unbought_excavator_never_procs_and_never_draws ... ok
[INFO] [stdout] test enchant::tests::both_upgrade_doors_stop_efficiency_at_the_same_level ... ok
[INFO] [stdout] test enchant::tests::enchant_caps_grow_strictly_with_the_world ... ok
[INFO] [stdout] test enchant::tests::enchant_names_are_present_and_unique ... ok
[INFO] [stdout] test enchant::tests::explosive_bands_line_up_with_the_world_caps ... ok
[INFO] [stdout] test enchant::tests::fortune_climbs_with_the_world_and_still_tops_out_at_ten ... ok
[INFO] [stdout] test enchant::tests::iter_yields_only_active_enchants ... ok
[INFO] [stdout] test enchant::tests::jackhammer_spans_the_full_width_at_every_level ... ok
[INFO] [stdout] test enchant::tests::efficiency_caps_at_five_everywhere_but_netherite ... ok
[INFO] [stdout] test enchant::tests::no_shape_names_a_cell_twice ... ok
[INFO] [stdout] test enchant::tests::every_enchant_has_a_reachable_cap ... ok
[INFO] [stdout] test enchant::tests::every_special_enchant_is_reachable_in_the_overworld ... ok
[INFO] [stdout] test enchant::tests::a_level_one_excavator_still_procs ... ok
[INFO] [stdout] test enchant::tests::a_level_past_the_cap_rests_on_the_quoted_ceiling ... ok
[INFO] [stdout] test enchant::tests::a_detached_enchant_round_trips_through_the_installed_set ... ok
[INFO] [stdout] test enchant::tests::a_proc_mints_one_compressed_unit_of_the_mined_material ... ok
[INFO] [stdout] test enchant::tests::nuke_dominates_the_other_two_shapes ... ok
[INFO] [stdout] test enchant::tests::only_explosive_has_a_square_to_name ... ok
[INFO] [stdout] test enchant::tests::only_the_spatial_enchants_break_cells ... ok
[INFO] [stdout] test enchant::tests::only_the_enchants_in_the_proc_order_ever_proc ... ok
[INFO] [stdout] test enchant::tests::reset_clears_every_enchant ... ok
[INFO] [stdout] test enchant::tests::proc_chances_never_fall_as_the_level_climbs ... ok
[INFO] [stdout] test enchant::tests::nuke_covers_the_whole_grid_at_every_level_and_from_anywhere ... ok
[INFO] [stdout] test enchant::tests::only_efficiency_ignores_the_world ... ok
[INFO] [stdout] test enchant::tests::reset_level_leaves_the_other_enchants_alone ... ok
[INFO] [stdout] test enchant::tests::the_explosive_side_is_the_square_a_proc_really_clears ... ok
[INFO] [stdout] test enchant::tests::the_explosive_square_grows_in_three_bands ... ok
[INFO] [stdout] test enchant::tests::spatial_proc_order_is_a_prefix_of_proc_order ... ok
[INFO] [stdout] test enchant::tests::the_five_special_enchants_and_fortune_ignore_the_pickaxe_tier ... ok
[INFO] [stdout] test enchant::tests::the_cap_upgrade_enforces_follows_the_tier ... ok
[INFO] [stdout] test enchant::tests::the_excavator_procs_less_often_than_the_two_common_spatials ... ok
[INFO] [stdout] test enchant::tests::upgrade_stops_at_the_enchant_cap ... ok
[INFO] [stdout] test enchant::tests::the_proc_ramp_lands_on_both_of_its_quoted_ends ... ok
[INFO] [stdout] test enchant::tests::the_five_special_enchants_share_their_world_cap ... ok
[INFO] [stdout] test enchant::tests::the_spatial_proc_list_and_the_spatial_list_describe_the_same_enchants ... ok
[INFO] [stdout] test enchant::tests::the_proc_order_follows_the_declaration_order ... ok
[INFO] [stdout] test enchant::tests::the_three_cap_groups_partition_every_enchant ... ok
[INFO] [stdout] test enchant::tests::upgrading_a_capped_enchant_is_refused_and_changes_nothing ... ok
[INFO] [stdout] test error::tests::a_mine_in_a_shut_world_names_only_the_level ... ok
[INFO] [stdout] test error::tests::a_mine_shut_on_both_axes_names_the_level_and_the_pickaxe ... ok
[INFO] [stdout] test error::tests::a_locked_mine_that_is_not_actually_locked_still_says_something ... ok
[INFO] [stdout] test enchant::tests::upgrading_an_absent_enchant_installs_it_at_level_one ... ok
[INFO] [stdout] test error::tests::a_capped_enchant_names_the_cap_it_is_sitting_at ... ok
[INFO] [stdout] test error::tests::a_tier_jump_before_efficiency_is_maxed_names_both_numbers ... ok
[INFO] [stdout] test error::tests::a_dial_past_its_ceiling_names_both_numbers ... ok
[INFO] [stdout] test enchant::tests::the_same_seed_mints_the_same_windfalls ... ok
[INFO] [stdout] test error::tests::a_prestige_short_on_every_axis_names_them_level_first ... ok
[INFO] [stdout] test error::tests::insufficient_items_names_the_denomination ... ok
[INFO] [stdout] test error::tests::a_spent_pickaxe_and_a_maxed_mine_say_so ... ok
[INFO] [stdout] test game::dev::tests::a_free_enchant_still_stops_at_the_world_cap ... ok
[INFO] [stdout] test game::dev::tests::a_free_pickaxe_climb_pays_nothing_and_still_stops_at_the_top ... ok
[INFO] [stdout] test game::dev::tests::a_free_size_rung_grows_the_standing_grid ... ok
[INFO] [stdout] test error::tests::an_open_world_that_still_owes_a_pickaxe_names_only_the_tier ... ok
[INFO] [stdout] test error::tests::an_unvisited_mine_says_where_to_go_rather_than_what_is_missing ... ok
[INFO] [stdout] test game::dev::tests::a_rewind_hands_the_next_resume_an_absence_to_credit ... ok
[INFO] [stdout] test game::dev::tests::a_level_outside_the_ladder_is_clamped_rather_than_written ... ok
[INFO] [stdout] test game::dev::tests::a_granted_pile_lands_in_the_inventory ... ok
[INFO] [stdout] test game::dev::tests::granted_boost_charges_are_spendable_through_the_rule_that_fires_them ... ok
[INFO] [stdout] test game::dev::tests::a_free_mine_upgrade_is_refused_on_a_mine_the_run_never_entered ... ok
[INFO] [stdout] test game::dev::tests::dev_experience_files_the_levels_it_crosses ... ok
[INFO] [stdout] test game::dev::tests::granted_experience_stops_at_the_cap_like_a_mined_one ... ok
[INFO] [stdout] test game::dev::tests::a_free_richness_rung_carries_a_pinned_dial ... ok
[INFO] [stdout] test game::dev::tests::efficiency_is_routed_to_the_pickaxe_ladder ... ok
[INFO] [stdout] test game::dev::tests::granting_everything_credits_all_fifteen_materials_in_raw ... ok
[INFO] [stdout] test game::dev::tests::a_rewind_past_the_epoch_clamps_rather_than_wrapping ... ok
[INFO] [stdout] test game::dev::tests::a_run_the_dev_doors_have_been_through_is_still_saveable ... ok
[INFO] [stdout] test game::dev::tests::setting_the_level_climbs_without_queueing_what_was_not_earned ... ok
[INFO] [stdout] test game::tests::a_blast_over_broken_ground_reports_fewer_blocks_than_cells ... ok
[INFO] [stdout] test game::tests::a_bought_boost_lands_in_the_reserve_unlit ... ok
[INFO] [stdout] test game::tests::a_chain_buys_every_rung_up_to_the_one_asked_for ... ok
[INFO] [stdout] test game::tests::a_carried_dial_reaches_a_mine_the_player_is_not_standing_in ... ok
[INFO] [stdout] test game::tests::a_chain_to_a_rung_already_owned_buys_nothing ... ok
[INFO] [stdout] test game::dev::tests::setting_the_level_drops_a_reward_waiting_above_it ... ok
[INFO] [stdout] test game::tests::a_charge_fired_onto_a_running_boost_stacks_rather_than_restarting_it ... ok
[INFO] [stdout] test game::tests::a_chain_stops_at_the_first_rung_it_cannot_pay_for ... ok
[INFO] [stdout] test game::dev::tests::the_prestige_rank_moves_without_wiping_the_run ... ok
[INFO] [stdout] test game::tests::a_clock_before_the_epoch_still_writes_a_save ... ok
[INFO] [stdout] test game::tests::a_boost_fired_after_one_lapsed_starts_from_a_fresh_total ... ok
[INFO] [stdout] test game::tests::a_backward_clock_credits_nothing_and_says_nothing ... ok
[INFO] [stdout] test game::tests::a_chain_walks_through_a_tier_jump_without_being_told_it_is_one ... ok
[INFO] [stdout] test game::tests::a_conversion_round_trip_moves_no_value ... ok
[INFO] [stdout] test game::tests::a_distant_dial_is_bounded_by_its_own_mines_ceiling ... ok
[INFO] [stdout] test game::tests::a_lapsing_boost_is_announced_once ... ok
[INFO] [stdout] test game::tests::a_long_absence_is_paid_at_the_cap_and_says_so ... ok
[INFO] [stdout] test game::tests::a_locked_mine_is_refused_with_both_axes_named ... ok
[INFO] [stdout] test game::tests::a_hard_block_pays_only_on_the_tick_it_gives ... ok
[INFO] [stdout] test game::tests::a_mine_short_on_one_axis_names_only_that_one ... ok
[INFO] [stdout] test game::tests::a_mine_left_and_re_entered_keeps_its_holes ... ok
[INFO] [stdout] test game::tests::a_prestige_banks_the_rank_and_resets_the_run ... ok
[INFO] [stdout] test game::tests::a_mine_that_is_both_current_and_left_behind_is_refused ... ok
[INFO] [stdout] test game::tests::a_mine_that_was_left_is_still_upgradable_from_where_the_player_stands ... ok
[INFO] [stdout] test game::tests::a_prestige_does_not_move_the_offline_mark ... ok
[INFO] [stdout] test game::tests::a_new_run_starts_in_a_full_stone_mine ... ok
[INFO] [stdout] test game::tests::a_prestige_clears_the_run_clock_and_keeps_the_lifetime_totals ... ok
[INFO] [stdout] test game::tests::a_prestige_does_not_rewind_the_dice ... ok
[INFO] [stdout] test game::tests::a_prestige_discards_what_was_never_collected ... ok
[INFO] [stdout] test game::tests::a_ladder_the_broken_blocks_could_not_have_paid_for_is_refused ... ok
[INFO] [stdout] test game::tests::a_prestige_leaves_the_auto_miner_ledger_alone ... ok
[INFO] [stdout] test game::tests::a_purchase_spends_the_players_own_inventory ... ok
[INFO] [stdout] test game::tests::a_mine_filed_under_the_wrong_kind_is_refused ... ok
[INFO] [stdout] test game::tests::a_rank_multiplies_the_auto_miners_rate_once ... ok
[INFO] [stdout] test game::tests::a_prestige_from_a_fresh_run_is_refused_and_changes_nothing ... ok
[INFO] [stdout] test game::tests::a_prestige_without_the_amethyst_is_refused_and_takes_nothing ... ok
[INFO] [stdout] test game::tests::a_refused_boost_purchase_grants_no_charge ... ok
[INFO] [stdout] test game::tests::a_refused_conversion_takes_nothing ... ok
[INFO] [stdout] test game::tests::a_released_space_bar_swings_at_nothing_and_draws_nothing ... ok
[INFO] [stdout] test game::tests::a_rank_pays_the_eleventh_ore_ten_swings_in ... ok
[INFO] [stdout] test game::tests::a_run_older_than_the_save_it_belongs_to_is_refused ... ok
[INFO] [stdout] test game::tests::a_ranked_span_credited_at_once_still_pays_what_it_pays_tick_by_tick ... ok
[INFO] [stdout] test game::tests::a_refused_mine_draws_nothing_and_changes_nothing ... ok
[INFO] [stdout] test game::tests::a_reward_waiting_for_a_level_that_was_never_reached_is_refused ... ok
[INFO] [stdout] test game::tests::a_run_the_rules_built_is_valid ... ok
[INFO] [stdout] test game::tests::a_running_boost_multiplies_the_power_the_swing_uses ... ok
[INFO] [stdout] test game::tests::a_second_prestige_costs_more_than_the_first ... ok
[INFO] [stdout] test game::tests::a_same_material_mine_credits_one_line ... ok
[INFO] [stdout] test game::tests::a_span_credited_at_once_pays_what_the_same_span_pays_tick_by_tick ... ok
[INFO] [stdout] test game::tests::a_spatial_proc_announces_the_shape_it_covered ... ok
[INFO] [stdout] test game::tests::a_state_reads_no_clock_of_its_own ... ok
[INFO] [stdout] test game::tests::a_swing_pays_every_cell_it_takes_before_the_mine_comes_back ... ok
[INFO] [stdout] test game::tests::a_swing_counts_the_block_it_broke_and_every_cell_a_blast_took ... ok
[INFO] [stdout] test game::tests::a_yield_carry_holding_a_whole_item_is_refused ... ok
[INFO] [stdout] test game::tests::a_written_run_reads_back_identically ... ok
[INFO] [stdout] test game::tests::an_absence_is_credited_and_the_mark_moves ... ok
[INFO] [stdout] test game::tests::an_absence_opens_no_world_and_moves_no_dice ... ok
[INFO] [stdout] test game::tests::an_absence_pays_ore_and_neither_clock_nor_the_block_counter ... ok
[INFO] [stdout] test game::tests::a_week_away_pays_out_ore_the_audit_still_accepts ... ok
[INFO] [stdout] test game::tests::a_tier_locked_mine_names_only_the_pickaxe ... ok
[INFO] [stdout] test game::tests::an_auto_miner_carry_holding_a_whole_block_is_refused ... ok
[INFO] [stdout] test game::tests::a_seeded_run_replays_exactly ... ok
[INFO] [stdout] test game::tests::an_absence_pays_what_the_same_span_of_ticks_pays ... ok
[INFO] [stdout] test game::tests::a_reloaded_run_continues_the_same_history ... ok
[INFO] [stdout] test game::tests::an_excavator_proc_replaces_the_impact_drop_and_takes_no_fortune ... ok
[INFO] [stdout] test game::tests::an_unvisited_mines_dial_answers_without_drawing_a_grid ... ok
[INFO] [stdout] test game::tests::an_ordinary_break_banks_its_drop_and_announces_nothing ... ok
[INFO] [stdout] test game::tests::balance_pacing_report ... ignored, multi-million-tick measurement; run in release with --ignored --nocapture
[INFO] [stdout] test game::tests::an_impossible_instant_is_refused ... ok
[INFO] [stdout] test game::tests::buying_a_size_level_spends_the_inventory_and_grows_the_grid ... ok
[INFO] [stdout] test game::tests::both_clocks_advance_on_every_tick_held_or_not ... ok
[INFO] [stdout] test game::tests::buying_a_richness_ceiling_carries_a_dial_that_was_pinned_to_the_old_one ... ok
[INFO] [stdout] test game::tests::buying_a_richness_ceiling_leaves_a_dial_below_it_where_the_player_put_it ... ok
[INFO] [stdout] test game::tests::decompressing_clears_the_refusal_that_compressing_cannot ... ok
[INFO] [stdout] test game::tests::each_door_forwards_to_the_track_that_owns_the_rule ... ok
[INFO] [stdout] test game::tests::firing_a_charge_lights_a_boost_and_spends_it ... ok
[INFO] [stdout] test game::tests::enriching_the_mine_shifts_what_the_auto_miner_credits ... ok
[INFO] [stdout] test game::tests::fortune_multiplies_the_loot_and_never_the_experience ... ok
[INFO] [stdout] test game::tests::collecting_nothing_is_refused_three_ways_and_changes_nothing ... ok
[INFO] [stdout] test game::tests::fortune_multiplies_what_the_auto_miner_brings_up ... ok
[INFO] [stdout] test game::tests::more_blocks_than_the_ticks_played_could_have_broken_is_refused ... ok
[INFO] [stdout] test game::tests::crossing_a_level_announces_it_and_pays_nothing_yet ... ok
[INFO] [stdout] test game::tests::prestige_ladder_report ... ignored, multi-run measurement; run in release with --ignored --nocapture
[INFO] [stdout] test game::tests::releasing_the_mine_key_forfeits_the_block_in_progress ... ok
[INFO] [stdout] test game::tests::resuming_with_no_time_elapsed_says_nothing ... ok
[INFO] [stdout] test game::tests::collecting_a_level_hands_over_what_its_announcement_quoted ... ok
[INFO] [stdout] test game::tests::collecting_everything_pays_each_level_once_in_climbing_order ... ok
[INFO] [stdout] test game::tests::selecting_the_mine_you_are_in_draws_nothing ... ok
[INFO] [stdout] test game::tests::the_auto_miner_pays_a_flat_rate_while_the_player_does_nothing ... ok
[INFO] [stdout] test game::tests::the_auto_miner_takes_no_cell_no_draw_and_no_experience ... ok
[INFO] [stdout] test game::tests::returning_to_a_visited_mine_costs_no_draw ... ok
[INFO] [stdout] test game::tests::firing_with_an_empty_reserve_is_refused_and_changes_nothing ... ok
[INFO] [stdout] test game::tests::more_ore_than_the_run_could_have_produced_is_refused ... ok
[INFO] [stdout] test game::tests::the_current_mine_is_visible_through_the_lookup_too ... ok
[INFO] [stdout] test game::tests::the_auto_miner_credits_ore_without_ever_moving_the_block_counter ... ok
[INFO] [stdout] test game::tests::the_dial_reaches_a_mine_the_player_is_not_standing_in ... ok
[INFO] [stdout] test game::tests::the_reserve_survives_a_boost_running_out ... ok
[INFO] [stdout] test game::tests::the_same_seed_opens_the_same_run ... ok
[INFO] [stdout] test game::tests::touching_the_mark_moves_it_without_paying ... ok
[INFO] [stdout] test game::tests::upgrading_a_mine_this_run_never_entered_is_refused_and_draws_nothing ... ok
[INFO] [stdout] test game::tests::the_same_run_always_writes_the_same_text ... ok
[INFO] [stdout] test inventory::tests::a_stored_zero_is_not_a_state_an_inventory_has ... ok
[INFO] [stdout] test inventory::tests::add_and_remove_track_the_count ... ok
[INFO] [stdout] test inventory::tests::an_inventory_writes_itself_readably ... ok
[INFO] [stdout] test inventory::tests::compress_trades_a_hundred_raw_for_one_unit ... ok
[INFO] [stdout] test inventory::tests::compressing_an_absurd_number_of_units_fails_rather_than_overflowing ... ok
[INFO] [stdout] test inventory::tests::compressing_and_decompressing_conserve_raw_value ... ok
[INFO] [stdout] test inventory::tests::compressing_more_than_the_raw_stock_allows_fails ... ok
[INFO] [stdout] test inventory::tests::decompressing_more_units_than_held_fails ... ok
[INFO] [stdout] test inventory::tests::has_answers_per_denomination ... ok
[INFO] [stdout] test inventory::tests::materials_do_not_bleed_into_each_other ... ok
[INFO] [stdout] test inventory::tests::raw_items_do_not_satisfy_a_compressed_cost ... ok
[INFO] [stdout] test inventory::tests::removing_more_than_held_fails_and_changes_nothing ... ok
[INFO] [stdout] test inventory::tests::spending_the_last_of_an_item_leaves_no_entry_behind ... ok
[INFO] [stdout] test material::tests::a_key_names_its_denomination ... ok
[INFO] [stdout] test material::tests::all_materials_covers_every_variant ... ok
[INFO] [stdout] test material::tests::an_unknown_key_is_refused ... ok
[INFO] [stdout] test inventory::tests::an_inventory_survives_the_round_trip ... ok
[INFO] [stdout] test material::tests::an_unknown_key_names_what_it_expected ... ok
[INFO] [stdout] test material::tests::both_denominations_share_one_material ... ok
[INFO] [stdout] test material::tests::compressed_items_are_worth_a_hundred_raw ... ok
[INFO] [stdout] test material::tests::display_names_are_unique ... ok
[INFO] [stdout] test material::tests::every_material_is_obtainable_in_at_least_one_world ... ok
[INFO] [stdout] test material::tests::every_material_key_is_a_word_of_its_own ... ok
[INFO] [stdout] test material::tests::every_world_has_a_filler_material ... ok
[INFO] [stdout] test material::tests::item_display_names_are_unique_across_denominations ... ok
[INFO] [stdout] test material::tests::multi_word_materials_are_displayed_with_spaces ... ok
[INFO] [stdout] test material::tests::every_item_survives_its_save_key ... ok
[INFO] [stdout] test material::tests::save_keys_are_unique ... ok
[INFO] [stdout] test mine::tests::a_blast_breaks_every_cell_of_its_shape_and_returns_them ... ok
[INFO] [stdout] test mine::tests::a_blast_off_the_grid_breaks_nothing_and_survives ... ok
[INFO] [stdout] test mine::tests::a_blast_over_holes_pays_only_for_what_was_standing ... ok
[INFO] [stdout] test material::tests::the_table_is_sorted_and_therefore_the_save_order ... ok
[INFO] [stdout] test mine::tests::a_block_takes_the_ticks_its_hardness_and_the_pickaxe_agree_on ... ok
[INFO] [stdout] test mine::tests::a_break_progress_that_is_not_a_count_of_ticks_is_refused ... ok
[INFO] [stdout] test mine::tests::a_break_reports_the_cell_it_happened_in ... ok
[INFO] [stdout] test mine::tests::a_broken_block_frees_the_target_for_a_new_draw ... ok
[INFO] [stdout] test mine::tests::a_blast_that_empties_the_mine_does_not_refill_it ... ok
[INFO] [stdout] test mine::tests::a_dial_above_the_bought_ceiling_is_refused_and_changes_nothing ... ok
[INFO] [stdout] test mine::tests::a_dial_above_its_ceiling_is_refused ... ok
[INFO] [stdout] test mine::tests::a_diamond_pickaxe_clears_obsidian_in_the_ticks_minecraft_charges ... ok
[INFO] [stdout] test mine::tests::a_dig_that_empties_the_mine_leaves_it_for_the_swing_to_refill ... ok
[INFO] [stdout] test enchant::tests::no_shape_ever_leaves_the_grid ... ok
[INFO] [stdout] test mine::tests::a_fresh_mine_has_no_richness ... ok
[INFO] [stdout] test mine::tests::a_fresh_mine_is_full_to_its_capacity ... ok
[INFO] [stdout] test mine::tests::a_grid_that_is_not_the_size_it_claims_is_refused ... ok
[INFO] [stdout] test mine::tests::a_hasted_netherite_instamines_the_dense_blocks_but_not_the_obsidian ... ok
[INFO] [stdout] test mine::tests::a_mine_at_the_largest_size_refuses_to_grow_and_changes_nothing ... ok
[INFO] [stdout] test mine::tests::a_fresh_wooden_pickaxe_instamines_nothing_in_the_game ... ok
[INFO] [stdout] test mine::tests::a_mine_emptied_cell_by_cell_reports_empty ... ok
[INFO] [stdout] test mine::tests::a_mine_reports_its_kind ... ok
[INFO] [stdout] test mine::tests::a_nuke_shape_clears_the_whole_grid_from_a_corner ... ok
[INFO] [stdout] test mine::tests::a_refill_fires_on_an_empty_grid_and_on_no_other ... ok
[INFO] [stdout] test mine::tests::a_refilled_mine_keeps_its_size_and_its_dial ... ok
[INFO] [stdout] test mine::tests::a_richness_level_past_the_highest_for_sale_is_refused ... ok
[INFO] [stdout] test mine::tests::a_size_can_be_looked_up_without_a_mine_to_look_it_up_on ... ok
[INFO] [stdout] test mine::tests::a_size_level_past_the_largest_is_refused ... ok
[INFO] [stdout] test mine::tests::a_target_broken_out_from_under_the_digger_forfeits_its_progress ... ok
[INFO] [stdout] test mine::tests::an_aim_at_a_cell_that_is_not_standing_is_refused ... ok
[INFO] [stdout] test mine::tests::an_enchant_at_level_zero_costs_no_entropy ... ok
[INFO] [stdout] test mine::tests::an_explosive_shape_at_a_corner_breaks_only_its_quadrant ... ok
[INFO] [stdout] test mine::tests::an_instamined_break_still_reports_its_cell ... ok
[INFO] [stdout] test mine::tests::break_ratio_walks_from_zero_to_one_and_stops_there ... ok
[INFO] [stdout] test mine::tests::capacity_is_the_nominal_size_not_the_blocks_left ... ok
[INFO] [stdout] test mine::tests::every_setting_yields_a_full_grid_from_the_pool ... ok
[INFO] [stdout] test mine::tests::get_grid_and_get_report_the_same_cells ... ok
[INFO] [stdout] test mine::tests::get_off_the_grid_is_none_on_every_side ... ok
[INFO] [stdout] test mine::tests::a_mine_the_rules_built_is_valid ... ok
[INFO] [stdout] test mine::tests::a_mining_power_that_is_not_a_positive_number_breaks_nothing ... ok
[INFO] [stdout] test mine::tests::moving_the_dial_forfeits_the_progress_on_the_targeted_cell ... ok
[INFO] [stdout] test mine::tests::moving_the_dial_up_shifts_the_standing_cells_toward_the_value_block ... ok
[INFO] [stdout] test mine::tests::new_mine_is_a_weighted_mix_dominated_by_the_common_block ... ok
[INFO] [stdout] test mine::tests::mines_only_ever_grow_with_their_size_level ... ok
[INFO] [stdout] test mine::tests::procs_only_ever_remove_cells_and_never_refill ... ok
[INFO] [stdout] test mine::tests::progress_never_carries_over_to_the_next_block ... ok
[INFO] [stdout] test mine::tests::reset_rebuilds_the_whole_grid_from_the_block_pool ... ok
[INFO] [stdout] test mine::tests::reset_fills_the_holes_back_in ... ok
[INFO] [stdout] test mine::tests::richness_setting_shifts_weight_toward_the_value_cell ... ok
[INFO] [stdout] test mine::tests::size_level_indexes_the_dimension_table ... ok
[INFO] [stdout] test mine::tests::size_level_is_correctly_updated_when_upgrading ... ok
[INFO] [stdout] test mine::tests::size_levels_past_the_table_clamp_to_the_largest_mine ... ok
[INFO] [stdout] test mine::tests::taking_a_cell_returns_the_block_and_leaves_a_hole ... ok
[INFO] [stdout] test mine::tests::taking_a_hole_or_a_cell_off_the_grid_yields_nothing ... ok
[INFO] [stdout] test mine::tests::moving_the_dial_rerolls_the_standing_cells_and_leaves_the_holes ... ok
[INFO] [stdout] test mine::tests::the_last_block_still_drops_before_the_refill ... ok
[INFO] [stdout] test mine::tests::the_proc_sequence_is_pinned_to_a_golden_vector ... ok
[INFO] [stdout] test mine::tests::the_dial_curve_can_be_read_without_a_mine_to_read_it_on ... ok
[INFO] [stdout] test mine::tests::the_redstone_boost_is_what_finally_instamines_the_obsidian ... ok
[INFO] [stdout] test mine::tests::the_same_seed_replays_the_same_dial_moves ... ok
[INFO] [stdout] test mine::tests::setting_the_dial_where_it_already_is_draws_nothing ... ok
[INFO] [stdout] test mine::tests::the_richness_ceiling_ends_at_its_top_rung_and_refuses_past_it ... ok
[INFO] [stdout] test mine::tests::the_same_seed_reproduces_the_same_grid ... ok
[INFO] [stdout] test mine::tests::the_size_ladder_ends_at_the_last_row_of_the_table ... ok
[INFO] [stdout] test mine::tests::the_target_holds_still_while_the_block_stands ... ok
[INFO] [stdout] test mine::tests::the_same_seed_replays_the_same_procs ... ok
[INFO] [stdout] test mine::tests::upgrading_the_size_level_increases_the_grid_dimensions ... ok
[INFO] [stdout] test mine::tests::value_weight_ramps_then_clamps_and_never_starves_the_common_cell ... ok
[INFO] [stdout] test mine_kind::tests::a_mine_can_owe_both_a_level_and_a_pickaxe ... ok
[INFO] [stdout] test mine_kind::tests::a_mine_in_a_shut_world_owes_only_a_level ... ok
[INFO] [stdout] test mine_kind::tests::all_mines_covers_every_variant ... ok
[INFO] [stdout] test mine_kind::tests::an_open_world_can_still_owe_a_pickaxe ... ok
[INFO] [stdout] test mine_kind::tests::common_and_value_share_a_world ... ok
[INFO] [stdout] test mine_kind::tests::mine_names_are_unique ... ok
[INFO] [stdout] test mine_kind::tests::both_cells_belong_to_the_mines_world ... ok
[INFO] [stdout] test mine_kind::tests::no_mine_holds_a_cell_its_gating_tier_cannot_break ... ok
[INFO] [stdout] test mine_kind::tests::only_the_endgame_mines_are_two_material ... ok
[INFO] [stdout] test mine_kind::tests::common_and_value_share_a_gating_tier ... ok
[INFO] [stdout] test mine_kind::tests::overworld_ore_mines_are_pure_same_material ... ok
[INFO] [stdout] test mine_kind::tests::the_lock_only_ever_quotes_the_mines_own_requirements ... ok
[INFO] [stdout] test mine_kind::tests::the_starter_mine_is_open_to_a_brand_new_player ... ok
[INFO] [stdout] test mine_kind::tests::no_mine_stays_closed_to_a_maxed_player ... ok
[INFO] [stdout] test pickaxe::tests::a_fresh_pickaxe_is_wooden_and_unenchanted ... ok
[INFO] [stdout] test pickaxe::tests::a_previewed_rung_keeps_the_haste_of_the_pickaxe_asking ... ok
[INFO] [stdout] test pickaxe::tests::a_wooden_pickaxe_can_be_asked_what_diamond_would_be_worth ... ok
[INFO] [stdout] test pickaxe::tests::an_unenchanted_pickaxe_earns_no_efficiency_bonus ... ok
[INFO] [stdout] test pickaxe::tests::an_unfortuned_pickaxe_multiplies_its_loot_by_exactly_one ... ok
[INFO] [stdout] test pickaxe::tests::an_unhasted_pickaxe_keeps_exactly_its_additive_power ... ok
[INFO] [stdout] test pickaxe::tests::asking_a_pickaxe_about_its_own_rung_gives_its_mining_power ... ok
[INFO] [stdout] test pickaxe::tests::base_power_never_goes_backwards_up_the_ladder ... ok
[INFO] [stdout] test pickaxe::tests::each_tier_has_its_balanced_base_power ... ok
[INFO] [stdout] test pickaxe::tests::efficiency_scales_quadratically ... ok
[INFO] [stdout] test pickaxe::tests::every_tier_names_its_material_and_nothing_else ... ok
[INFO] [stdout] test pickaxe::tests::fortune_at_its_cap_is_worth_eleven_times_the_block ... ok
[INFO] [stdout] test pickaxe::tests::haste_multiplies_the_efficiency_bonus_and_not_just_the_tier ... ok
[INFO] [stdout] test pickaxe::tests::haste_never_slows_the_pickaxe ... ok
[INFO] [stdout] test pickaxe::tests::hastes_rungs_are_evenly_spaced_linear_steps ... ok
[INFO] [stdout] test pickaxe::tests::a_haste_level_can_be_priced_before_it_is_bought ... ok
[INFO] [stdout] test pickaxe::tests::netherite_efficiency_climbs_to_fifteen ... ok
[INFO] [stdout] test pickaxe::tests::a_capped_efficiency_is_cashed_in_for_the_next_tier ... ok
[INFO] [stdout] test pickaxe::tests::power_at_the_pickaxes_own_haste_is_its_mining_power ... ok
[INFO] [stdout] test pickaxe::tests::the_first_level_of_efficiency_is_a_discrete_jump ... ok
[INFO] [stdout] test pickaxe::tests::thirty_upgrades_walk_the_whole_tier_ladder ... ok
[INFO] [stdout] test pickaxe::tests::tiers_compare_in_progression_order ... ok
[INFO] [stdout] test pickaxe::tests::upgrades_fill_efficiency_before_touching_the_tier ... ok
[INFO] [stdout] test pickaxe::tests::the_tier_ladder_ends_at_netherite ... ok
[INFO] [stdout] test pickaxe::tests::the_gate_admits_a_block_at_exactly_its_own_tier ... ok
[INFO] [stdout] test player::tests::a_blast_pays_the_same_as_breaking_its_cells_one_by_one ... ok
[INFO] [stdout] test pickaxe::tests::upgrading_a_fully_maxed_pickaxe_is_refused_rather_than_silently_ignored ... ok
[INFO] [stdout] test player::tests::a_carried_remainder_pays_the_eleventh_experience_point ... ok
[INFO] [stdout] test player::tests::a_capped_player_gains_no_further_levels ... ok
[INFO] [stdout] test player::tests::a_fresh_player_is_short_of_both_axes_on_the_late_mines ... ok
[INFO] [stdout] test player::tests::a_level_off_the_ladder_is_refused ... ok
[INFO] [stdout] test player::tests::a_carry_holding_a_whole_point_is_refused ... ok
[INFO] [stdout] test player::tests::a_new_player_starts_at_level_one_with_a_wooden_pickaxe ... ok
[INFO] [stdout] test player::tests::a_player_the_rules_built_is_valid ... ok
[INFO] [stdout] test player::tests::a_prestige_banks_the_rank_and_throws_the_rest_away ... ok
[INFO] [stdout] test player::tests::a_swing_can_cross_a_level_and_says_so ... ok
[INFO] [stdout] test player::tests::a_swing_grants_the_sum_of_every_block_it_broke ... ok
[INFO] [stdout] test player::tests::add_experience_reports_the_levels_it_bought ... ok
[INFO] [stdout] test player::tests::an_enchant_above_its_cap_is_refused ... ok
[INFO] [stdout] test player::tests::an_unprestiged_player_earns_the_raw_xp_value ... ok
[INFO] [stdout] test player::tests::banked_experience_never_covers_another_level ... ok
[INFO] [stdout] test player::tests::banked_experience_past_the_next_level_is_refused ... ok
[INFO] [stdout] test player::tests::breaking_nothing_grants_nothing ... ok
[INFO] [stdout] test player::tests::breaking_one_block_grants_exactly_its_xp_value ... ok
[INFO] [stdout] test player::tests::default_is_the_same_as_new ... ok
[INFO] [stdout] test player::tests::everything_up_to_the_furthest_world_is_unlocked_and_nothing_past_it ... ok
[INFO] [stdout] test player::tests::exactly_enough_experience_levels_up_and_banks_nothing ... ok
[INFO] [stdout] test player::tests::experience_at_the_cap_is_dropped_rather_than_banked ... ok
[INFO] [stdout] test player::tests::experience_short_of_the_threshold_is_only_banked ... ok
[INFO] [stdout] test player::tests::a_prestige_shuts_every_world_the_level_had_opened ... ok
[INFO] [stdout] test player::tests::a_rank_scales_the_experience_a_swing_is_worth ... ok
[INFO] [stdout] test player::tests::levelling_up_is_what_raises_the_enchant_ceiling ... ok
[INFO] [stdout] test player::tests::granting_no_experience_changes_nothing ... ok
[INFO] [stdout] test player::tests::many_small_grants_match_one_large_grant ... ok
[INFO] [stdout] test player::tests::piecemeal_and_lump_grants_agree_across_the_cap ... ok
[INFO] [stdout] test player::tests::ranks_accumulate_across_prestiges ... ok
[INFO] [stdout] test player::tests::surplus_experience_carries_over_instead_of_being_lost ... ok
[INFO] [stdout] test player::tests::the_last_level_before_the_cap_still_has_a_price ... ok
[INFO] [stdout] test player::tests::the_level_cost_grows_by_a_hundred_per_level ... ok
[INFO] [stdout] test player::tests::the_level_stops_at_the_cap ... ok
[INFO] [stdout] test player::tests::the_schedule_agrees_with_the_running_curve ... ok
[INFO] [stdout] test player::tests::the_worlds_open_one_after_the_other_as_the_level_climbs ... ok
[INFO] [stdout] test prestige::tests::a_carried_remainder_pays_the_eleventh_ore ... ok
[INFO] [stdout] test prestige::tests::a_long_run_of_calls_stays_within_one_of_the_exact_product ... ok
[INFO] [stdout] test prestige::tests::a_rank_costs_one_climb_plus_a_surcharge_that_grows_in_a_straight_line ... ok
[INFO] [stdout] test prestige::tests::an_absurd_rank_saturates_instead_of_wrapping ... ok
[INFO] [stdout] test prestige::tests::an_enormous_yield_saturates_instead_of_overflowing ... ok
[INFO] [stdout] test prestige::tests::each_rank_adds_its_share_and_never_compounds ... ok
[INFO] [stdout] test prestige::tests::no_rank_is_paid_for_by_the_climb_alone ... ok
[INFO] [stdout] test prestige::tests::rank_zero_multiplies_by_exactly_one ... ok
[INFO] [stdout] test player::tests::fortune_does_not_touch_the_experience_a_block_grants ... ok
[INFO] [stdout] test prestige::tests::rank_zero_pays_the_yield_back_unchanged ... ok
[INFO] [stdout] test player::tests::one_large_grant_cascades_through_several_levels ... ok
[INFO] [stdout] test prestige::tests::the_prestige_ladder_only_climbs ... ok
[INFO] [stdout] test prestige::tests::the_gate_opens_only_for_a_fully_realised_run ... ok
[INFO] [stdout] test prestige::tests::the_third_rank_costs_what_the_ui_mock_quotes ... ok
[INFO] [stdout] test prestige::tests::the_ui_preview_quotes_the_multipliers_this_module_computes ... ok
[INFO] [stdout] test reward::tests::a_bundle_quotes_its_levels_fuel_band ... ok
[INFO] [stdout] test reward::tests::a_world_level_keeps_its_charge_and_loses_its_emerald ... ok
[INFO] [stdout] test reward::tests::a_full_run_pays_what_the_ledger_says ... ok
[INFO] [stdout] test prestige::tests::the_gates_bite_at_their_exact_boundaries ... ok
[INFO] [stdout] test reward::tests::a_world_with_no_levels_of_its_own_answers_its_first_rung ... ok
[INFO] [stdout] test reward::tests::boost_charges_land_ten_times_in_a_run ... ok
[INFO] [stdout] test reward::tests::every_level_between_the_ends_rewards_something ... ok
[INFO] [stdout] test reward::tests::no_bundle_ever_names_a_material_twice ... ok
[INFO] [stdout] test reward::tests::every_bundle_is_credited_in_raw_only ... ok
[INFO] [stdout] test reward::tests::the_end_pays_two_lines_on_the_rare_ramp ... ok
[INFO] [stdout] test reward::tests::the_fuel_band_answers_for_every_world ... ok
[INFO] [stdout] test reward::tests::the_two_ends_of_the_ladder_reward_nothing ... ok
[INFO] [stdout] test reward::tests::the_two_world_levels_pay_a_world_and_no_ore ... ok
[INFO] [stdout] test rng::tests::a_serialised_generator_is_not_a_fresh_one ... ok
[INFO] [stdout] test rng::tests::a_serialised_generator_resumes_the_sequence ... ok
[INFO] [stdout] test rng::tests::a_zero_permille_never_fires_and_a_full_thousand_always_does ... ok
[INFO] [stdout] test rng::tests::a_zero_weight_never_comes_up ... ok
[INFO] [stdout] test reward::tests::the_band_boundaries_fall_where_the_table_says ... ok
[INFO] [stdout] test reward::tests::emerald_rides_every_third_level_and_adds_to_the_budget ... ok
[INFO] [stdout] test rng::tests::below_spreads_its_draws_evenly ... ok
[INFO] [stdout] test rng::tests::certain_and_impossible_chances_need_no_luck ... ok
[INFO] [stdout] test rng::tests::different_seeds_draw_different_sequences ... ok
[INFO] [stdout] test rng::tests::out_of_range_chances_clamp_to_certainty_or_impossibility ... ok
[INFO] [stdout] test rng::tests::below_stays_inside_its_bound ... ok
[INFO] [stdout] test rng::tests::restoring_the_position_resumes_the_sequence ... ok
[INFO] [stdout] test rng::tests::the_sequence_is_pinned_to_a_golden_vector ... ok
[INFO] [stdout] test rng::tests::the_same_seed_replays_the_same_sequence ... ok
[INFO] [stdout] test rng::tests::weights_that_describe_no_distribution_draw_nothing ... ok
[INFO] [stdout] test save::tests::a_damaged_file_and_an_impossible_run_are_told_apart ... ok
[INFO] [stdout] test rng::tests::chance_permille_fires_about_as_often_as_it_promises ... ok
[INFO] [stdout] test save::tests::a_document_missing_part_of_the_run_is_refused ... ok
[INFO] [stdout] test game::tests::a_seeded_reference_run_reaches_a_known_state ... ok
[INFO] [stdout] test save::tests::a_document_that_is_not_json_is_refused ... ok
[INFO] [stdout] test save::tests::a_reloaded_save_ticks_like_the_run_it_came_from ... ok
[INFO] [stdout] test save::tests::a_document_without_a_version_is_refused ... ok
[INFO] [stdout] test save::tests::a_run_the_rules_could_not_have_produced_is_refused ... ok
[INFO] [stdout] test save::tests::a_run_and_its_preferences_survive_the_round_trip ... ok
[INFO] [stdout] test save::tests::a_save_from_a_newer_build_is_refused_by_name ... ok
[INFO] [stdout] test save::tests::a_version_behind_the_first_schema_is_refused ... ok
[INFO] [stdout] test save::tests::a_version_one_save_keeps_the_ore_the_counter_cannot_account_for ... ok
[INFO] [stdout] test save::tests::a_version_one_save_with_a_boost_running_walks_both_steps ... ok
[INFO] [stdout] test save::tests::a_version_below_the_first_schema_is_refused ... ok
[INFO] [stdout] test save::tests::a_version_too_large_to_name_is_still_from_the_future ... ok
[INFO] [stdout] test save::tests::a_version_two_save_with_a_boost_running_still_loads ... ok
[INFO] [stdout] test rng::tests::weighted_draws_in_proportion_to_the_weights ... ok
[INFO] [stdout] test save::tests::the_mines_left_behind_are_saved_too ... ok
[INFO] [stdout] test save::tests::the_configuration_crosses_unchanged ... ok
[INFO] [stdout] test save::tests::the_same_boost_in_a_current_save_is_refused ... ok
[INFO] [stdout] test save::tests::the_version_is_written_inside_the_document ... ok
[INFO] [stdout] test save::tests::the_same_ore_in_a_current_save_is_refused ... ok
[INFO] [stdout] test tunables::tests::a_boost_is_faster_than_no_boost_and_lasts_a_while ... ok
[INFO] [stdout] test save::tests::the_written_shape_is_pinned ... ok
[INFO] [stdout] test save::tests::every_refusal_says_something ... ok
[INFO] [stdout] test save::tests::the_wrapped_errors_render_and_expose_their_source ... ok
[INFO] [stdout] test tunables::tests::a_level_of_haste_is_always_worth_buying ... ok
[INFO] [stdout] test tunables::tests::every_cost_curve_actually_grows ... ok
[INFO] [stdout] test tunables::tests::a_prestige_rank_is_always_worth_buying ... ok
[INFO] [stdout] test tunables::tests::the_auto_miner_produces_something_and_less_than_a_swing ... ok
[INFO] [stdout] test tunables::tests::the_enchant_ladder_trades_slope_for_base ... ok
[INFO] [stdout] test tunables::tests::the_offline_cap_is_positive ... ok
[INFO] [stdout] test tunables::tests::the_size_track_is_the_steepest ... ok
[INFO] [stdout] test tunables::tests::the_surcharge_keeps_pace_with_the_multiplier_it_is_priced_against ... ok
[INFO] [stdout] test tunables::tests::world_unlocks_are_ordered_and_within_the_cap ... ok
[INFO] [stdout] test upgrade::tests::a_bottomless_purse_reaches_the_top_of_the_ladder ... ok
[INFO] [stdout] test upgrade::tests::a_chain_payable_step_by_step_is_refused_by_the_sum_of_its_prices ... ok
[INFO] [stdout] test upgrade::tests::a_chain_that_climbs_back_past_the_jump_is_not_a_dip ... ok
[INFO] [stdout] test upgrade::tests::a_dip_names_the_first_rung_that_earns_the_power_back ... ok
[INFO] [stdout] test upgrade::tests::a_fresh_pickaxe_stands_on_the_first_rung ... ok
[INFO] [stdout] test upgrade::tests::a_preview_is_the_same_whatever_the_player_can_pay ... ok
[INFO] [stdout] test upgrade::tests::a_purse_of_the_wrong_denomination_asks_to_be_converted ... ok
[INFO] [stdout] test upgrade::tests::an_efficiency_step_gains_power_and_is_not_a_dip ... ok
[INFO] [stdout] test upgrade::tests::an_empty_inventory_cannot_afford_the_first_step ... ok
[INFO] [stdout] test upgrade::tests::an_empty_purse_buys_max_nothing ... ok
[INFO] [stdout] test upgrade::tests::each_rung_is_exactly_one_purchase_past_the_last ... ok
[INFO] [stdout] test upgrade::tests::every_rung_reports_the_index_it_sits_at ... ok
[INFO] [stdout] test upgrade::tests::previewing_off_either_end_of_the_ladder_previews_standing_still_or_the_top ... ok
[INFO] [stdout] test tunables::tests::the_reward_cadences_can_be_divided_by ... ok
[INFO] [stdout] test tunables::tests::the_compression_ratio_is_meaningful ... ok
[INFO] [stdout] test upgrade::tests::a_chain_of_no_purchases_is_always_affordable ... ok
[INFO] [stdout] test upgrade::tests::the_jump_to_netherite_costs_a_maxed_diamond_pickaxe_its_power ... ok
[INFO] [stdout] test upgrade::tests::the_ladder_holds_every_tier_and_every_level_of_each ... ok
[INFO] [stdout] test upgrade::tests::the_ladder_starts_bare_and_ends_maxed ... ok
[INFO] [stdout] test upgrade::tests::the_tier_jumps_are_the_priced_rungs_at_efficiency_zero ... ok
[INFO] [stdout] test world::tests::a_world_lists_every_material_its_own_blocks_drop ... ok
[INFO] [stdout] test world::tests::each_world_prices_its_specials_in_a_material_it_produces ... ok
[INFO] [stdout] test world::tests::every_enchant_level_is_priced_by_the_world_whose_band_it_falls_in ... ok
[INFO] [stdout] test world::tests::every_world_has_blocks_to_mine ... ok
[INFO] [stdout] test world::tests::starting_in_the_overworld_is_not_a_world_unlock ... ok
[INFO] [stdout] test world::tests::the_gate_and_the_crossing_agree_at_every_level ... ok
[INFO] [stdout] test world::tests::a_world_opens_on_its_threshold_and_not_a_level_before ... ok
[INFO] [stdout] test world::tests::each_block_is_listed_by_exactly_the_world_it_claims ... ok
[INFO] [stdout] test world::tests::worlds_have_display_names ... ok
[INFO] [stdout] test upgrade::tests::the_affordable_region_is_a_contiguous_prefix ... ok
[INFO] [stdout] test world::tests::the_world_material_relation_agrees_in_both_directions ... ok
[INFO] [stdout] test world::tests::unlock_levels_climb_with_the_world_and_stay_within_the_cap ... ok
[INFO] [stdout] test game::tests::the_first_prestige_lands_inside_the_pacing_window ... ok
[INFO] [stdout] test game::tests::the_prestige_loop_settles_instead_of_walling ... ok
[INFO] [stdout] test game::tests::the_completionist_ceiling_stays_inside_its_window ... ok
[INFO] [stdout] test game::tests::one_climb_still_banks_about_what_the_price_is_aimed_at ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 550 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 8.33s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests skylode_core
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/player.rs - player::Player::prestige_reset (line 444) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.36s; merged doctests compilation took 0.35s
[INFO] running `Command { std: "docker" "inspect" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c", kill_on_drop: false }`
[INFO] [stdout] a58bf387aea4a7b787ac4e184a9f6719f2b31beddc7eb12598a0f0218c8c7d2c
