[INFO] cloning repository https://github.com/SolverForge/solverforge [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SolverForge/solverforge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSolverForge%2Fsolverforge", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSolverForge%2Fsolverforge'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 64b9e0f6523717e75a0bad7bbf9a327f69b0e27f [INFO] testing SolverForge/solverforge against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSolverForge%2Fsolverforge" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc2/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/SolverForge/solverforge [INFO] finished tweaking git repo https://github.com/SolverForge/solverforge [INFO] tweaked toml for git repo https://github.com/SolverForge/solverforge written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/SolverForge/solverforge on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/SolverForge/solverforge 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 04e6db47e617a8d1ed8ccf5123378b9a82c8d6cdfb223892aacb9c5d0b583840 [INFO] running `Command { std: "docker" "start" "-a" "04e6db47e617a8d1ed8ccf5123378b9a82c8d6cdfb223892aacb9c5d0b583840", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "04e6db47e617a8d1ed8ccf5123378b9a82c8d6cdfb223892aacb9c5d0b583840", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "04e6db47e617a8d1ed8ccf5123378b9a82c8d6cdfb223892aacb9c5d0b583840", kill_on_drop: false }` [INFO] [stdout] 04e6db47e617a8d1ed8ccf5123378b9a82c8d6cdfb223892aacb9c5d0b583840 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1542aea2717f4a4874a088e348aa331c18b2af35bff4b321b05cf06a6bcdf235 [INFO] running `Command { std: "docker" "start" "-a" "1542aea2717f4a4874a088e348aa331c18b2af35bff4b321b05cf06a6bcdf235", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling winnow v1.0.1 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling owo-colors v4.3.0 [INFO] [stderr] Compiling num-format v0.4.4 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling solverforge-macros v0.9.0 (/opt/rustwide/workdir/crates/solverforge-macros) [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rand_chacha v0.10.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling solverforge-core v0.9.0 (/opt/rustwide/workdir/crates/solverforge-core) [INFO] [stderr] Compiling solverforge-scoring v0.9.0 (/opt/rustwide/workdir/crates/solverforge-scoring) [INFO] [stderr] Compiling solverforge-test v0.9.0 (/opt/rustwide/workdir/crates/solverforge-test) [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling solverforge-console v0.9.0 (/opt/rustwide/workdir/crates/solverforge-console) [INFO] [stderr] Compiling solverforge-config v0.9.0 (/opt/rustwide/workdir/crates/solverforge-config) [INFO] [stderr] Compiling solverforge-solver v0.9.0 (/opt/rustwide/workdir/crates/solverforge-solver) [INFO] [stderr] Compiling solverforge-cvrp v0.9.0 (/opt/rustwide/workdir/crates/solverforge-cvrp) [INFO] [stderr] Compiling solverforge v0.9.0 (/opt/rustwide/workdir/crates/solverforge) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.13s [INFO] running `Command { std: "docker" "inspect" "1542aea2717f4a4874a088e348aa331c18b2af35bff4b321b05cf06a6bcdf235", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1542aea2717f4a4874a088e348aa331c18b2af35bff4b321b05cf06a6bcdf235", kill_on_drop: false }` [INFO] [stdout] 1542aea2717f4a4874a088e348aa331c18b2af35bff4b321b05cf06a6bcdf235 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ea6f305a224059da3724bce842c0667203727e67fc45b65382a3bc31908773e7 [INFO] running `Command { std: "docker" "start" "-a" "ea6f305a224059da3724bce842c0667203727e67fc45b65382a3bc31908773e7", 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.45 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling target-triple v1.0.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling solverforge-macros v0.9.0 (/opt/rustwide/workdir/crates/solverforge-macros) [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling solverforge-core v0.9.0 (/opt/rustwide/workdir/crates/solverforge-core) [INFO] [stderr] Compiling solverforge-scoring v0.9.0 (/opt/rustwide/workdir/crates/solverforge-scoring) [INFO] [stderr] Compiling solverforge-test v0.9.0 (/opt/rustwide/workdir/crates/solverforge-test) [INFO] [stderr] Compiling solverforge-console v0.9.0 (/opt/rustwide/workdir/crates/solverforge-console) [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling trybuild v1.0.116 [INFO] [stderr] Compiling solverforge-config v0.9.0 (/opt/rustwide/workdir/crates/solverforge-config) [INFO] [stderr] Compiling solverforge-solver v0.9.0 (/opt/rustwide/workdir/crates/solverforge-solver) [INFO] [stderr] Compiling solverforge-cvrp v0.9.0 (/opt/rustwide/workdir/crates/solverforge-cvrp) [INFO] [stderr] Compiling solverforge v0.9.0 (/opt/rustwide/workdir/crates/solverforge) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 06s [INFO] running `Command { std: "docker" "inspect" "ea6f305a224059da3724bce842c0667203727e67fc45b65382a3bc31908773e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ea6f305a224059da3724bce842c0667203727e67fc45b65382a3bc31908773e7", kill_on_drop: false }` [INFO] [stdout] ea6f305a224059da3724bce842c0667203727e67fc45b65382a3bc31908773e7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] e14a237b662bc6a996dedd2d7f1579e53de0044a509f633f32f7951007a2b57d [INFO] running `Command { std: "docker" "start" "-a" "e14a237b662bc6a996dedd2d7f1579e53de0044a509f633f32f7951007a2b57d", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge-1a44300ca1f6a6f4) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/configurable_solvable.rs (/opt/rustwide/target/debug/deps/configurable_solvable-385ecfb6d330344b) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test planning_solution_solver_toml_path_compiles_and_runs_for_list_only_solutions ... ok [INFO] [stdout] test planning_solution_solver_toml_path_is_independent_of_cwd ... ok [INFO] [stdout] test planning_solution_config_provider_decorates_solver_toml_for_retained_runtime_solves ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/constraint_accessors.rs (/opt/rustwide/target/debug/deps/constraint_accessors-6655887ac734f442) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test test_constraint_stream_accessors_compile ... ok [INFO] [stdout] test test_one_hard_returns_correct_score ... ok [INFO] [stdout] test test_one_soft_returns_correct_score ... ok [INFO] [stdout] test test_soft_score_one_soft ... ok [INFO] [stdout] test test_named_alias_compiles ... ok [INFO] [stdout] test test_penalize_hard_compiles_on_stream ... ok [INFO] [stdout] test test_penalize_soft_compiles_on_stream ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Running tests/derive_macros.rs (/opt/rustwide/target/debug/deps/derive_macros-89edbfd1b26999d1) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test test_list_helpers_work_for_aliased_single_owner_types ... ok [INFO] [stdout] test test_field_only_list_solution_preserves_list_descriptor_metadata ... ok [INFO] [stdout] test test_multi_owner_shadow_updates_are_descriptor_scoped ... ok [INFO] [stdout] test test_planning_entity_derives_correctly ... ok [INFO] [stdout] test test_planning_solution_derives_correctly ... ok [INFO] [stdout] test test_problem_fact_derives_correctly ... ok [INFO] [stdout] test test_single_owner_list_helpers_remain_available_when_unambiguous ... ok [INFO] [stdout] test test_solution_descriptor_preserves_entity_variable_metadata ... ok [INFO] [stdout] test test_multi_owner_list_helpers_are_owner_scoped ... ok [INFO] [stdout] test test_duplicate_short_names_do_not_confuse_list_helper_binding ... ok [INFO] [stdout] test test_multi_owner_generic_list_helpers_reject_ambiguous_calls ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running tests/list_clarke_wright_publication.rs (/opt/rustwide/target/debug/deps/list_clarke_wright_publication-ba85c8c66b6ba5c8) [INFO] [stdout] running 1 test [INFO] [stdout] test clarke_wright_publishes_constructed_solution_under_solver_manager ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/scalar_runtime_publication.rs (/opt/rustwide/target/debug/deps/scalar_runtime_publication-39b419bfb1860f0e) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test scalar_only_solution_runs_construction_in_retained_runtime ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/scalar_runtime_selector_assembly.rs (/opt/rustwide/target/debug/deps/scalar_runtime_selector_assembly-cc65557ae2b445a3) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test scalar_only_solution_builds_default_selector_without_failure ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 30.01s [INFO] [stdout] [INFO] [stderr] Running tests/solvable_runtime.rs (/opt/rustwide/target/debug/deps/solvable_runtime-a12b3412a8bddc4f) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test manual_solvable_impl_can_emit_public_runtime_events ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge_config-6c8a423c04b80dc2) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test tests::test_builder ... ok [INFO] [stdout] test tests::test_tagged_forager_variants_roundtrip ... ok [INFO] [stdout] test tests::test_limited_neighborhood_parsing ... ok [INFO] [stdout] test tests::test_new_scalar_selector_variants_and_cartesian_roundtrip ... ok [INFO] [stdout] test tests::test_target_and_vnd_parsing ... ok [INFO] [stdout] test tests::test_toml_parsing ... ok [INFO] [stdout] test tests::test_yaml_parsing ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge_console-c772edfa3e2c388b) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test format::tests::format_elapsed_duration_uses_exact_integer_units ... ok [INFO] [stdout] test format::tests::format_score_handles_hard_soft_and_simple_scores ... ok [INFO] [stdout] test format::tests::calculate_problem_scale_handles_zero_and_nonzero_inputs ... ok [INFO] [stdout] test format::tests::format_event_renders_phase_end_with_exact_duration_string ... ok [INFO] [stdout] test format::tests::format_event_renders_progress_and_trace_steps ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge_core-0d2e3d7b29b43eaf) [INFO] [stdout] test format::tests::format_event_renders_solve_start_and_end_summaries ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 111 tests [INFO] [stdout] test domain::descriptor::tests::entity_descriptor::test_entity_count ... ok [INFO] [stdout] test domain::descriptor::tests::entity_descriptor::test_for_each_entity ... ok [INFO] [stdout] test constraint_tests::test_constraint_ref_full_name ... ok [INFO] [stdout] test constraint_tests::test_constraint_ref_empty_package ... ok [INFO] [stdout] test constraint_tests::test_impact_type ... ok [INFO] [stdout] test domain::descriptor::tests::entity_descriptor::test_get_entity ... ok [INFO] [stdout] test domain::descriptor::tests::entity_descriptor::test_entity_refs ... ok [INFO] [stdout] test domain::descriptor::tests::entity_descriptor::test_with_extractor ... ok [INFO] [stdout] test domain::descriptor::tests::entity_descriptor::test_get_entity_mut ... ok [INFO] [stdout] test domain::descriptor::tests::entity_descriptor::test_no_extractor ... ok [INFO] [stdout] test domain::descriptor::tests::solution_descriptor::test_all_extractors_configured ... ok [INFO] [stdout] test domain::descriptor::tests::solution_descriptor::test_counts ... ok [INFO] [stdout] test domain::descriptor::tests::solution_descriptor::test_for_each_entity ... ok [INFO] [stdout] test domain::descriptor::tests::solution_descriptor::test_all_entity_refs ... ok [INFO] [stdout] test domain::descriptor::tests::solution_descriptor::test_total_entity_count ... ok [INFO] [stdout] test domain::descriptor::tests::variable_descriptor::test_chained ... ok [INFO] [stdout] test domain::descriptor::tests::variable_descriptor::test_genuine ... ok [INFO] [stdout] test domain::descriptor::tests::variable_descriptor::test_with_allows_unassigned ... ok [INFO] [stdout] test domain::descriptor::tests::variable_descriptor::test_with_value_range_type ... ok [INFO] [stdout] test domain::descriptor::tests::variable_descriptor::test_with_value_range ... ok [INFO] [stdout] test domain::listener::tests::test_requires_unique_entity_events_default ... ok [INFO] [stdout] test domain::descriptor::tests::variable_descriptor::test_list ... ok [INFO] [stdout] test domain::listener::tests::test_variable_listener_calls ... ok [INFO] [stdout] test domain::descriptor::tests::variable_descriptor::test_piggyback ... ok [INFO] [stdout] test domain::supply::tests::anchor_supply::test_remove ... ok [INFO] [stdout] test domain::supply::tests::anchor_supply::test_set_and_get ... ok [INFO] [stdout] test domain::supply::tests::anchor_supply::test_update_anchor ... ok [INFO] [stdout] test domain::supply::tests::anchor_supply::test_entities_for_anchor ... ok [INFO] [stdout] test domain::supply::tests::inverse_supply::test_iter ... ok [INFO] [stdout] test domain::supply::tests::inverse_supply::test_insert_and_get ... ok [INFO] [stdout] test domain::supply::tests::inverse_supply::test_overwrite ... ok [INFO] [stdout] test domain::supply::tests::inverse_supply::test_clear ... ok [INFO] [stdout] test domain::supply::tests::inverse_supply::test_remove ... ok [INFO] [stdout] test domain::descriptor::tests::solution_descriptor::test_get_entity ... ok [INFO] [stdout] test domain::supply::tests::anchor_supply::test_cascade ... ok [INFO] [stdout] test domain::supply::tests::list_state_supply::test_clear ... ok [INFO] [stdout] test domain::supply::tests::anchor_supply::test_clear ... ok [INFO] [stdout] test domain::supply::tests::list_state_supply::test_elements_for_entity ... ok [INFO] [stdout] test domain::supply::tests::list_state_supply::test_unassign ... ok [INFO] [stdout] test domain::supply::tests::list_state_supply::test_update ... ok [INFO] [stdout] test domain::tests::entity_ref_tests::test_clone_entity_boxed ... ok [INFO] [stdout] test domain::supply::tests::list_state_supply::test_is_assigned ... ok [INFO] [stdout] test domain::tests::entity_ref_tests::test_extractor_clone ... ok [INFO] [stdout] test domain::tests::entity_ref_tests::test_extractor_wrong_solution_type ... ok [INFO] [stdout] test domain::supply::tests::inverse_supply::test_update ... ok [INFO] [stdout] test domain::tests::entity_ref_tests::test_entity_type_id ... ok [INFO] [stdout] test domain::tests::entity_ref_tests::test_typed_entity_extractor_entity_refs ... ok [INFO] [stdout] test domain::supply::tests::list_state_supply::test_assign_and_get ... ok [INFO] [stdout] test domain::tests::entity_ref_tests::test_typed_entity_extractor_count ... ok [INFO] [stdout] test domain::tests::entity_ref_tests::test_typed_entity_extractor_get ... ok [INFO] [stdout] test domain::tests::entity_ref_tests::test_typed_entity_extractor_get_mut ... ok [INFO] [stdout] test domain::tests::value_range_tests::test_computed_value_range_type ... ok [INFO] [stdout] test domain::tests::value_range_tests::test_computed_value_range_provider ... ok [INFO] [stdout] test domain::tests::value_range_tests::test_field_value_range_provider ... ok [INFO] [stdout] test domain::tests::value_range_tests::test_integer_range_i32 ... ok [INFO] [stdout] test domain::tests::value_range_tests::test_static_value_range ... ok [INFO] [stdout] test domain::tests::value_range_tests::test_integer_range ... ok [INFO] [stdout] test domain::tests::variable_tests::test_chained_variable_info_new ... ok [INFO] [stdout] test domain::tests::variable_tests::test_chained_variable_info_with_anchor_shadow ... ok [INFO] [stdout] test domain::tests::variable_tests::test_chained_variable_info_type_checks ... ok [INFO] [stdout] test domain::tests::variable_tests::test_shadow_variable_kind_is_automatic ... ok [INFO] [stdout] test domain::tests::variable_tests::test_shadow_variable_kind_is_piggyback ... ok [INFO] [stdout] test domain::tests::variable_tests::test_shadow_variable_kind_requires_listener ... ok [INFO] [stdout] test domain::tests::variable_tests::test_variable_type_is_basic ... ok [INFO] [stdout] test domain::tests::value_range_tests::test_integer_range_value_range_type ... ok [INFO] [stdout] test domain::tests::variable_tests::test_variable_type_is_genuine ... ok [INFO] [stdout] test domain::tests::variable_tests::test_variable_type_is_chained ... ok [INFO] [stdout] test domain::tests::variable_tests::test_variable_type_is_list ... ok [INFO] [stdout] test score::tests::bendable_score::test_arithmetic ... ok [INFO] [stdout] test domain::tests::variable_tests::test_variable_type_is_shadow ... ok [INFO] [stdout] test score::tests::bendable_score::test_comparison ... ok [INFO] [stdout] test score::tests::bendable_score::test_copy ... ok [INFO] [stdout] test score::tests::bendable_score::test_creation ... ok [INFO] [stdout] test score::tests::bendable_score::test_feasibility ... ok [INFO] [stdout] test score::tests::hard_medium_soft_score::test_arithmetic ... ok [INFO] [stdout] test score::tests::bendable_score::test_level_label ... ok [INFO] [stdout] test score::tests::hard_medium_soft_score::test_comparison ... ok [INFO] [stdout] test score::tests::hard_medium_soft_score::test_display ... ok [INFO] [stdout] test score::tests::hard_medium_soft_score::test_level_label ... ok [INFO] [stdout] test score::tests::hard_medium_soft_score::test_feasibility ... ok [INFO] [stdout] test score::tests::hard_medium_soft_score::test_creation ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_arithmetic ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_arithmetic_scaled ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_comparison ... ok [INFO] [stdout] test score::tests::hard_medium_soft_score::test_parse ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_creation_unscaled ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_display ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_display_integer ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_display_zero ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_feasibility ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_creation_scaled ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_level_label ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_parse_decimal ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_parse_integer ... ok [INFO] [stdout] test score::tests::hard_soft_score::test_comparison ... ok [INFO] [stdout] test score::tests::hard_soft_score::test_creation ... ok [INFO] [stdout] test score::tests::hard_soft_score::test_arithmetic ... ok [INFO] [stdout] test score::tests::hard_soft_score::test_display ... ok [INFO] [stdout] test score::tests::hard_soft_decimal_score::test_level_numbers ... ok [INFO] [stdout] test score::tests::hard_soft_score::test_level_numbers ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge_cvrp-78c9f0d6220d1f3c) [INFO] [stdout] test score::tests::hard_soft_score::test_level_label ... ok [INFO] [stdout] test score::tests::hard_soft_score::test_parse ... ok [INFO] [stdout] test score::tests::hard_soft_score::test_feasibility ... ok [INFO] [stdout] test score::tests::soft_score::test_feasibility ... ok [INFO] [stdout] test score::tests::soft_score::test_multiply_divide ... ok [INFO] [stdout] test score::tests::soft_score::test_arithmetic ... ok [INFO] [stdout] test score::tests::soft_score::test_parse ... ok [INFO] [stdout] test score::tests::soft_score::test_comparison ... ok [INFO] [stdout] test score::tests::soft_score::test_level_label ... ok [INFO] [stdout] test score::tests::soft_score::test_creation ... ok [INFO] [stdout] test score::tests::soft_score::test_level_numbers ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 111 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test tests::distance_meters_cover_invalid_positions ... ok [INFO] [stdout] test tests::helpers_handle_empty_fleets ... ok [INFO] [stdout] test tests::route_helpers_replace_and_clone_routes ... ok [INFO] [stdout] test tests::time_feasibility_checks_waiting_and_deadlines ... ok [INFO] [stdout] test tests::helpers_use_problem_data_from_first_vehicle ... ok [INFO] [stdout] test tests::helpers_reject_missing_problem_data_for_non_empty_fleets - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge_macros-d68012295e6327c5) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test planning_solution::tests::golden_solution_expansion_loads_solver_config_before_config_callback ... ok [INFO] [stdout] test planning_solution::tests::golden_solution_expansion_embeds_explicit_solver_toml_source ... ok [INFO] [stdout] test planning_entity::tests::entity_descriptor_preserves_mixed_variable_declaration_order ... ok [INFO] [stdout] test planning_solution::tests::golden_solution_expansion_emits_constraint_streams_and_descriptor ... ok [INFO] [stdout] test planning_solution::tests::golden_solution_expansion_sorts_runtime_variables_by_descriptor_order ... ok [INFO] [stdout] test planning_entity::tests::golden_entity_expansion_includes_descriptor_and_planning_id ... ok [INFO] [stdout] test planning_solution::tests::golden_solution_expansion_binds_owner_specific_list_helpers ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/trybuild.rs (/opt/rustwide/target/debug/deps/trybuild-6b4bcc586378485e) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling winnow v1.0.1 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.10.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling solverforge-macros v0.9.0 (/opt/rustwide/workdir/crates/solverforge-macros) [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling solverforge-core v0.9.0 (/opt/rustwide/workdir/crates/solverforge-core) [INFO] [stderr] Compiling solverforge-scoring v0.9.0 (/opt/rustwide/workdir/crates/solverforge-scoring) [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling solverforge-config v0.9.0 (/opt/rustwide/workdir/crates/solverforge-config) [INFO] [stderr] Compiling solverforge-solver v0.9.0 (/opt/rustwide/workdir/crates/solverforge-solver) [INFO] [stderr] Compiling solverforge-cvrp v0.9.0 (/opt/rustwide/workdir/crates/solverforge-cvrp) [INFO] [stderr] Compiling solverforge v0.9.0 (/opt/rustwide/workdir/crates/solverforge) [INFO] [stderr] Compiling solverforge-macros-tests v0.0.0 (/opt/rustwide/target/tests/trybuild/solverforge-macros) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.47s [INFO] [stderr] [INFO] [stderr] [INFO] [stdout] test macros_compile_and_fail_as_expected has been running for over 60 seconds [INFO] [stderr] test tests/ui/pass/basic_macros.rs [should pass] ... ok [INFO] [stderr] test tests/ui/pass/field_only_solution.rs [should pass] ... ok [INFO] [stderr] test tests/ui/pass/list_alias_owner.rs [should pass] ... ok [INFO] [stderr] test tests/ui/pass/list_multi_module.rs [should pass] ... ok [INFO] [stderr] test tests/ui/pass/mixed_solution.rs [should pass] ... ok [INFO] [stderr] test tests/ui/pass/multi_list_owner_shadows.rs [should pass] ... ok [INFO] [stderr] test tests/ui/pass/multi_list_owners.rs [should pass] ... ok [INFO] [stderr] test tests/ui/pass/scalar_multi_module.rs [should pass] ... ok [INFO] [stderr] test tests/ui/pass/standard_solution.rs [should pass] ... ok [INFO] [stderr] test tests/ui/fail/planning_entity_tuple_struct.rs [should fail to compile] ... ok [INFO] [stderr] test tests/ui/fail/planning_solution_missing_list_element_collection.rs [should fail to compile] ... ok [INFO] [stdout] test macros_compile_and_fail_as_expected ... ok [INFO] [stderr] test tests/ui/fail/planning_solution_missing_score.rs [should fail to compile] ... ok [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 73.55s [INFO] [stderr] [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge_scoring-4b9795e05d41b5b5) [INFO] [stdout] [INFO] [stdout] running 108 tests [INFO] [stdout] test api::constraint_set::tests::constraint_set::test_empty_constraint_set ... ok [INFO] [stdout] test api::constraint_set::tests::constraint_set::test_incremental_retract ... ok [INFO] [stdout] test api::constraint_set::tests::constraint_set::test_single_constraint ... ok [INFO] [stdout] test api::tests::analysis::test_detailed_evaluation ... ok [INFO] [stdout] test api::tests::analysis::test_constraint_justification ... ok [INFO] [stdout] test api::constraint_set::tests::constraint_set::test_sixteen_constraints ... ok [INFO] [stdout] test api::tests::analysis::test_entity_ref_downcast ... ok [INFO] [stdout] test api::tests::analysis::test_entity_ref_equality ... ok [INFO] [stdout] test api::tests::analysis::test_score_explanation ... ok [INFO] [stdout] test api::tests::analysis::test_entity_ref_creation ... ok [INFO] [stdout] test api::constraint_set::tests::constraint_set::test_incremental_insert ... ok [INFO] [stdout] test api::constraint_set::tests::constraint_set::test_two_constraints ... ok [INFO] [stdout] test api::tests::weight_overrides::test_new_is_empty ... ok [INFO] [stdout] test api::tests::weight_overrides::test_get_or_default_without_override ... ok [INFO] [stdout] test constraint::tests::balance::test_balance_empty_solution ... ok [INFO] [stdout] test constraint::tests::balance::test_balance_evaluate_equal_distribution ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_evaluate_with_conflicts ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_evaluate_no_conflicts ... ok [INFO] [stdout] test constraint::tests::balance::test_balance_single_employee ... ok [INFO] [stdout] test api::tests::weight_overrides::test_from_pairs ... ok [INFO] [stdout] test constraint::tests::balance::test_balance_incremental ... ok [INFO] [stdout] test api::tests::analysis::test_indictment_map ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_incremental_insert ... ok [INFO] [stdout] test api::tests::weight_overrides::test_remove ... ok [INFO] [stdout] test api::tests::weight_overrides::test_put_and_get ... ok [INFO] [stdout] test api::tests::weight_overrides::test_get_or_default_with_override ... ok [INFO] [stdout] test api::tests::weight_overrides::test_arc_weight_provider ... ok [INFO] [stdout] test constraint::tests::balance::test_balance_filters_unassigned ... ok [INFO] [stdout] test constraint::tests::balance::test_balance_reward ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_dynamic_weight ... ok [INFO] [stdout] test constraint::tests::balance::test_balance_evaluate_unequal_distribution ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_multiple_conflicts ... ok [INFO] [stdout] test api::tests::weight_overrides::test_weight_provider_trait ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_incremental_retract ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_out_of_bounds ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_reset ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_reward_type ... ok [INFO] [stdout] test constraint::tests::complemented::test_complemented_evaluate ... ok [INFO] [stdout] test constraint::tests::complemented::test_complemented_incremental ... ok [INFO] [stdout] test constraint::tests::complemented::test_complemented_incremental_matches_evaluate ... ok [INFO] [stdout] test constraint::tests::complemented::test_complemented_skips_none_keys ... ok [INFO] [stdout] test constraint::tests::complemented::test_complemented_incremental_with_none_keys ... ok [INFO] [stdout] test constraint::tests::complemented::test_complemented_with_default ... ok [INFO] [stdout] test constraint::tests::cross_bi_incr::test_cross_bi_evaluate_works_without_initialize ... ok [INFO] [stdout] test constraint::tests::cross_bi_incr::test_cross_bi_get_matches_works_without_initialize ... ok [INFO] [stdout] test constraint::tests::cross_bi_incr::test_cross_bi_incremental_updates_still_work ... ok [INFO] [stdout] test constraint::tests::cross_bi_incr::test_cross_bi_match_count_works_without_initialize ... ok [INFO] [stdout] test constraint::tests::exists::test_exists_same_source_updates_consistently ... ok [INFO] [stdout] test constraint::tests::exists::test_exists_updates_all_matching_a_entities_when_b_descriptor_changes ... ok [INFO] [stdout] test constraint::tests::exists::test_flattened_not_exists_updates_all_matching_a_entities_when_route_changes ... ok [INFO] [stdout] test constraint::tests::flattened_bi::test_evaluate_no_match ... ok [INFO] [stdout] test constraint::tests::flattened_bi::test_evaluate_single_match ... ok [INFO] [stdout] test constraint::tests::bi_incr::test_in_constraint_set ... ok [INFO] [stdout] test constraint::tests::flattened_bi::test_incremental ... ok [INFO] [stdout] test constraint::tests::flattened_bi::test_unassigned_shift ... ok [INFO] [stdout] test constraint::tests::grouped::test_grouped_constraint_incremental ... ok [INFO] [stdout] test constraint::tests::grouped::test_grouped_constraint_evaluate ... ok [INFO] [stdout] test constraint::tests::penta_incr::test_penta_constraint_evaluate ... ok [INFO] [stdout] test constraint::tests::grouped::test_grouped_constraint_reward ... ok [INFO] [stdout] test constraint::tests::penta_incr::test_penta_constraint_incremental ... ok [INFO] [stdout] test constraint::tests::quad_incr::test_quad_constraint_multiple_quads ... ok [INFO] [stdout] test constraint::tests::quad_incr::test_quad_constraint_incremental ... ok [INFO] [stdout] test constraint::tests::quad_incr::test_quad_constraint_reward ... ok [INFO] [stdout] test constraint::tests::tri_incr::test_tri_constraint_evaluate ... ok [INFO] [stdout] test constraint::tests::tri_incr::test_tri_constraint_multiple_triples ... ok [INFO] [stdout] test constraint::tests::tri_incr::test_tri_constraint_reward ... ok [INFO] [stdout] test constraint::tests::tri_incr::test_tri_constraint_incremental ... ok [INFO] [stdout] test constraint::tests::penta_incr::test_penta_constraint_multiple_pentas ... ok [INFO] [stdout] test director::tests::recording::test_recording_calculate_score ... ok [INFO] [stdout] test constraint::tests::quad_incr::test_quad_constraint_evaluate ... ok [INFO] [stdout] test director::tests::recording::test_recording_entity_count ... ok [INFO] [stdout] test constraint::tests::penta_incr::test_penta_constraint_reward ... ok [INFO] [stdout] test director::tests::recording::test_recording_is_incremental ... ok [INFO] [stdout] test director::tests::recording::test_recording_multiple_undo ... ok [INFO] [stdout] test director::tests::recording::test_recording_undo_none_to_some ... ok [INFO] [stdout] test director::tests::recording::test_recording_reset ... ok [INFO] [stdout] test director::tests::recording::test_recording_undo_same_entity_twice ... ok [INFO] [stdout] test director::tests::recording::test_recording_undo_some_to_none ... ok [INFO] [stdout] test director::tests::score_director::test_before_change_without_initialization ... ok [INFO] [stdout] test director::tests::recording::test_recording_undo_restores_committed_cached_score_state ... ok [INFO] [stdout] test director::tests::recording::test_recording_register_undo ... ok [INFO] [stdout] test director::tests::score_director::test_cached_score_on_subsequent_calls ... ok [INFO] [stdout] test director::tests::score_director::test_add_then_remove_value ... ok [INFO] [stdout] test director::tests::score_director::test_clone_working_solution ... ok [INFO] [stdout] test director::tests::score_director::test_do_change_convenience ... ok [INFO] [stdout] test director::tests::score_director::test_debug_impl ... ok [INFO] [stdout] test director::tests::score_director::test_multiple_constraints ... ok [INFO] [stdout] test director::tests::score_director::test_incremental_update ... ok [INFO] [stdout] test director::tests::score_director::test_reset ... ok [INFO] [stdout] test director::tests::score_director::test_constraint_count ... ok [INFO] [stdout] test director::tests::score_director::test_initial_score_calculation ... ok [INFO] [stdout] test director::tests::shadow::test_director_is_not_initialized_before_calculate ... ok [INFO] [stdout] test director::tests::shadow::test_shadow_update_called_on_variable_change ... ok [INFO] [stdout] test stream::collector::tests::collector::test_load_balance_standard_deviation ... ok [INFO] [stdout] test stream::collector::tests::collector::test_perfectly_balanced ... ok [INFO] [stdout] test stream::collector::tests::collector::test_retract ... ok [INFO] [stdout] test stream::collector::tests::collector::test_single_item ... ok [INFO] [stdout] test stream::filter::tests::filter::test_and_bi_filter ... ok [INFO] [stdout] test stream::filter::tests::filter::test_and_uni_filter ... ok [INFO] [stdout] test stream::collector::tests::collector::test_unbalanced ... ok [INFO] [stdout] test stream::filter::tests::filter::test_fn_uni_filter ... ok [INFO] [stdout] test stream::filter::tests::filter::test_fn_bi_filter ... ok [INFO] [stdout] test stream::filter::tests::filter::test_true_filter ... ok [INFO] [stdout] test director::tests::shadow::test_take_solution_after_use ... ok [INFO] [stdout] test stream::collector::tests::collector::test_empty ... ok [INFO] [stdout] test director::tests::bench::benchmarks::bench_incremental_moves ... ok [INFO] [stdout] test director::tests::bench::benchmarks::bench_full_recalc_moves ... ok [INFO] [stdout] test director::tests::bench::benchmarks::bench_compare_approaches ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 108 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.67s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge_solver-aef755ea6416904f) [INFO] [stdout] [INFO] [stdout] running 434 tests [INFO] [stdout] test builder::acceptor::tests::test_acceptor_builder_hill_climbing ... ok [INFO] [stdout] test builder::acceptor::tests::test_acceptor_builder_tabu_search ... ok [INFO] [stdout] test builder::acceptor::tests::test_acceptor_builder_late_acceptance ... ok [INFO] [stdout] test builder::acceptor::tests::test_acceptor_builder_simulated_annealing_accepts_fractional_scalar ... ok [INFO] [stdout] test builder::acceptor::tests::test_acceptor_builder_simulated_annealing ... ok [INFO] [stdout] test builder::scalar_selector::tests::builds_solution_count_scalar_selectors_without_descriptor_bindings ... ok [INFO] [stdout] test builder::scalar_selector::tests::filters_change_moves_against_entity_slice_candidates ... ok [INFO] [stdout] test builder::list_selector::tests::nearby_list_swap_uses_cross_entity_meter ... ok [INFO] [stdout] test builder::scalar_selector::tests::builds_nearby_change_selectors_when_meter_is_present ... ok [INFO] [stdout] test builder::scalar_selector::tests::pillar_change_uses_public_pillar_semantics ... ok [INFO] [stdout] test builder::list_selector::tests::public_list_builder_supports_cartesian_product ... ok [INFO] [stdout] test builder::scalar_selector::tests::pillar_swap_prunes_illegal_entity_slice_partners ... ok [INFO] [stdout] test builder::scalar_selector::tests::pillar_change_intersects_entity_slice_domains ... ok [INFO] [stdout] test builder::selector::tests::cartesian_mixed_selector_supports_limited_children ... ok [INFO] [stdout] test builder::acceptor::tests::test_acceptor_builder_tabu_search_normalizes_default_to_move_tabu ... ok [INFO] [stdout] test builder::selector::tests::default_list_and_mixed_local_search_use_list_streaming_defaults ... ok [INFO] [stdout] test builder::selector::tests::default_scalar_local_search_uses_scalar_streaming_defaults ... ok [INFO] [stdout] test builder::selector::tests::explicit_acceptor_and_forager_configs_override_defaults ... ok [INFO] [stdout] test builder::selector::tests::explicit_limited_neighborhood_remains_supported ... ok [INFO] [stdout] test builder::selector::tests::explicit_scalar_union_selector_remains_supported ... ok [INFO] [stdout] test builder::selector::tests::default_scalar_selector_uses_change_and_swap ... ok [INFO] [stdout] test builder::selector::tests::default_list_selector_uses_three_explicit_neighborhoods ... ok [INFO] [stdout] test builder::selector::tests::mixed_default_selector_puts_list_neighborhoods_before_scalar_defaults ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_change_selector_adds_to_none_for_assigned_optional_variables ... ok [INFO] [stdout] test builder::selector::tests::cartesian_scalar_selector_builds_composite_moves ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_cartesian_builds_composite_moves ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_manual_illegal_pillar_moves_are_not_doable ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_first_fit_optional_slot_keeps_none_when_baseline_is_not_beaten ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_best_fit_assigns_optional_variable_when_candidate_improves_score ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_completed_optional_none_is_skipped_by_later_construction_passes ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_first_fit_optional_slot_takes_first_improving_candidate ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_first_fit_required_slot_still_assigns_first_doable_value ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_first_fit_optional_slot_skips_worse_candidate_for_later_improvement ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_pillar_change_intersects_entity_domains ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_pillar_change_uses_public_pillar_semantics ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_nearby_change_uses_value_distance_meter ... ok [INFO] [stdout] test builder::selector::tests::cartesian_list_selector_builds_composite_moves ... ok [INFO] [stdout] test heuristic::r#move::tests::arena::test_arena_basic ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_pillar_swap_prunes_illegal_partners ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_reopened_optional_slot_is_revisited_by_later_construction ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_ruin_recreate_cheapest_insertion_picks_best_value ... ok [INFO] [stdout] test descriptor_scalar::tests::descriptor_ruin_recreate_first_fit_reassigns_to_first_improving_value ... ok [INFO] [stdout] test descriptor_scalar::tests::solution_level_value_range_builds_change_moves ... ok [INFO] [stdout] test heuristic::r#move::tests::arena::test_arena_extend ... ok [INFO] [stdout] test heuristic::r#move::tests::arena::test_arena_iter ... ok [INFO] [stdout] test heuristic::r#move::tests::arena::test_arena_reset ... ok [INFO] [stdout] test heuristic::r#move::tests::arena::test_arena_reuse_after_reset ... ok [INFO] [stdout] test heuristic::r#move::tests::arena::test_arena_take ... ok [INFO] [stdout] test descriptor_scalar::tests::solution_level_value_range_generates_scalar_work ... ok [INFO] [stdout] test heuristic::r#move::k_opt_reconnection::tests::enumerate_2opt_count ... ok [INFO] [stdout] test heuristic::r#move::k_opt_reconnection::tests::enumerate_3opt_count ... ok [INFO] [stdout] test heuristic::r#move::k_opt_reconnection::tests::enumerate_4opt_count ... ok [INFO] [stdout] test heuristic::r#move::k_opt_reconnection::tests::enumerate_5opt_count ... ok [INFO] [stdout] test heuristic::r#move::k_opt_reconnection::tests::enumerate_matches_static_3opt ... ok [INFO] [stdout] test heuristic::r#move::k_opt_reconnection::tests::no_identity_in_patterns ... ok [INFO] [stdout] test heuristic::r#move::k_opt_reconnection::tests::static_patterns_not_identity ... ok [INFO] [stdout] test heuristic::r#move::tests::arena::test_arena_with_capacity ... ok [INFO] [stdout] test heuristic::r#move::tests::change::test_change_move_copy ... ok [INFO] [stdout] test heuristic::r#move::tests::change::test_change_move_do_move ... ok [INFO] [stdout] test heuristic::r#move::tests::change::test_change_move_entity_indices ... ok [INFO] [stdout] test heuristic::r#move::tests::change::test_change_move_is_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::change::test_change_move_to_none ... ok [INFO] [stdout] test heuristic::r#move::tests::k_opt::k_opt_tests::cuts_not_sorted_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::k_opt::k_opt_tests::invalid_cuts_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::k_opt::k_opt_tests::three_opt_reverse_segment ... ok [INFO] [stdout] test heuristic::r#move::tests::k_opt::k_opt_tests::three_opt_swap_segments ... ok [INFO] [stdout] test heuristic::r#move::tests::list_change::inter_list_move ... ok [INFO] [stdout] test heuristic::r#move::tests::list_change::intra_list_move_forward ... ok [INFO] [stdout] test heuristic::r#move::tests::list_reverse::out_of_bounds_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::list_reverse::reverse_segment ... ok [INFO] [stdout] test heuristic::r#move::tests::list_ruin::computes_exact_final_positions_for_same_entity_reinsertion ... ok [INFO] [stdout] test heuristic::r#move::tests::list_reverse::single_element_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::list_ruin::empty_indices_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::list_ruin::out_of_bounds_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::list_ruin::undo_positions_do_not_underflow_for_interacting_same_entity_insertions ... ok [INFO] [stdout] test heuristic::r#move::tests::list_swap::inter_list_swap ... ok [INFO] [stdout] test heuristic::r#move::tests::list_reverse::reverse_entire_list ... ok [INFO] [stdout] test heuristic::r#move::tests::list_swap::invalid_position_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::list_swap::same_position_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::list_ruin::ruin_single_element ... ok [INFO] [stdout] test heuristic::r#move::tests::list_change::intra_list_move_backward ... ok [INFO] [stdout] test heuristic::r#move::tests::list_ruin::ruin_multiple_elements ... ok [INFO] [stdout] test heuristic::r#move::tests::list_swap::intra_list_swap ... ok [INFO] [stdout] test heuristic::r#move::tests::list_ruin::ruin_unordered_indices ... ok [INFO] [stdout] test heuristic::r#move::tests::pillar_change::test_pillar_change_empty_pillar_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::pillar_change::test_pillar_change_all_entities ... ok [INFO] [stdout] test heuristic::r#move::tests::pillar_swap::test_pillar_swap_all_entities ... ok [INFO] [stdout] test heuristic::r#move::tests::list_change::same_position_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::list_swap::same_values_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::ruin::ruin_all_unassigned_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_change::inter_list_move ... ok [INFO] [stdout] test heuristic::r#move::tests::list_change::invalid_source_position_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::ruin::ruin_single_entity ... ok [INFO] [stdout] test heuristic::r#move::tests::pillar_change::test_pillar_change_entity_indices ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_change::intra_list_move_backward ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_change::empty_range_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::pillar_change::test_pillar_change_same_value_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_change::dest_at_source_start_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::pillar_swap::test_pillar_swap_empty_pillar_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::pillar_swap::test_pillar_swap_same_value_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::ruin::ruin_already_unassigned_is_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_change::inter_list_tabu_inverse_matches_reverse_move ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_change::intra_list_move_forward ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_change::intra_list_rightward_tabu_inverse_matches_reverse_move ... ok [INFO] [stdout] test heuristic::r#move::tests::ruin::ruin_multiple_entities ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_change::out_of_bounds_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_swap::empty_range_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_swap::intra_list_swap ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_swap::out_of_bounds_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_swap::overlapping_ranges_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_swap::intra_list_unequal_length_tabu_inverse_matches_reverse_move ... ok [INFO] [stdout] test heuristic::r#move::tests::swap::test_swap_same_value_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::swap::test_swap_move_do_and_undo ... ok [INFO] [stdout] test heuristic::r#move::tests::swap::test_swap_self_not_doable ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_swap::inter_list_swap ... ok [INFO] [stdout] test heuristic::r#move::tests::swap::test_swap_entity_indices ... ok [INFO] [stdout] test heuristic::selector::decorator::filtering::tests::empty_when_no_moves_pass ... ok [INFO] [stdout] test heuristic::selector::decorator::filtering::tests::filters_moves_by_predicate ... ok [INFO] [stdout] test heuristic::selector::decorator::shuffling::tests::preserves_all_moves ... ok [INFO] [stdout] test heuristic::selector::decorator::shuffling::tests::same_seed_produces_same_order ... ok [INFO] [stdout] test heuristic::selector::decorator::sorting::tests::preserves_size ... ok [INFO] [stdout] test heuristic::selector::decorator::sorting::tests::sorts_ascending ... ok [INFO] [stdout] test heuristic::selector::decorator::sorting::tests::sorts_descending ... ok [INFO] [stdout] test heuristic::selector::decorator::probability::tests::selects_some_moves_with_uniform_weight ... ok [INFO] [stdout] test heuristic::selector::decorator::cartesian_product::tests::cartesian_product_arena_yields_all_pairs ... ok [INFO] [stdout] test heuristic::selector::decorator::cartesian_product::tests::reset_clears_both_arenas ... ok [INFO] [stdout] test heuristic::selector::decorator::probability::tests::same_seed_produces_same_selection ... ok [INFO] [stdout] test heuristic::r#move::tests::sublist_swap::inter_list_unequal_length_tabu_inverse_matches_reverse_move ... ok [INFO] [stdout] test heuristic::selector::decorator::union::tests::handles_empty_first ... ok [INFO] [stdout] test heuristic::selector::entity::tests::test_all_entities_selector ... ok [INFO] [stdout] test heuristic::selector::decorator::probability::tests::zero_weight_selects_nothing ... ok [INFO] [stdout] test heuristic::selector::k_opt::tests::binomial_coefficient ... ok [INFO] [stdout] test heuristic::selector::decorator::union::tests::both_empty_yields_nothing ... ok [INFO] [stdout] test heuristic::selector::decorator::union::tests::combines_both_selectors ... ok [INFO] [stdout] test heuristic::selector::entity::tests::test_from_solution_entity_selector ... ok [INFO] [stdout] test heuristic::selector::decorator::union::tests::handles_empty_second ... ok [INFO] [stdout] test heuristic::selector::decorator::shuffling::tests::different_seeds_produce_different_order ... ok [INFO] [stdout] test heuristic::selector::k_opt::tests::cut_combination_too_short ... ok [INFO] [stdout] test heuristic::selector::k_opt::tests::selector_generates_moves ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_resolve_non_inherit ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_to_random_selection ... ok [INFO] [stdout] test heuristic::selector::k_opt::tests::selector_size_matches_iteration ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_default ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_from_random_selection ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_is_random ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_requires_caching ... ok [INFO] [stdout] test heuristic::selector::tests::k_opt::binomial_coefficient ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_resolve_inherit_from_inherit ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_resolve_inherit_from_random ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_resolve_inherit_from_original ... ok [INFO] [stdout] test heuristic::selector::k_opt::tests::cut_combination_iterator_basic ... ok [INFO] [stdout] test heuristic::selector::tests::k_opt::cut_combination_iterator_basic ... ok [INFO] [stdout] test heuristic::selector::tests::k_opt::cut_combination_too_short ... ok [INFO] [stdout] test heuristic::selector::tests::list_ruin::clamps_to_available_elements ... ok [INFO] [stdout] test heuristic::selector::tests::k_opt::selector_generates_moves ... ok [INFO] [stdout] test heuristic::selector::tests::k_opt::selector_size_matches_iteration ... ok [INFO] [stdout] test heuristic::selector::tests::list_neighborhood::list_change_keeps_canonical_intra_then_inter_order ... ok [INFO] [stdout] test heuristic::selector::tests::list_neighborhood::list_change_moves_are_doable ... ok [INFO] [stdout] test heuristic::selector::tests::list_neighborhood::list_swap_emits_unique_pairs_in_canonical_order ... ok [INFO] [stdout] test heuristic::selector::tests::list_neighborhood::list_swap_moves_are_doable ... ok [INFO] [stdout] test heuristic::selector::tests::list_ruin::empty_list_yields_no_moves_for_that_entity ... ok [INFO] [stdout] test heuristic::selector::tests::list_ruin::generates_list_ruin_moves ... ok [INFO] [stdout] test heuristic::selector::tests::list_ruin::empty_solution_yields_no_moves ... ok [INFO] [stdout] test heuristic::selector::tests::list_ruin::seeded_selector_advances_between_steps ... ok [INFO] [stdout] test heuristic::selector::tests::mimic::test_mimic_empty_selector ... ok [INFO] [stdout] test heuristic::selector::tests::list_ruin::size_returns_moves_per_step ... ok [INFO] [stdout] test heuristic::selector::tests::mimic::test_mimic_recording_selector ... ok [INFO] [stdout] test heuristic::selector::tests::mimic::test_mimic_replaying_selector ... ok [INFO] [stdout] test heuristic::selector::tests::mimic::test_mimic_synchronized_iteration ... ok [INFO] [stdout] test heuristic::selector::tests::move_selector::change_selector_clones_values_as_cursor_advances ... ok [INFO] [stdout] test heuristic::selector::tests::move_selector::change_selector_does_not_emit_to_none_without_unassigned_support ... ok [INFO] [stdout] test heuristic::selector::tests::move_selector::change_selector_emits_single_to_none_move_for_assigned_entities_when_enabled ... ok [INFO] [stdout] test heuristic::selector::tests::move_selector::test_change_do_and_undo ... ok [INFO] [stdout] test heuristic::selector::tests::move_selector::test_change_move_selector ... ok [INFO] [stdout] test heuristic::selector::tests::move_selector::test_swap_do_and_undo ... ok [INFO] [stdout] test heuristic::selector::tests::nearby::test_nearby_selector_excludes_origin ... ok [INFO] [stdout] test heuristic::selector::tests::nearby::test_nearby_selector_sorts_by_distance ... ok [INFO] [stdout] test heuristic::selector::tests::nearby::test_nearby_selector_with_max_size ... ok [INFO] [stdout] test heuristic::selector::tests::move_selector::test_swap_move_selector ... ok [INFO] [stdout] test heuristic::selector::tests::nearby_list::nearby_list_change_keeps_stable_tie_order ... ok [INFO] [stdout] test heuristic::selector::tests::pillar::test_pillar_empty ... ok [INFO] [stdout] test heuristic::selector::tests::pillar::test_pillar_new ... ok [INFO] [stdout] test heuristic::selector::tests::pillar::test_default_pillar_selector_groups_by_value ... ok [INFO] [stdout] test heuristic::selector::tests::pillar::test_pillar_selector_empty_solution ... ok [INFO] [stdout] test heuristic::selector::tests::pillar::test_pillar_selector_with_minimum_size ... ok [INFO] [stdout] test heuristic::selector::tests::nearby_list::nearby_list_swap_emits_unique_pairs_in_stable_order ... ok [INFO] [stdout] test heuristic::selector::tests::pillar::test_default_pillar_selector_preserves_canonical_first_entity_order ... ok [INFO] [stdout] test heuristic::selector::tests::pillar::test_pillar_selector_with_none_values ... ok [INFO] [stdout] test heuristic::selector::tests::pillar::test_sub_pillar_config ... ok [INFO] [stdout] test heuristic::selector::tests::sublist_neighborhood::sublist_change_keeps_canonical_segment_order ... ok [INFO] [stdout] test heuristic::selector::tests::sublist_neighborhood::sublist_swap_emits_canonical_non_overlapping_pairs ... ok [INFO] [stdout] test heuristic::selector::tests::sublist_neighborhood::sublist_change_moves_are_doable ... ok [INFO] [stdout] test heuristic::selector::value_selector::tests::test_from_solution_value_selector_selector ... ok [INFO] [stdout] test heuristic::selector::tests::sublist_neighborhood::sublist_swap_moves_are_doable ... ok [INFO] [stdout] test heuristic::selector::value_selector::tests::test_static_value_selector_selector ... ok [INFO] [stdout] test manager::builder_tests::test_builder_with_step_limit ... ok [INFO] [stdout] test manager::builder_tests::test_builder_with_time_limit ... ok [INFO] [stdout] test manager::builder_tests::test_construction_types ... ok [INFO] [stdout] test manager::builder_tests::test_local_search_types ... ok [INFO] [stdout] test manager::mod_tests::test_calculate_score_basic ... ok [INFO] [stdout] test manager::mod_tests::test_calculate_score_complex_calculator ... ok [INFO] [stdout] test manager::mod_tests::test_calculate_score_multiple_solutions ... ok [INFO] [stdout] test manager::mod_tests::test_calculate_score_negative_value ... ok [INFO] [stdout] test manager::mod_tests::test_score_calculator_and_calculate_score_consistent ... ok [INFO] [stdout] test manager::mod_tests::test_score_calculator_returns_reference ... ok [INFO] [stdout] test manager::mod_tests::test_solver_factory_builder_builds_successfully ... ok [INFO] [stdout] test manager::mod_tests::test_calculate_score_zero ... ok [INFO] [stdout] test manager::mod_tests::test_solver_factory_builder_creation ... ok [INFO] [stdout] test manager::mod_tests::test_solver_factory_builder_with_step_limit ... ok [INFO] [stdout] test manager::mod_tests::test_solver_factory_builder_with_time_limit ... ok [INFO] [stdout] test manager::mod_tests::test_solver_factory_with_multiple_phases ... ok [INFO] [stdout] test manager::mod_tests::test_solver_factory_with_phase ... ok [INFO] [stdout] test manager::mod_tests::test_solver_factory_with_phase_and_step_limit ... ok [INFO] [stdout] test manager::mod_tests_integration::basic::test_construction_and_local_search_types_exist ... ok [INFO] [stdout] test manager::mod_tests_integration::basic::test_solver_factory_with_entity_solution ... ok [INFO] [stdout] test manager::mod_tests_integration::basic::test_solver_factory_with_multiple_phases ... ok [INFO] [stdout] test manager::mod_tests_integration::basic::test_solver_factory_with_phases ... ok [INFO] [stdout] test manager::mod_tests_integration::basic::test_solver_with_step_limit_termination ... ok [INFO] [stdout] test manager::mod_tests_integration::basic::test_solver_with_time_limit_termination ... ok [INFO] [stdout] test manager::mod_tests_integration::lifecycle_tests::retained_job_delete_keeps_slot_reserved_until_worker_exit ... ok [INFO] [stdout] test manager::mod_tests_integration::lifecycle_tests::retained_job_invalid_transitions_cancel_and_delete ... ok [INFO] [stdout] test heuristic::selector::tests::list_neighborhood::bench_list_swap_cursor_enumeration ... ok [INFO] [stdout] test manager::mod_tests_integration::lifecycle_tests::retained_job_pause_requested_event_precedes_worker_pause_events ... ok [INFO] [stdout] test manager::mod_tests_integration::lifecycle_tests::retained_job_pause_resume_completion_flow ... ok [INFO] [stdout] test heuristic::selector::tests::list_neighborhood::bench_list_change_cursor_enumeration ... ok [INFO] [stdout] test heuristic::selector::tests::sublist_neighborhood::bench_sublist_change_cursor_enumeration ... ok [INFO] [stdout] test manager::mod_tests_integration::lifecycle_tests::trivial_job_cancelled_while_paused_reports_cancelled ... ok [INFO] [stdout] test manager::mod_tests_integration::lifecycle_tests::retained_job_progress_reflects_pause_requested_state ... ok [INFO] [stdout] test manager::phase_factory::list_clarke_wright::tests::clarke_wright_hooks_receive_actual_list_values ... ok [INFO] [stdout] test manager::phase_factory::list_clarke_wright::tests::clarke_wright_preserves_preassigned_routes ... ok [INFO] [stdout] test phase::construction::forager::tests::best_fit_keeps_current_when_all_candidates_are_worse_than_baseline ... ok [INFO] [stdout] test phase::construction::forager::tests::best_fit_prefers_first_equal_score_candidate_over_keep_current ... ok [INFO] [stdout] test phase::construction::forager::tests::best_fit_selects_best_candidate_when_it_beats_baseline ... ok [INFO] [stdout] test phase::construction::forager::tests::first_feasible_prefers_equal_score_candidate_over_infeasible_baseline ... ok [INFO] [stdout] test manager::mod_tests_integration::prompt_tests::retained_job_cancel_settles_promptly_during_evaluation ... ok [INFO] [stdout] test phase::construction::forager::tests::first_feasible_returns_keep_current_when_baseline_is_feasible ... ok [INFO] [stdout] test phase::construction::forager::tests::first_feasible_selects_first_feasible_candidate_when_baseline_is_infeasible ... ok [INFO] [stdout] test phase::construction::forager::tests::first_fit_selects_first_improving_candidate_over_optional_baseline ... ok [INFO] [stdout] test manager::mod_tests_integration::resume_tests::retained_job_exact_resume_matches_uninterrupted_execution_after_boundary ... ok [INFO] [stdout] test phase::construction::forager::tests::first_fit_selects_later_improving_candidate_when_earlier_one_is_worse ... ok [INFO] [stdout] test phase::construction::forager::tests::test_best_fit_forager ... ok [INFO] [stdout] test phase::construction::forager::tests::test_empty_placement ... ok [INFO] [stdout] test phase::construction::forager::tests::test_first_fit_forager ... ok [INFO] [stdout] test phase::construction::forager::tests::test_strongest_fit_forager ... ok [INFO] [stdout] test phase::construction::forager::tests::test_weakest_fit_forager ... ok [INFO] [stdout] test phase::construction::phase::tests::best_fit_assigns_when_candidate_is_strictly_better_than_none ... ok [INFO] [stdout] test phase::construction::phase::tests::best_fit_keeps_current_when_every_assignment_is_worse ... ok [INFO] [stdout] test phase::construction::phase::tests::best_fit_prefers_equal_score_candidate_over_keep_current ... ok [INFO] [stdout] test phase::construction::phase::tests::best_fit_progresses_across_equal_score_plateau ... ok [INFO] [stdout] test phase::construction::forager::tests::first_fit_keeps_current_when_optional_baseline_is_not_beaten ... ok [INFO] [stdout] test phase::construction::phase::tests::first_feasible_keeps_current_when_baseline_is_already_feasible ... ok [INFO] [stdout] test phase::construction::phase::tests::first_feasible_prefers_equal_score_candidate_over_infeasible_baseline ... ok [INFO] [stdout] test phase::construction::phase::tests::first_feasible_selects_first_feasible_move_when_baseline_is_infeasible ... ok [INFO] [stdout] test phase::construction::phase::tests::first_fit_optional_construction_keeps_current_when_baseline_is_not_beaten ... ok [INFO] [stdout] test phase::construction::phase::tests::first_fit_optional_construction_takes_first_improving_candidate ... ok [INFO] [stdout] test phase::construction::phase::tests::first_fit_optional_construction_skips_worse_candidate_and_takes_later_improvement ... ok [INFO] [stdout] test phase::construction::phase::tests::first_fit_required_construction_still_selects_first_doable_candidate ... ok [INFO] [stdout] test phase::construction::phase::tests::test_construction_best_fit ... ok [INFO] [stdout] test phase::construction::phase::tests::test_construction_empty_solution ... ok [INFO] [stdout] test phase::construction::phase::tests::test_construction_first_fit ... ok [INFO] [stdout] test phase::construction::phase::tests::keep_current_pause_snapshot_has_committed_score ... ok [INFO] [stdout] test phase::construction::phase::tests::test_construction_phase_reports_one_best_solution_on_improvement ... ok [INFO] [stdout] test phase::construction::placer::tests::test_queued_placer_all_uninitialized ... ok [INFO] [stdout] test phase::construction::placer::tests::test_queued_placer_some_initialized ... ok [INFO] [stdout] test phase::construction::placer::tests::test_queued_placer_all_initialized ... ok [INFO] [stdout] test phase::construction::placer::tests::test_sorted_entity_placer_descending ... ok [INFO] [stdout] test phase::construction::phase::tests::test_construction_resume_retries_interrupted_placement ... ok [INFO] [stdout] test manager::mod_tests_integration::prompt_tests::retained_job_pause_settles_promptly_during_generation ... ok [INFO] [stdout] test phase::exhaustive::bounder::tests::test_bounder_type_default ... ok [INFO] [stdout] test phase::exhaustive::bounder::tests::test_bounder_type_display ... ok [INFO] [stdout] test phase::exhaustive::node::tests::test_child_node ... ok [INFO] [stdout] test phase::exhaustive::decider::tests::test_simple_decider_creation ... ok [INFO] [stdout] test phase::exhaustive::node::tests::test_is_leaf ... ok [INFO] [stdout] test phase::exhaustive::bounder::tests::test_simple_bounder_returns_none ... ok [INFO] [stdout] test phase::exhaustive::node::tests::test_move_sequence ... ok [INFO] [stdout] test phase::exhaustive::node::tests::test_optimistic_bound_pruning ... ok [INFO] [stdout] test phase::exhaustive::node::tests::test_root_node ... ok [INFO] [stdout] test phase::exhaustive::phase::tests::test_config_default ... ok [INFO] [stdout] test phase::exhaustive::phase::tests::test_exploration_type_default ... ok [INFO] [stdout] test phase::exhaustive::phase::tests::test_exploration_type_display ... ok [INFO] [stdout] test phase::exhaustive::phase::tests::test_phase_debug ... ok [INFO] [stdout] test phase::exhaustive::phase::tests::test_phase_type_name ... ok [INFO] [stdout] test phase::localsearch::acceptor::diversified_late_acceptance::tests::test_accepts_improving_moves ... ok [INFO] [stdout] test phase::localsearch::acceptor::diversified_late_acceptance::tests::test_accepts_late_equal ... ok [INFO] [stdout] test phase::localsearch::acceptor::diversified_late_acceptance::tests::test_rejects_outside_tolerance ... ok [INFO] [stdout] test phase::localsearch::acceptor::diversified_late_acceptance::tests::test_diversification_accepts_within_tolerance ... ok [INFO] [stdout] test phase::localsearch::acceptor::great_deluge::tests::test_accepts_above_water_level ... ok [INFO] [stdout] test phase::localsearch::acceptor::diversified_late_acceptance::tests::test_history_cycles ... ok [INFO] [stdout] test phase::localsearch::acceptor::great_deluge::tests::test_accepts_improving_moves ... ok [INFO] [stdout] test phase::localsearch::acceptor::great_deluge::tests::test_phase_reset ... ok [INFO] [stdout] test phase::localsearch::acceptor::great_deluge::tests::test_rejects_below_water_level ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::accepts_equal_moves ... ok [INFO] [stdout] test phase::localsearch::acceptor::great_deluge::tests::test_water_rises_over_time ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::accepts_improving_moves ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::high_temperature_accepts_most ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::auto_calibrate_sets_temperature_from_initial_score ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::rejects_at_zero_temperature ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::score_delta_to_scalar_hard_soft ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::seeded_auto_calibrate_matches_unseeded_temperature ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::score_delta_to_scalar_simple ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::temperature_decays_each_step ... ok [INFO] [stdout] test phase::localsearch::acceptor::step_counting::tests::test_accepts_improving_moves ... ok [INFO] [stdout] test phase::localsearch::acceptor::step_counting::tests::test_accepts_non_improving_within_limit ... ok [INFO] [stdout] test phase::localsearch::acceptor::step_counting::tests::test_phase_reset ... ok [INFO] [stdout] test phase::localsearch::acceptor::simulated_annealing::tests::low_temperature_rejects_most ... ok [INFO] [stdout] test phase::localsearch::acceptor::step_counting::tests::test_rejects_after_limit_exceeded ... ok [INFO] [stdout] test phase::localsearch::acceptor::step_counting::tests::test_improving_always_accepted_even_after_limit ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::hill_climbing_accepts_only_improving_moves ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::late_acceptance_uses_late_score_threshold ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::tabu_search_blocks_recent_values ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::tabu_search_blocks_exact_move_and_undo_move ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::tabu_search_blocks_recent_entities_and_allows_aspiration ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::tabu_search_move_only_policy_blocks_recent_exact_move ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::tabu_search_scoped_tokens_do_not_collide_across_variables ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_accepted_count_forager_empty ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_accepted_count_forager_never_quits_early ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_accepted_count_forager_picks_best_index ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_accepted_count_forager_retains_best_n_moves ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::tabu_search_clears_memories_on_phase_end ... ok [INFO] [stdout] test phase::localsearch::acceptor::step_counting::tests::test_resets_on_improvement ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_best_score_forager_never_quits_early ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_first_accepted_forager ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_first_best_score_improving_quits_on_improvement ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_first_last_step_improving_quits_on_improvement ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_forager_resets_on_step ... ok [INFO] [stdout] test phase::localsearch::phase::tests::local_search_can_improve_by_unassigning_optional_variable ... ok [INFO] [stdout] test phase::localsearch::phase::tests::test_local_search_reaches_optimal ... ok [INFO] [stdout] test phase::localsearch::phase::tests::test_local_search_hill_climbing ... ok [INFO] [stdout] test phase::localsearch::phase::tests::test_local_search_step_limit ... ok [INFO] [stdout] test phase::partitioned::partitioner::tests::test_functional_partitioner ... ok [INFO] [stdout] test phase::partitioned::partitioner::tests::test_partitioner_debug ... ok [INFO] [stdout] test phase::partitioned::partitioner::tests::test_thread_count_default ... ok [INFO] [stdout] test phase::partitioned::partitioner::tests::test_thread_count_display ... ok [INFO] [stdout] test phase::partitioned::partitioner::tests::test_thread_count_resolve_auto ... ok [INFO] [stdout] test phase::partitioned::partitioner::tests::test_thread_count_resolve_specific ... ok [INFO] [stdout] test phase::partitioned::phase::tests::partitioned_search_bootstraps_child_scopes_before_mutation ... ok [INFO] [stdout] test phase::partitioned::phase::tests::partitioned_search_honors_specific_thread_count ... ok [INFO] [stdout] test phase::partitioned::phase::tests::partitioned_search_reinitializes_after_merge ... ok [INFO] [stdout] test phase::partitioned::phase::tests::test_config_default ... ok [INFO] [stdout] test phase::vnd::phase::tests::test_vnd_improves_solution ... ok [INFO] [stdout] test phase::vnd::phase::tests::test_vnd_single_neighborhood ... ok [INFO] [stdout] test realtime::problem_change::tests::closure_problem_change ... ok [INFO] [stdout] test realtime::problem_change::tests::problem_change_apply_through_solver_scope_invalidates_frontier_revision ... ok [INFO] [stdout] test realtime::problem_change::tests::struct_problem_change ... ok [INFO] [stdout] test realtime::solver_handle::tests::handle_clone ... ok [INFO] [stdout] test realtime::solver_handle::tests::handle_creation ... ok [INFO] [stdout] test realtime::solver_handle::tests::multiple_changes ... ok [INFO] [stdout] test realtime::solver_handle::tests::submit_change_when_not_solving ... ok [INFO] [stdout] test realtime::solver_handle::tests::submit_change_when_solving ... ok [INFO] [stdout] test realtime::solver_handle::tests::terminate_early ... ok [INFO] [stdout] test run::tests::load_solver_config_from_preserves_file_settings ... ok [INFO] [stdout] test phase::localsearch::phase::tests::test_local_search_records_selector_open_time_as_generation_time ... ok [INFO] [stdout] test manager::mod_tests_integration::prompt_tests::retained_job_time_limit_settles_promptly_during_generation ... ok [INFO] [stdout] test runtime::construction_routing_tests::mixed_cheapest_insertion_keeps_generic_construction_path ... ok [INFO] [stdout] test runtime::construction_routing_tests::mixed_first_fit_keeps_generic_construction_path ... ok [INFO] [stdout] test runtime::construction_routing_tests::pure_scalar_cheapest_insertion_uses_descriptor_scalar_path ... ok [INFO] [stdout] test runtime::construction_routing_tests::pure_scalar_first_fit_uses_descriptor_scalar_path ... ok [INFO] [stdout] test runtime::construction_routing_tests::scalar_only_heuristics_still_route_to_descriptor_path ... ok [INFO] [stdout] test runtime::list_tests::generic_list_only_cheapest_insertion_uses_global_best_score ... ok [INFO] [stdout] test runtime::list_tests::generic_list_only_first_fit_uses_canonical_order ... ok [INFO] [stdout] test builder::acceptor::tests::test_acceptor_builder_tabu_search_rejects_zero_sizes ... ok [INFO] [stdout] test runtime::tests::entity_class_target_matches_scalar_and_list_in_same_owner ... ok [INFO] [stdout] test runtime::tests::generic_mixed_phase_reopens_optional_none_after_list_commit ... ok [INFO] [stdout] test runtime::tests::list_round_robin_runtime_appends_after_existing_elements ... ok [INFO] [stdout] test runtime::tests::list_target_matches_entity_class_only ... ok [INFO] [stdout] test heuristic::selector::tests::sublist_neighborhood::bench_sublist_swap_cursor_enumeration ... ok [INFO] [stdout] test runtime::tests::mixed_cheapest_insertion_breaks_equal_scores_by_canonical_order ... ok [INFO] [stdout] test runtime::tests::list_target_matches_variable_name_across_all_owners ... ok [INFO] [stdout] test runtime::tests::no_op_runtime_construction_still_seeds_score_and_best_solution ... ok [INFO] [stdout] test runtime::tests::scalar_runtime_first_fit_keeps_none_when_optional_baseline_is_not_beaten ... ok [INFO] [stdout] test runtime::tests::scalar_runtime_first_fit_required_slot_still_assigns_first_doable ... ok [INFO] [stdout] test runtime::tests::scalar_runtime_first_fit_takes_first_improving_candidate ... ok [INFO] [stdout] test runtime::tests::scalar_runtime_frontier_marks_kept_optional_none_as_complete ... ok [INFO] [stdout] test runtime::tests::scalar_target_matches_entity_class_only_target ... ok [INFO] [stdout] test runtime::tests::scalar_runtime_first_fit_skips_worse_candidate_for_later_improvement ... ok [INFO] [stdout] test runtime::tests::targeted_multi_owner_list_round_robin_runs_all_matching_owners ... ok [INFO] [stdout] test runtime::tests::targeted_multi_owner_list_round_robin_runs_only_matching_owner ... ok [INFO] [stdout] test runtime::tests::untargeted_multi_owner_list_round_robin_runs_all_owners_in_declaration_order ... ok [INFO] [stdout] test scope::tests::test_phase_scope ... ok [INFO] [stdout] test scope::tests::test_replace_working_solution_reinitializes_revision_and_frontier ... ok [INFO] [stdout] test scope::tests::test_solver_scope_creation ... ok [INFO] [stdout] test scope::tests::test_solver_scope_mutate_advances_revision_once ... ok [INFO] [stdout] test scope::tests::test_solver_scope_promotes_current_solution_on_score_tie ... ok [INFO] [stdout] test scope::tests::test_solver_scope_step_count ... ok [INFO] [stdout] test scope::tests::test_solver_scope_trial_rolls_back_without_advancing_revision ... ok [INFO] [stdout] test scope::tests::test_solver_scope_update_best ... ok [INFO] [stdout] test scope::tests::test_step_scope ... ok [INFO] [stdout] test stats::tests::format_duration_uses_exact_integer_units ... ok [INFO] [stdout] test stats::tests::phase_stats_track_generation_and_evaluation_separately ... ok [INFO] [stdout] test stats::tests::solver_snapshot_preserves_exact_counts_and_durations ... ok [INFO] [stdout] test stats::tests::throughput_helpers_use_stage_specific_durations ... ok [INFO] [stdout] test stats::tests::whole_units_per_second_uses_integer_rate_math ... ok [INFO] [stdout] test builder::selector::tests::empty_model_does_not_synthesize_scalar_neighborhoods - should panic ... ok [INFO] [stdout] test termination::diminished_returns::tests::test_not_terminated_during_grace_period ... ok [INFO] [stdout] test heuristic::r#move::tests::arena::test_arena_double_take_panics - should panic ... ok [INFO] [stdout] test termination::diminished_returns::tests::test_no_score_does_not_terminate ... ok [INFO] [stdout] test termination::tests::test_and_termination ... ok [INFO] [stdout] test termination::tests::test_best_score_feasible_termination ... ok [INFO] [stdout] test termination::tests::test_best_score_feasible_termination_custom ... ok [INFO] [stdout] test termination::tests::test_best_score_feasible_termination_not_feasible ... ok [INFO] [stdout] test termination::tests::test_best_score_termination_exceeded ... ok [INFO] [stdout] test termination::tests::test_best_score_termination_no_score ... ok [INFO] [stdout] test termination::tests::test_best_score_termination_not_reached ... ok [INFO] [stdout] test termination::tests::test_best_score_termination_reached ... ok [INFO] [stdout] test heuristic::selector::selection_order::tests::test_to_random_selection_panics_on_shuffled - should panic ... ok [INFO] [stdout] test termination::tests::test_diminished_not_terminated_during_grace_period ... ok [INFO] [stdout] test heuristic::selector::tests::list_ruin::panics_on_invalid_range - should panic ... ok [INFO] [stdout] test termination::tests::test_diminished_no_score_does_not_terminate ... ok [INFO] [stdout] test termination::tests::test_or_termination ... ok [INFO] [stdout] test termination::tests::test_step_count_termination ... ok [INFO] [stdout] test termination::tests::test_unimproved_step_count_termination ... ok [INFO] [stdout] test termination::tests::test_unimproved_step_count_termination_with_improvement ... ok [INFO] [stdout] test heuristic::selector::tests::list_ruin::panics_on_zero_min - should panic ... ok [INFO] [stdout] test termination::tests::test_unimproved_time_termination_no_score ... ok [INFO] [stdout] test test_utils::tests::test_create_scope ... ok [INFO] [stdout] test test_utils::tests::test_create_scope_with_score ... ok [INFO] [stdout] test termination::tests::test_unimproved_time_termination_initial_score ... ok [INFO] [stdout] test test_utils::tests::test_create_test_scope_alias ... ok [INFO] [stdout] test test_utils::tests::test_create_test_scope_with_score_alias ... ok [INFO] [stdout] test test_utils::tests::test_solution_creation ... ok [INFO] [stdout] test termination::diminished_returns::tests::test_not_terminated_with_sufficient_improvement ... ok [INFO] [stdout] test termination::tests::test_diminished_not_terminated_with_sufficient_improvement ... ok [INFO] [stdout] test manager::mod_tests_integration::analysis_tests::retained_job_analysis_is_snapshot_bound_across_live_states_and_completion ... ok [INFO] [stdout] test manager::mod_tests_integration::analysis_tests::retained_job_analysis_remains_available_after_cancel_failure_and_config_termination ... ok [INFO] [stdout] test phase::localsearch::acceptor::tests::tabu_search_requires_signatures ... ok [INFO] [stdout] test phase::localsearch::forager::tests::test_accepted_count_forager_zero_panics - should panic ... ok [INFO] [stdout] test run::tests::log_solve_start_rejects_ambiguous_scale ... ok [INFO] [stdout] test run::tests::log_solve_start_rejects_missing_scale ... ok [INFO] [stdout] test runtime::tests::construction_target_panics_when_no_variable_matches ... ok [INFO] [stdout] test runtime::tests::targeted_multi_owner_list_round_robin_panics_when_no_owner_matches ... ok [INFO] [stdout] test heuristic::selector::tests::nearby_list::bench_nearby_list_swap_cursor_enumeration ... ok [INFO] [stdout] test termination::diminished_returns::tests::test_terminates_with_zero_improvement ... ok [INFO] [stdout] test termination::tests::test_diminished_terminates_with_zero_improvement ... ok [INFO] [stdout] test heuristic::selector::tests::nearby_list::bench_nearby_list_change_cursor_enumeration ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 434 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.50s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solverforge_test-c5d9757aaf75f7d9) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test entity::tests::test_entity_creation ... ok [INFO] [stdout] test entity::tests::test_solution_creation ... ok [INFO] [stdout] test entity::tests::test_get_set_value ... ok [INFO] [stdout] test nqueens::tests::test_conflict_calculation_diagonal_conflict ... ok [INFO] [stdout] test entity::tests::test_extractor_creation ... ok [INFO] [stdout] test nqueens::tests::test_queen_creation ... ok [INFO] [stdout] test nqueens::tests::test_solution_creation ... ok [INFO] [stdout] test shadow::tests::test_default ... ok [INFO] [stdout] test shadow::tests::test_shadow_solution_creation ... ok [INFO] [stdout] test nqueens::tests::test_conflict_calculation_row_conflict ... ok [INFO] [stdout] test task::tests::test_solution_creation ... ok [INFO] [stdout] test task::tests::test_task_creation ... ok [INFO] [stdout] test task::tests::test_get_set_priority ... ok [INFO] [stdout] test nqueens::tests::test_conflict_calculation_no_conflicts ... ok [INFO] [stderr] Doc-tests solverforge [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests solverforge_config [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test crates/solverforge-config/src/solver_config.rs - solver_config::SolverConfig::time_limit (line 100) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s [INFO] [stdout] [INFO] [stderr] Doc-tests solverforge_console [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests solverforge_core [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test crates/solverforge-core/src/domain/traits.rs - domain::traits::ProblemFact (line 134) ... ok [INFO] [stdout] test crates/solverforge-core/src/domain/traits.rs - domain::traits::PlanningEntity (line 89) ... ok [INFO] [stdout] test crates/solverforge-core/src/domain/value_range.rs - domain::value_range::ValueRangeProvider (line 21) ... ok [INFO] [stdout] test crates/solverforge-core/src/domain/traits.rs - domain::traits::PlanningSolution (line 18) ... ok [INFO] [stdout] test crates/solverforge-core/src/domain/traits.rs - domain::traits::ListVariableSolution (line 193) ... ok [INFO] [stdout] test crates/solverforge-core/src/domain/traits.rs - domain::traits::PlanningId (line 159) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s [INFO] [stdout] [INFO] [stderr] Doc-tests solverforge_cvrp [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests solverforge_macros [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests solverforge_scoring [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests solverforge_solver [INFO] [stdout] [INFO] [stdout] running 40 tests [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/arena.rs - heuristic::r#move::arena::MoveArena (line 32) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/list_ruin.rs - heuristic::r#move::list_ruin::ListRuinMove (line 37) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/swap.rs - heuristic::r#move::swap::SwapMove (line 31) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/sublist_swap.rs - heuristic::r#move::sublist_swap::SublistSwapMove (line 36) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/selector/decorator/sorting.rs - heuristic::selector::decorator::sorting::SortingMoveSelector (line 23) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/list_reverse.rs - heuristic::r#move::list_reverse::ListReverseMove (line 34) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/list_swap.rs - heuristic::r#move::list_swap::ListSwapMove (line 33) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/ruin.rs - heuristic::r#move::ruin::RuinMove (line 35) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/list_either.rs - heuristic::r#move::list_either::ListMoveUnion (line 27) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/k_opt_reconnection.rs - heuristic::r#move::k_opt_reconnection::enumerate_reconnections (line 250) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/selector/decorator/probability.rs - heuristic::selector::decorator::probability::ProbabilityMoveSelector (line 26) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/k_opt_reconnection.rs - heuristic::r#move::k_opt_reconnection::THREE_OPT_RECONNECTIONS (line 209) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/sublist_change.rs - heuristic::r#move::sublist_change::SublistChangeMove (line 36) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/selector/decorator/filtering.rs - heuristic::selector::decorator::filtering::FilteringMoveSelector (line 22) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/selector/nearby.rs - heuristic::selector::nearby::NearbyDistanceMeter (line 35) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/move/list_change.rs - heuristic::r#move::list_change::ListChangeMove (line 33) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/solution_manager.rs - manager::solution_manager::analyze (line 78) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/solution_manager.rs - manager::solution_manager::Analyzable (line 38) ... ok [INFO] [stdout] test crates/solverforge-solver/src/phase/construction/placer.rs - phase::construction::placer::SortedEntityPlacer (line 266) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/solver_factory.rs - manager::solver_factory::SolverFactory::builder (line 112) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/phase_factory/list_clarke_wright.rs - manager::phase_factory::list_clarke_wright::ListClarkeWrightPhase (line 44) ... ok [INFO] [stdout] test crates/solverforge-solver/src/phase/localsearch/acceptor/step_counting.rs - phase::localsearch::acceptor::step_counting::StepCountingHillClimbingAcceptor (line 21) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/phase_factory/list_construction/regret.rs - manager::phase_factory::list_construction::regret::ListRegretInsertionPhase (line 37) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/phase_factory/list_construction/cheapest.rs - manager::phase_factory::list_construction::cheapest::ListCheapestInsertionPhase (line 33) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/phase_factory/k_opt.rs - manager::phase_factory::k_opt::KOptPhaseBuilder (line 34) ... ok [INFO] [stdout] test crates/solverforge-solver/src/phase/localsearch/acceptor/great_deluge.rs - phase::localsearch::acceptor::great_deluge::GreatDelugeAcceptor (line 25) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/selector/decorator/union.rs - heuristic::selector::decorator::union::UnionMoveSelector (line 22) ... ok [INFO] [stdout] test crates/solverforge-solver/src/heuristic/selector/decorator/shuffling.rs - heuristic::selector::decorator::shuffling::ShufflingMoveSelector (line 27) ... ok [INFO] [stdout] test crates/solverforge-solver/src/phase/exhaustive/phase.rs - phase::exhaustive::phase::ExhaustiveSearchPhase (line 31) ... ok [INFO] [stdout] test crates/solverforge-solver/src/realtime/problem_change.rs - realtime::problem_change::ProblemChange (line 24) ... ok [INFO] [stdout] test crates/solverforge-solver/src/phase/localsearch/acceptor/diversified_late_acceptance.rs - phase::localsearch::acceptor::diversified_late_acceptance::DiversifiedLateAcceptanceAcceptor (line 24) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/phase_factory/list_k_opt.rs - manager::phase_factory::list_k_opt::ListKOptPhase (line 31) ... ok [INFO] [stdout] test crates/solverforge-solver/src/phase/localsearch/acceptor/late_acceptance.rs - phase::localsearch::acceptor::late_acceptance::LateAcceptanceAcceptor (line 17) ... ok [INFO] [stdout] test crates/solverforge-solver/src/realtime/problem_change.rs - realtime::problem_change::ClosureProblemChange (line 96) ... ok [INFO] [stdout] test crates/solverforge-solver/src/manager/phase_factory/list_construction/round_robin.rs - manager::phase_factory::list_construction::round_robin::ListConstructionPhaseBuilder (line 36) ... ok [INFO] [stdout] test crates/solverforge-solver/src/termination/unimproved.rs - termination::unimproved::UnimprovedStepCountTermination (line 23) ... ok [INFO] [stdout] test crates/solverforge-solver/src/termination/diminished_returns.rs - termination::diminished_returns::DiminishedReturnsTermination (line 28) ... ok [INFO] [stdout] test crates/solverforge-solver/src/phase/vnd/phase.rs - phase::vnd::phase::VndPhase (line 32) ... ok [INFO] [stdout] test crates/solverforge-solver/src/termination/unimproved.rs - termination::unimproved::UnimprovedTimeTermination (line 137) ... ok [INFO] [stdout] test crates/solverforge-solver/src/realtime/solver_handle.rs - realtime::solver_handle::SolverHandle (line 32) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.45s [INFO] [stdout] [INFO] [stderr] Doc-tests solverforge_test [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "e14a237b662bc6a996dedd2d7f1579e53de0044a509f633f32f7951007a2b57d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e14a237b662bc6a996dedd2d7f1579e53de0044a509f633f32f7951007a2b57d", kill_on_drop: false }` [INFO] [stdout] e14a237b662bc6a996dedd2d7f1579e53de0044a509f633f32f7951007a2b57d