[INFO] cloning repository https://github.com/Mec-iS/arrowspace-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Mec-iS/arrowspace-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMec-iS%2Farrowspace-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMec-iS%2Farrowspace-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 306145d12ee6408f41dd4737217105f8cb9ba4ab
[INFO] testing Mec-iS/arrowspace-rs against try#9f93af291970322f4f1c6315ccde4d7078201159 for pr-146098-6
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMec-iS%2Farrowspace-rs" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Mec-iS/arrowspace-rs
[INFO] finished tweaking git repo https://github.com/Mec-iS/arrowspace-rs
[INFO] tweaked toml for git repo https://github.com/Mec-iS/arrowspace-rs written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Mec-iS/arrowspace-rs on toolchain 9f93af291970322f4f1c6315ccde4d7078201159
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Mec-iS/arrowspace-rs 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" "+9f93af291970322f4f1c6315ccde4d7078201159" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-1-tc2/source/Cargo.toml: unused manifest key: examples
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d52d956f11a5cded414055f36b4cfef48cbab94a9939fb74c03e1170a8dbbf6e
[INFO] running `Command { std: "docker" "start" "-a" "d52d956f11a5cded414055f36b4cfef48cbab94a9939fb74c03e1170a8dbbf6e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d52d956f11a5cded414055f36b4cfef48cbab94a9939fb74c03e1170a8dbbf6e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d52d956f11a5cded414055f36b4cfef48cbab94a9939fb74c03e1170a8dbbf6e", kill_on_drop: false }`
[INFO] [stdout] d52d956f11a5cded414055f36b4cfef48cbab94a9939fb74c03e1170a8dbbf6e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de40eb33af48e26120dac51e172cf34c9ff0ef2e37e05dec839c46f7f2df57e4
[INFO] running `Command { std: "docker" "start" "-a" "de40eb33af48e26120dac51e172cf34c9ff0ef2e37e05dec839c46f7f2df57e4", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: examples
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling approx v0.3.2
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling ordered-float v5.1.0
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling jiff v0.2.15
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling alga v0.9.3
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling smartcore v0.4.5
[INFO] [stderr]    Compiling ndarray v0.16.1
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling rand_distr v0.5.1
[INFO] [stderr]    Compiling sprs v0.11.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling env_filter v0.1.4
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling arrowspace v0.22.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.88s
[INFO] running `Command { std: "docker" "inspect" "de40eb33af48e26120dac51e172cf34c9ff0ef2e37e05dec839c46f7f2df57e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de40eb33af48e26120dac51e172cf34c9ff0ef2e37e05dec839c46f7f2df57e4", kill_on_drop: false }`
[INFO] [stdout] de40eb33af48e26120dac51e172cf34c9ff0ef2e37e05dec839c46f7f2df57e4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 85807499b088d97458351a5208e330d3ce13032e28bc90be5296665a404058f3
[INFO] running `Command { std: "docker" "start" "-a" "85807499b088d97458351a5208e330d3ce13032e28bc90be5296665a404058f3", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: examples
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]    Compiling erased-serde v0.4.8
[INFO] [stderr]    Compiling typetag v0.2.21
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling inventory v0.3.21
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling clap_builder v4.5.50
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling sprs v0.11.3
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rand_pcg v0.9.0
[INFO] [stderr]    Compiling rand_xoshiro v0.7.0
[INFO] [stderr]    Compiling criterion-plot v0.6.0
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling clap v4.5.50
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling typetag-impl v0.2.21
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling criterion v0.7.0
[INFO] [stderr]    Compiling rand_distr v0.5.1
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling smartcore v0.4.5
[INFO] [stderr]    Compiling arrowspace v0.22.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 37.92s
[INFO] running `Command { std: "docker" "inspect" "85807499b088d97458351a5208e330d3ce13032e28bc90be5296665a404058f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85807499b088d97458351a5208e330d3ce13032e28bc90be5296665a404058f3", kill_on_drop: false }`
[INFO] [stdout] 85807499b088d97458351a5208e330d3ce13032e28bc90be5296665a404058f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8a97e800d253bf2a66593705a99967dad06e212ee1f312ef8a6321f7fff1139b
[INFO] running `Command { std: "docker" "start" "-a" "8a97e800d253bf2a66593705a99967dad06e212ee1f312ef8a6321f7fff1139b", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: examples
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.28s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/arrowspace-5f3b06c0f0a47dac)
[INFO] [stdout] 
[INFO] [stdout] running 198 tests
[INFO] [stdout] test tests::test_arrow::test_builder_lambda_computation_with_different_tau_modes ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_spectral_laplacian_computation ... ok
[INFO] [stdout] test tests::test_builder::test_density_adaptive_high_rate ... ok
[INFO] [stdout] test tests::test_builder::test_density_adaptive_aggressive_sampling ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_with_normalized_vs_unnormalized_items ... ok
[INFO] [stdout] test tests::test_builder::test_density_adaptive_sampling_basic ... ok
[INFO] [stdout] test tests::test_builder::simple_build ... ok
[INFO] [stdout] test tests::test_builder::test_density_adaptive_with_duplicates ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_clustering_produces_valid_assignments ... ok
[INFO] [stdout] test tests::test_builder::test_density_adaptive_vs_no_sampling ... ok
[INFO] [stdout] test tests::test_builder::test_simple_random_high_rate ... ignored, flaky, depends on how sampling happens
[INFO] [stdout] test tests::test_builder::test_simple_random_vs_density_adaptive ... ignored, flaky, depends on what happens in clustering
[INFO] [stdout] test tests::test_builder::test_density_adaptive_with_uniform_data ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_direction_vs_magnitude_sensitivity ... ok
[INFO] [stdout] test tests::test_clustering::test_calinski_harabasz_three_clusters ... ok
[INFO] [stdout] test tests::test_clustering::test_calinski_harabasz_single_cluster ... ok
[INFO] [stdout] test tests::test_builder::lambda_graph_shape_matches_rows ... ok
[INFO] [stdout] test tests::test_clustering::test_clustering_heuristic_trait_interface ... ok
[INFO] [stdout] test tests::test_clustering::test_euclidean_dist_basic ... ok
[INFO] [stdout] test tests::test_clustering::test_euclidean_dist_identity ... ok
[INFO] [stdout] test tests::test_clustering::test_euclidean_dist_one_dimensional ... ok
[INFO] [stdout] test tests::test_clustering::test_consistent_results_with_seed ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_cluster_radius_impact ... ok
[INFO] [stdout] test tests::test_clustering::test_intrinsic_dimension_full_space ... ok
[INFO] [stdout] test tests::test_clustering::test_intrinsic_dimension_small_n ... ok
[INFO] [stdout] test tests::test_clustering::test_kmeans_convergence_early_stop ... ok
[INFO] [stdout] test tests::test_clustering::test_kmeans_empty_cluster_recovery ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_normalisation_flag_is_preserved ... ok
[INFO] [stdout] test tests::test_clustering::test_kmeans_k_greater_than_n ... ok
[INFO] [stdout] test tests::test_clustering::test_calinski_harabasz_well_separated ... ok
[INFO] [stdout] test tests::test_clustering::test_kmeans_lloyd_k_equals_n ... ok
[INFO] [stdout] test tests::test_builder::test_builder_unit_norm_diagonal_similarity ... ok
[INFO] [stdout] test tests::test_clustering::test_nearest_centroid_middle ... ok
[INFO] [stdout] test tests::test_clustering::test_nearest_centroid_single ... ok
[INFO] [stdout] test tests::test_clustering::test_kmeans_lloyd_gaussian_blobs ... ok
[INFO] [stdout] test tests::test_clustering::test_kmeans_k_equals_zero - should panic ... ok
[INFO] [stdout] test tests::test_clustering::test_kmeans_single_row - should panic ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_heuristic_small_n ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_heuristic_degenerate_identical ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_heuristic_single_feature ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_minimum_viable_dataset ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_heuristic_spherical_clusters ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_performance_large_dataset ... ignored
[INFO] [stdout] test tests::test_clustering::test_optimal_k_mixed_scale_features ... ok
[INFO] [stdout] test tests::test_builder::test_simple_random_aggressive_sampling ... ok
[INFO] [stdout] test tests::test_clustering::test_step1_bounds_high_dimensional ... ok
[INFO] [stdout] test tests::test_clustering::test_readme_example ... ok
[INFO] [stdout] test tests::test_clustering::test_step1_bounds_small_dataset ... ok
[INFO] [stdout] test tests::test_clustering::test_threshold_all_points_identical ... ok
[INFO] [stdout] test tests::test_clustering::test_threshold_from_pilot_large_variance ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_heuristic_synthetic_three_clusters ... ok
[INFO] [stdout] test tests::test_clustering::test_threshold_from_pilot_single_point_per_cluster ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_heuristic_high_dimensional_random ... ok
[INFO] [stdout] test tests::test_clustering::test_threshold_very_tight_clusters ... ok
[INFO] [stdout] test tests::test_clustering::test_threshold_from_pilot_two_clusters ... ok
[INFO] [stdout] test tests::test_clustering::test_threshold_zero_variance_clusters ... ok
[INFO] [stdout] test tests::test_clustering::test_step1_bounds_large_n_small_f ... ok
[INFO] [stdout] test tests::test_clustering::test_optimal_k_very_high_dimensional ... ok
[INFO] [stdout] test tests::test_clustering::test_intrinsic_dimension_plane ... ok
[INFO] [stdout] test tests::test_eigenmaps::test_eigenmaps_non_sensical_undecidable_query - should panic ... ok
[INFO] [stdout] test tests::test_clustering::test_intrinsic_dimension_line ... ok
[INFO] [stdout] test tests::test_energy_builder::test_build_energy_requires_dims_reduction - should panic ... ok
[INFO] [stdout] test tests::test_builder::test_with_deterministic_seed ... ok
[INFO] [stdout] test tests::test_eigenmaps::test_eigenmaps_stages_produce_valid_state ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_lambda_statistics ... ok
[INFO] [stdout] test tests::test_energy_builder::test_energy_build_custom_params ... ok
[INFO] [stdout] test tests::test_energy_builder::test_energy_build_lambda_statistics ... ok
[INFO] [stdout] test tests::test_energy_builder::test_energy_build_taumode_consistency ... ok
[INFO] [stdout] test tests::test_builder::build_with_lambda_graph_over_product_like_rows ... ok
[INFO] [stdout] test tests::test_builder::build_from_rows_with_lambda_graph ... ok
[INFO] [stdout] test tests::test_eigenmaps::test_eigenmaps_vs_build_with_spectral ... ok
[INFO] [stdout] test tests::test_builder::test_density_adaptive_maintains_lambda_quality ... ok
[INFO] [stdout] test tests::test_builder::test_density_adaptive_sampling_statistics ... ok
[INFO] [stdout] test tests::test_energy_builder::test_energy_build_with_projection ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_empty_k ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_high_dimensional ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_k_scaling ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_basic ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_score_monotonicity ... ok
[INFO] [stdout] test tests::test_energy_builder::test_build_energy_dimensionality_reduction ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_single ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_weight_tuning ... ok
[INFO] [stdout] test tests::test_energy_builder::test_energy_build_diffusion_splits ... ok
[INFO] [stdout] test tests::test_eigenmaps::test_eigenmaps_vs_build_basic ... ok
[INFO] [stdout] test tests::test_energy_builder::test_energy_build_basic ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_self_retrieval ... ok
[INFO] [stdout] test tests::test_eigenmaps::test_search_without_taumode_panics - should panic ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_optical_compression ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_lambda_proximity ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_search_optimized ... ok
[INFO] [stdout] test tests::test_energy_builder::test_energy_laplacian_properties ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_laplacian_diagonal_properties ... ok
[INFO] [stdout] test tests::test_eigenmaps::test_eigenmaps_vs_build_different_taumode ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_minimum_items ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_laplacian_symmetry ... ok
[INFO] [stdout] test tests::test_builder::test_constant_sampler_preserves_outliers ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_parameter_preservation ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_scale_invariance_with_normalization ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_lambda_values_are_nonnegative ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_no_cosine_dependence ... ok
[INFO] [stdout] test tests::test_laplacian::test_arrowspace_integration_pattern_sparse ... ok
[INFO] [stdout] test tests::test_laplacian::test_basic_laplacian_construction ... ok
[INFO] [stdout] test tests::test_laplacian::test_cosine_similarity_based_construction ... ok
[INFO] [stdout] test tests::test_laplacian::test_eps_parameter_constraint ... ok
[INFO] [stdout] test tests::test_laplacian::test_insufficient_data_panics - should panic ... ok
[INFO] [stdout] test tests::test_laplacian::test_k_parameter_constraint ... ok
[INFO] [stdout] test tests::test_laplacian::test_laplacian_mathematical_properties ... ok
[INFO] [stdout] test tests::test_laplacian::test_numerical_stability ... ok
[INFO] [stdout] test tests::test_laplacian::test_optimized_sparse_matrix_laplacian ... ok
[INFO] [stdout] test tests::test_laplacian::test_with_adjacency_output ... ok
[INFO] [stdout] test tests::test_laplacian_unnormalised::test_builder_graph_params_preservation ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_with_different_dimensions ... ok
[INFO] [stdout] test tests::test_laplacian_unnormalised::test_builder_normalized_vs_unnormalized_clustering ... ok
[INFO] [stdout] test tests::test_laplacian_unnormalised::test_cosine_similarity_scale_invariance ... ok
[INFO] [stdout] test tests::test_laplacian_unnormalised::test_hybrid_similarity_components ... ok
[INFO] [stdout] test tests::test_laplacian_unnormalised::test_hybrid_similarity_scale_sensitivity ... ok
[INFO] [stdout] test tests::test_laplacian_unnormalised::test_magnitude_penalty_computation ... ok
[INFO] [stdout] test tests::test_laplacian_unnormalised::test_builder_lambda_comparison_normalized_vs_unnormalized ... ok
[INFO] [stdout] test tests::test_motives::test_motives_basic ... ok
[INFO] [stdout] test tests::test_laplacian_unnormalised::test_with_deterministic_clustering ... ok
[INFO] [stdout] test tests::test_motives::test_motives_basic_2 ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_with_high_noise ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_dimensionality_reduction ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_spectral_laplacian_shape ... ok
[INFO] [stdout] test tests::test_motives::test_motives_energy_basic ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_vs_standard_search_overlap ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_basic_clustering_with_synthetic_data ... ok
[INFO] [stdout] test tests::test_querying_proj::test_project_query_different_queries_differ ... ok
[INFO] [stdout] test tests::test_motives::test_motives_eigen_vs_energy_consistency ... ok
[INFO] [stdout] test tests::test_querying_proj::test_prepare_query_item_consistency ... ok
[INFO] [stdout] test tests::test_querying_proj::test_project_query_consistency ... ok
[INFO] [stdout] test tests::test_querying_proj::test_project_query_linearity ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_with_inline_sampling has been running for over 60 seconds
[INFO] [stdout] test tests::test_querying_proj::test_project_query_no_projection ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_vs_standard_build_time ... ok
[INFO] [stdout] test tests::test_querying_proj::test_project_query_zero_vector ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_vs_standard_graph_structure ... ok
[INFO] [stdout] test tests::test_querying_proj::test_lambda_values_reasonable_range ... ok
[INFO] [stdout] test tests::test_querying_proj::test_range_search_with_query_lambda ... ok
[INFO] [stdout] test tests::test_querying_proj::test_query_with_nan_values - should panic ... ok
[INFO] [stdout] test tests::test_querying_proj::test_project_query_preserves_scale_approximately ... ok
[INFO] [stdout] test tests::test_reduction::test_full_pipeline_implicit_projection ... ok
[INFO] [stdout] test tests::test_reduction::test_implicit_projection_creates ... ok
[INFO] [stdout] test tests::test_reduction::test_implicit_projection_deterministic ... ok
[INFO] [stdout] test tests::test_reduction::test_implicit_projection_different_seeds ... ok
[INFO] [stdout] test tests::test_reduction::test_implicit_projection_dimensions ... ok
[INFO] [stdout] test tests::test_querying_proj::test_search_returns_top_k_exactly ... ok
[INFO] [stdout] test tests::test_reduction::test_implicit_projection_linearity ... ok
[INFO] [stdout] test tests::test_reduction::test_implicit_projection_non_trivial ... ok
[INFO] [stdout] test tests::test_reduction::test_implicit_projection_zero_vector ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_basic ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_edge_case_small_epsilon ... ok
[INFO] [stdout] test tests::test_reduction::test_implicit_projection_preserves_scale ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_grows_with_n ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_inversely_proportional_epsilon ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_large_dataset ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_minimum_bound ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_reasonable_range ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_tight_epsilon ... ok
[INFO] [stdout] test tests::test_reduction::test_jl_dimension_formula_correctness ... ok
[INFO] [stdout] test tests::test_reduction::test_memory_efficiency ... ok
[INFO] [stdout] test tests::test_reduction::test_project_matrix_dimensions ... ok
[INFO] [stdout] test tests::test_reduction::test_project_matrix_preserves_rows ... ok
[INFO] [stdout] test tests::test_reduction::test_project_matrix_zero_matrix ... ok
[INFO] [stdout] test tests::test_sparsification::test_sfgrass_basic ... ok
[INFO] [stdout] test tests::test_sparsification::test_sfgrass_larger ... ok
[INFO] [stdout] test tests::test_sparsification::test_sfgrass_vs_no_sparsification ... ignored, depends on number of nodes
[INFO] [stdout] test tests::test_reduction::test_project_matrix_different_rows_different_projections ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_vs_standard_recall_at_k ... ok
[INFO] [stdout] test tests::test_energy_builder::test_energy_build_with_optical_compression ... ok
[INFO] [stdout] test tests::test_taumode::test_builder_lambdas_consistency_properties ... ok
[INFO] [stdout] test tests::test_querying_proj::test_search_lambda_aware_hybrid ... ok
[INFO] [stdout] test tests::test_graph_factory::test_builder_normalization_effects ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_vs_energy_extra_dims_reduction_recall_at_k ... FAILED
[INFO] [stdout] test tests::test_querying_proj::test_search_lambda_aware_alpha_effect ... ok
[INFO] [stdout] test tests::test_taumode::test_rayleigh_quotient_scale_invariance ... ok
[INFO] [stdout] test tests::test_taumode::test_select_tau_fixed ... ok
[INFO] [stdout] test tests::test_taumode::test_select_tau_floor_enforcement ... ok
[INFO] [stdout] test tests::test_taumode::test_select_tau_mean ... ok
[INFO] [stdout] test tests::test_taumode::test_select_tau_median ... ok
[INFO] [stdout] test tests::test_taumode::test_select_tau_percentile ... ok
[INFO] [stdout] test tests::test_taumode::test_tau_floor_constant ... ok
[INFO] [stdout] test tests::test_taumode::test_energy_dimension_consistency ... ok
[INFO] [stdout] test tests::test_taumode::test_energy_lambda_computation_bounds ... ok
[INFO] [stdout] test tests::test_querying_proj::test_query_without_projection ... ok
[INFO] [stdout] test tests::test_querying_proj::test_project_query_preserves_dot_product_sign ... ok
[INFO] [stdout] test tests::test_querying_proj::test_query_dimension_mismatch_panics - should panic ... ok
[INFO] [stdout] test tests::test_taumode::test_builder_compute_lambdas_basic ... ok
[INFO] [stdout] test tests::test_taumode::test_taumode_consistency_with_projection ... ok
[INFO] [stdout] test tests::test_taumode::test_taumode_energy_consistency_with_projection ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_vs_standard_lambda_distribution ... ok
[INFO] [stdout] test tests::test_arrow::test_builder_with_inline_sampling ... ok
[INFO] [stdout] test tests::test_taumode::test_builder_lambdas_invariants ... ok
[INFO] [stdout] test tests::test_querying_proj::test_query_with_projection_enabled ... ok
[INFO] [stdout] test tests::test_querying_proj::test_projection_preserves_relative_distances ... ok
[INFO] [stdout] test tests::test_energy_search::test_energy_vs_standard_precision_at_k ... ok
[INFO] [stdout] test tests::test_taumode::test_builder_lambdas_different_tau_modes ... ok
[INFO] [stdout] test tests::test_taumode::test_builder_lambdas_nondeterministic_with_projection ... ok
[INFO] [stdout] test tests::test_taumode::test_builder_lambdas_with_larger_dataset ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_energy_search::test_energy_vs_energy_extra_dims_reduction_recall_at_k stdout ----
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::tests::test_energy_search] Test: energy vs energy (with vs without extra dims reduction) recall@k
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::builder] Initializing new ArrowSpaceBuilder
[INFO] [stdout] [2025-11-08T12:38:19Z DEBUG arrowspace::builder] Creating ArrowSpaceBuilder with default parameters
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::builder] Configuring lambda graph: eps=0.8, k=3, p=2, sigma=None
[INFO] [stdout] [2025-11-08T12:38:19Z DEBUG arrowspace::builder] Lambda graph will use raw item magnitudes for normalization
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::builder] Setting custom clustering seed: 333
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::builder] Configuring inline sampling: None
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::energymaps] Creating adaptive EnergyParams from ArrowSpaceBuilder
[INFO] [stdout] [2025-11-08T12:38:19Z WARN  arrowspace::energymaps] Using dim-reduction heuristic: optical_tokens=200 (consider setting expected_nitems for better scaling)
[INFO] [stdout] [2025-11-08T12:38:19Z DEBUG arrowspace::energymaps] Adaptive params: neighbor_k=15, candidate_m=45, optical_tokens=Some(200)
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::eigenmaps] EigenMaps::start_clustering: N=78 items, F=100 features
[INFO] [stdout] [2025-11-08T12:38:19Z DEBUG arrowspace::eigenmaps] Creating ArrowSpace with taumode: Median
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::sampling] Simple random sampler with keep rate 100.0%
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::eigenmaps] Computing optimal clustering parameters
[INFO] [stdout] [2025-11-08T12:38:19Z INFO  arrowspace::clustering] Computing optimal K for clustering: N=78, F=100
[INFO] [stdout] [2025-11-08T12:38:19Z DEBUG arrowspace::clustering] Two-NN mean ratio: 1.0263, estimated ID: 39
[INFO] [stdout] [2025-11-08T12:38:19Z DEBUG arrowspace::clustering] Intrinsic dimension estimate: 39
[INFO] [stdout] [2025-11-08T12:38:19Z DEBUG arrowspace::clustering] Testing K in range [3, 7] with step 1
[INFO] [stdout] [2025-11-08T12:38:20Z DEBUG arrowspace::clustering] Best K=3 with penalized score=-9.2674
[INFO] [stdout] [2025-11-08T12:38:21Z DEBUG arrowspace::clustering] Standard threshold: radius=7373.836370
[INFO] [stdout] [2025-11-08T12:38:21Z DEBUG arrowspace::eigenmaps] Optimal clustering: K=3, radius=7373.836370, intrinsic_dim=39
[INFO] [stdout] [2025-11-08T12:38:21Z INFO  arrowspace::eigenmaps] Running incremental clustering: max_clusters=3, radius=7373.836370
[INFO] [stdout] [2025-11-08T12:38:21Z INFO  arrowspace::clustering] Starting incremental clustering with inline sampling
[INFO] [stdout] [2025-11-08T12:38:21Z DEBUG arrowspace::clustering] Parameters: max_clusters=3, radius=7373.8364
[INFO] [stdout] [2025-11-08T12:38:21Z DEBUG arrowspace::clustering] Clustering produced 3 centroids from 78 rows (100% sampling)
[INFO] [stdout] [2025-11-08T12:38:21Z INFO  arrowspace::eigenmaps] Clustering complete: 3 centroids, 78 items assigned
[INFO] [stdout] [2025-11-08T12:38:21Z DEBUG arrowspace::reduction] Computing JL optimal dimensions for n_points 3
[INFO] [stdout] [2025-11-08T12:38:21Z INFO  arrowspace::eigenmaps] Applying JL projection: 100 features → 50 dimensions (ε=0.20)
[INFO] [stdout] [2025-11-08T12:38:21Z DEBUG arrowspace::reduction] Computing project matrix for projection ImplicitProjection { original_dim: 100, reduced_dim: 50, seed: 15689501766983180316 }
[INFO] [stdout] [2025-11-08T12:38:24Z INFO  arrowspace::eigenmaps] Projection complete: 2.0x compression, stored as 8-byte seed
[INFO] [stdout] [2025-11-08T12:38:24Z INFO  arrowspace::energymaps] EnergyMaps::optical_compress_centroids: target=200 tokens, trim_q=0.10
[INFO] [stdout] [2025-11-08T12:38:24Z DEBUG arrowspace::energymaps] Input centroids: 3 × 50 (X centroids, F features)
[INFO] [stdout] [2025-11-08T12:38:24Z INFO  arrowspace::energymaps] Optical compression skipped: budget 200 >= centroids 3
[INFO] [stdout] [2025-11-08T12:38:24Z INFO  arrowspace::energymaps] EnergyMaps::bootstrap_centroid_laplacian: k=3, normalise=false
[INFO] [stdout] [2025-11-08T12:38:24Z DEBUG arrowspace::energymaps] Building bootstrap L₀ on 3 centroids (nodes) × 50 features
[INFO] [stdout] [2025-11-08T12:38:24Z INFO  arrowspace::laplacian] Building Laplacian matrix for 3 items with 50 features
[INFO] [stdout] [2025-11-08T12:38:24Z DEBUG arrowspace::laplacian] Graph parameters: eps=0.8, k=2, p=2, sigma=None, normalise=false
[INFO] [stdout] [2025-11-08T12:38:24Z DEBUG arrowspace::laplacian] Skipping normalization - using raw item magnitudes
[INFO] [stdout] [2025-11-08T12:38:24Z INFO  arrowspace::laplacian] Building CosinePair data structure
[INFO] [stdout] [2025-11-08T12:38:24Z DEBUG arrowspace::laplacian] CosinePair structure built for 50 items
[INFO] [stdout] [2025-11-08T12:38:24Z INFO  arrowspace::laplacian] Computing degrees for inline sparsification
[INFO] [stdout] [2025-11-08T12:38:25Z DEBUG arrowspace::laplacian] Skipping sparsification (avg degree 1.3)
[INFO] [stdout] [2025-11-08T12:38:25Z INFO  arrowspace::laplacian] Computing k-NN with CosinePair: k=3
[INFO] [stdout] [2025-11-08T12:38:25Z DEBUG arrowspace::laplacian] Built adjacency rows for 50 items
[INFO] [stdout] [2025-11-08T12:38:25Z INFO  arrowspace::laplacian] Converting adjacency to sparse Laplacian matrix (DashMap batched)
[INFO] [stdout] [2025-11-08T12:38:25Z DEBUG arrowspace::laplacian] Total triplets: 170, edges: 60
[INFO] [stdout] [2025-11-08T12:38:25Z DEBUG arrowspace::laplacian] Inserted triplets in 17.07µs
[INFO] [stdout] [2025-11-08T12:38:25Z INFO  arrowspace::laplacian] Sparse Laplacian construction time: 755.51µs
[INFO] [stdout] [2025-11-08T12:38:25Z INFO  arrowspace::laplacian] Total Laplacian construction time: 773.572212ms
[INFO] [stdout] [2025-11-08T12:38:25Z INFO  arrowspace::laplacian] Successfully built sparse Laplacian matrix (3x3) with 170 non-zeros
[INFO] [stdout] [2025-11-08T12:38:25Z INFO  arrowspace::energymaps] EnergyMaps::diffuse_and_split_subcentroids: eta=0.100, steps=4, split_q=0.90
[INFO] [stdout] [2025-11-08T12:38:25Z DEBUG arrowspace::energymaps] Diffusing 3 centroids × 50 features over 4 steps with F×F Laplacian (50×50)
[INFO] [stdout] [2025-11-08T12:38:25Z DEBUG arrowspace::energymaps] Diffusion complete after 4 steps
[INFO] [stdout] [2025-11-08T12:38:25Z DEBUG arrowspace::energymaps] Laplacian: 50×50 (must be F×F feature-space)
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Energy and dispersion computed for 3 nodes [parallel]
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Energy: λ ∈ [0.242009, 0.462143], mean=0.374905
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Dispersion: G ∈ [0.039613, 0.050556], mean=0.043452
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Split threshold (quantile 0.90): G ≥ 0.050556
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Computed 1 splits [parallel]
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::energymaps] Sub-centroid generation: 3 → 5 centroids (1 splits)
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::energymaps] Energy graph: (3, 50) centroids → (5, 50) sub_centroids (reduced_dim=50)
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::energymaps] EnergyMaps::build_energy_laplacian: k=3, w_λ=1.00, w_G=0.50, w_D=0.25
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Building energy Laplacian on 5 sub-centroids × 50 features
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::energymaps] EnergyMaps::bootstrap_centroid_laplacian: k=3, normalise=false
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Building bootstrap L₀ on 5 centroids (nodes) × 50 features
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::laplacian] Building Laplacian matrix for 5 items with 50 features
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::laplacian] Graph parameters: eps=0.8, k=3, p=2, sigma=None, normalise=false
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::laplacian] Skipping normalization - using raw item magnitudes
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::laplacian] Building CosinePair data structure
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::laplacian] CosinePair structure built for 50 items
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::laplacian] Computing degrees for inline sparsification
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::laplacian] Skipping sparsification (avg degree 1.6)
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::laplacian] Computing k-NN with CosinePair: k=4
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::laplacian] Built adjacency rows for 50 items
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::laplacian] Converting adjacency to sparse Laplacian matrix (DashMap batched)
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::laplacian] Total triplets: 204, edges: 77
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::laplacian] Inserted triplets in 14.529µs
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::laplacian] Sparse Laplacian construction time: 738.84µs
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::laplacian] Total Laplacian construction time: 195.721378ms
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::laplacian] Successfully built sparse Laplacian matrix (5x5) with 204 non-zeros
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Bootstrap Laplacian: 50×50 (F×F feature-space for taumode)
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Laplacian: 50×50 (must be F×F feature-space)
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Energy and dispersion computed for 5 nodes [parallel]
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::energymaps] Robust scales: λ=0.216540, G=0.003173
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::graph] Matrix has 204 non-zero entries
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::energymaps] Energy Laplacian (F×F): 50×50, 204 nnz, 91.84% sparse
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::core] Creating subcentroid ArrowSpace from DenseMatrix(5, 50)
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::core] → Interpreted as: 5 subcentroids × 50 features (row-major)
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::energymaps] Computing lambdas on 5 sub_centroids...
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ╔═════════════════════════════════════════════════════════════╗
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║          Parallel TauMode Lambda Computation                ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ╠═════════════════════════════════════════════════════════════╣
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║ Configuration:                                              ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Items:           5                                        ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Features:        50                                       ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Threads:         16                                       ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   TauMode:         Median                                   ║
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::taumode] compute_taumode_lambdas_parallel: NO signals
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Graph Source:    Laplacian Matrix                         ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Graph Shape:     50×50                                   ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Graph NNZ:       204                                      ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Graph Sparsity:  0.081600                                 ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ╚═════════════════════════════════════════════════════════════╝
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] Starting parallel lambda computation...
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ╔═════════════════════════════════════════════════════════════╗
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║          Computation Statistics                             ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ╠═════════════════════════════════════════════════════════════╣
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Sequential Items: 0                                       ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Parallel Items:   0                                       ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Compute Time:     307.185ms                               ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::core] Updating lambdas with 5 new values
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::core] Normalized lambdas to [0, 1] range (original spread: 0.005754)
[INFO] [stdout] [2025-11-08T12:38:27Z DEBUG arrowspace::core] Lambda update: old range [0.000000, 0.000000] -> new range [0.000000, 1.000000]
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Update Time:      100.360µs                               ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Total Time:       308.133ms                               ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Throughput:       16                                      items/sec ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ╠═════════════════════════════════════════════════════════════╣
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║          Lambda Statistics                                  ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ╠═════════════════════════════════════════════════════════════╣
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Min:              0.000000                                ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Max:              1.000000                                ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Mean:             0.459645                                ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Std Dev:          0.328678                                ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ║   Range:            1.000000                                ║
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ╚═════════════════════════════════════════════════════════════╝
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::taumode] ✓ Parallel taumode lambda computation completed successfully
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::energymaps] Sub_centroid λ: min=0.000000, max=1.000000, mean=0.459645
[INFO] [stdout] [2025-11-08T12:38:27Z INFO  arrowspace::energymaps] Mapping 78 items to (5, 50) sub_centroids and computing norms...
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::energymaps] Item λ assigned: min=0.000000, max=1.000000, mean=0.483711
[INFO] [stdout] [2025-11-08T12:38:33Z DEBUG arrowspace::energymaps] Item norms computed: min=4.266663, max=83.856355, mean=19.600294
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::builder] Initializing new ArrowSpaceBuilder
[INFO] [stdout] [2025-11-08T12:38:33Z DEBUG arrowspace::builder] Creating ArrowSpaceBuilder with default parameters
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::builder] Configuring lambda graph: eps=0.8, k=3, p=2, sigma=None
[INFO] [stdout] [2025-11-08T12:38:33Z DEBUG arrowspace::builder] Lambda graph will use raw item magnitudes for normalization
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::builder] Setting custom clustering seed: 333
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::builder] Configuring inline sampling: None
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::energymaps] Creating adaptive EnergyParams from ArrowSpaceBuilder
[INFO] [stdout] [2025-11-08T12:38:33Z WARN  arrowspace::energymaps] Using dim-reduction heuristic: optical_tokens=200 (consider setting expected_nitems for better scaling)
[INFO] [stdout] [2025-11-08T12:38:33Z DEBUG arrowspace::energymaps] Adaptive params: neighbor_k=15, candidate_m=45, optical_tokens=Some(200)
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::eigenmaps] EigenMaps::start_clustering: N=78 items, F=100 features
[INFO] [stdout] [2025-11-08T12:38:33Z DEBUG arrowspace::eigenmaps] Creating ArrowSpace with taumode: Median
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::sampling] Simple random sampler with keep rate 100.0%
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::eigenmaps] Computing optimal clustering parameters
[INFO] [stdout] [2025-11-08T12:38:33Z INFO  arrowspace::clustering] Computing optimal K for clustering: N=78, F=100
[INFO] [stdout] [2025-11-08T12:38:42Z DEBUG arrowspace::clustering] Two-NN mean ratio: 1.0263, estimated ID: 39
[INFO] [stdout] [2025-11-08T12:38:42Z DEBUG arrowspace::clustering] Intrinsic dimension estimate: 39
[INFO] [stdout] [2025-11-08T12:38:54Z DEBUG arrowspace::clustering] Testing K in range [3, 7] with step 1
[INFO] [stdout] [2025-11-08T12:38:55Z DEBUG arrowspace::clustering] Best K=3 with penalized score=-9.2674
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::clustering] Standard threshold: radius=7373.836370
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::eigenmaps] Optimal clustering: K=3, radius=7373.836370, intrinsic_dim=39
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::eigenmaps] Running incremental clustering: max_clusters=3, radius=7373.836370
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::clustering] Starting incremental clustering with inline sampling
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::clustering] Parameters: max_clusters=3, radius=7373.8364
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::clustering] Clustering produced 3 centroids from 78 rows (100% sampling)
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::eigenmaps] Clustering complete: 3 centroids, 78 items assigned
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::reduction] Computing JL optimal dimensions for n_points 3
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::eigenmaps] Applying JL projection: 100 features → 50 dimensions (ε=0.20)
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::reduction] Computing project matrix for projection ImplicitProjection { original_dim: 100, reduced_dim: 50, seed: 14222082434629658877 }
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::eigenmaps] Projection complete: 2.0x compression, stored as 8-byte seed
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::energymaps] EnergyMaps::optical_compress_centroids: target=200 tokens, trim_q=0.10
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::energymaps] Input centroids: 3 × 50 (X centroids, F features)
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::energymaps] Optical compression skipped: budget 200 >= centroids 3
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::energymaps] EnergyMaps::bootstrap_centroid_laplacian: k=3, normalise=false
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::energymaps] Building bootstrap L₀ on 3 centroids (nodes) × 50 features
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::laplacian] Building Laplacian matrix for 3 items with 50 features
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::laplacian] Graph parameters: eps=0.8, k=2, p=2, sigma=None, normalise=false
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::laplacian] Skipping normalization - using raw item magnitudes
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::laplacian] Building CosinePair data structure
[INFO] [stdout] [2025-11-08T12:38:56Z DEBUG arrowspace::laplacian] CosinePair structure built for 50 items
[INFO] [stdout] [2025-11-08T12:38:56Z INFO  arrowspace::laplacian] Computing degrees for inline sparsification
[INFO] [stdout] [2025-11-08T12:38:57Z DEBUG arrowspace::laplacian] Skipping sparsification (avg degree 1.2)
[INFO] [stdout] [2025-11-08T12:38:57Z INFO  arrowspace::laplacian] Computing k-NN with CosinePair: k=3
[INFO] [stdout] [2025-11-08T12:38:58Z DEBUG arrowspace::laplacian] Built adjacency rows for 50 items
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Converting adjacency to sparse Laplacian matrix (DashMap batched)
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] Total triplets: 170, edges: 60
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] Inserted triplets in 17.73µs
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Sparse Laplacian construction time: 13.96248ms
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Total Laplacian construction time: 4.356453546s
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Successfully built sparse Laplacian matrix (3x3) with 170 non-zeros
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] EnergyMaps::diffuse_and_split_subcentroids: eta=0.100, steps=4, split_q=0.90
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Diffusing 3 centroids × 50 features over 4 steps with F×F Laplacian (50×50)
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Diffusion complete after 4 steps
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Laplacian: 50×50 (must be F×F feature-space)
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Energy and dispersion computed for 3 nodes [parallel]
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Energy: λ ∈ [0.571583, 0.652904], mean=0.601843
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Dispersion: G ∈ [0.034680, 0.067277], mean=0.054825
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Split threshold (quantile 0.90): G ≥ 0.067277
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Computed 1 splits [parallel]
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] Sub-centroid generation: 3 → 5 centroids (1 splits)
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] Energy graph: (3, 50) centroids → (5, 50) sub_centroids (reduced_dim=50)
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] EnergyMaps::build_energy_laplacian: k=3, w_λ=1.00, w_G=0.50, w_D=0.25
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Building energy Laplacian on 5 sub-centroids × 50 features
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] EnergyMaps::bootstrap_centroid_laplacian: k=3, normalise=false
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Building bootstrap L₀ on 5 centroids (nodes) × 50 features
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Building Laplacian matrix for 5 items with 50 features
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] Graph parameters: eps=0.8, k=3, p=2, sigma=None, normalise=false
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] Skipping normalization - using raw item magnitudes
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Building CosinePair data structure
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] CosinePair structure built for 50 items
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Computing degrees for inline sparsification
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] Skipping sparsification (avg degree 1.7)
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Computing k-NN with CosinePair: k=4
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] Built adjacency rows for 50 items
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Converting adjacency to sparse Laplacian matrix (DashMap batched)
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] Total triplets: 212, edges: 81
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::laplacian] Inserted triplets in 15.431µs
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Sparse Laplacian construction time: 854.531µs
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Total Laplacian construction time: 34.73756ms
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::laplacian] Successfully built sparse Laplacian matrix (5x5) with 212 non-zeros
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Bootstrap Laplacian: 50×50 (F×F feature-space for taumode)
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Laplacian: 50×50 (must be F×F feature-space)
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Energy and dispersion computed for 5 nodes [parallel]
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::energymaps] Robust scales: λ=0.149851, G=0.010950
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::graph] Matrix has 212 non-zero entries
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] Energy Laplacian (F×F): 50×50, 212 nnz, 91.52% sparse
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::core] Creating subcentroid ArrowSpace from DenseMatrix(5, 50)
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::core] → Interpreted as: 5 subcentroids × 50 features (row-major)
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] Computing lambdas on 5 sub_centroids...
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ╔═════════════════════════════════════════════════════════════╗
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║          Parallel TauMode Lambda Computation                ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ╠═════════════════════════════════════════════════════════════╣
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║ Configuration:                                              ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Items:           5                                        ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Features:        50                                       ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Threads:         16                                       ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   TauMode:         Median                                   ║
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::taumode] compute_taumode_lambdas_parallel: NO signals
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Graph Source:    Laplacian Matrix                         ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Graph Shape:     50×50                                   ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Graph NNZ:       212                                      ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Graph Sparsity:  0.084800                                 ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ╚═════════════════════════════════════════════════════════════╝
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] Starting parallel lambda computation...
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ╔═════════════════════════════════════════════════════════════╗
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║          Computation Statistics                             ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ╠═════════════════════════════════════════════════════════════╣
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Sequential Items: 0                                       ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Parallel Items:   0                                       ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Compute Time:     20.071ms                                ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::core] Updating lambdas with 5 new values
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::core] Normalized lambdas to [0, 1] range (original spread: 0.681189)
[INFO] [stdout] [2025-11-08T12:39:00Z DEBUG arrowspace::core] Lambda update: old range [0.000000, 0.000000] -> new range [0.000000, 1.000000]
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Update Time:      111.510µs                               ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Total Time:       21.102ms                                ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Throughput:       237                                     items/sec ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ╠═════════════════════════════════════════════════════════════╣
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║          Lambda Statistics                                  ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ╠═════════════════════════════════════════════════════════════╣
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Min:              0.000000                                ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Max:              1.000000                                ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Mean:             0.540257                                ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Std Dev:          0.447539                                ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ║   Range:            1.000000                                ║
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ╚═════════════════════════════════════════════════════════════╝
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::taumode] ✓ Parallel taumode lambda computation completed successfully
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] Sub_centroid λ: min=0.000000, max=1.000000, mean=0.540257
[INFO] [stdout] [2025-11-08T12:39:00Z INFO  arrowspace::energymaps] Mapping 78 items to (5, 50) sub_centroids and computing norms...
[INFO] [stdout] [2025-11-08T12:39:07Z INFO  arrowspace::energymaps] Item λ assigned: min=0.000000, max=0.960717, mean=0.333572
[INFO] [stdout] [2025-11-08T12:39:07Z DEBUG arrowspace::energymaps] Item norms computed: min=4.266663, max=83.856355, mean=19.600294
[INFO] [stdout] [2025-11-08T12:39:07Z DEBUG arrowspace::core] Query mapped to subcentroid 0/5 with λ=0.471830 (dist=41.8861)
[INFO] [stdout] [2025-11-08T12:39:07Z DEBUG arrowspace::core] Query mapped to subcentroid 0/5 with λ=0.960717 (dist=36.9620)
[INFO] [stdout] [2025-11-08T12:39:07Z DEBUG arrowspace::tests::test_energy_search] Results (base energy):  [(0, 4.8512416306323306e-20), (27, 7.980481042072161e-10), (32, 8.587058505825286e-10), (67, 8.644750580846882e-10), (41, 8.6661838210895e-10), (12, 8.685672197170408e-10), (43, 8.836667621239229e-10), (39, 8.879293704352321e-10), (49, 8.946747394664675e-10), (59, 9.007601632546156e-10), (36, 9.06502113315587e-10), (34, 9.106971278474641e-10), (31, 9.110617749824672e-10), (29, 9.119989478296838e-10), (5, 9.314133172557374e-10), (42, 9.349022468294962e-10), (14, 9.37206513466822e-10), (28, 9.386375310604176e-10), (76, 9.390731097784241e-10), (65, 9.415916426725491e-10)]
[INFO] [stdout] [2025-11-08T12:39:07Z DEBUG arrowspace::tests::test_energy_search] Results (extra energy): [(0, 4.8512416306323306e-20), (32, 8.587058505825286e-10), (41, 8.6661838210895e-10), (49, 8.946747394664675e-10), (59, 9.007601632546156e-10), (34, 9.106971278474641e-10), (5, 9.314133172557374e-10), (42, 9.349022468294962e-10), (14, 9.37206513466822e-10), (76, 9.390731097784241e-10), (9, 9.615333466643467e-10), (55, 9.689440621177173e-10), (11, 1.0084210076587272e-9), (35, 1.0147916967469866e-9), (77, 1.0175502994658092e-9), (44, 1.0276784404965391e-9), (40, 1.034295247497126e-9), (19, 1.0354835432480778e-9), (22, 1.0509473346996906e-9), (53, 1.0588130170187654e-9)]
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::test_energy_search::test_energy_vs_energy_extra_dims_reduction_recall_at_k' (135) panicked at src/tests/test_energy_search.rs:916:5:
[INFO] [stdout] Recall between energy (extra vs base) too low: 0.50
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x61434d09ff52 - std::backtrace_rs::backtrace::libunwind::trace::h16affffe904e891e
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x61434d09ff52 - std::backtrace_rs::backtrace::trace_unsynchronized::h5c14b13373ed4150
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x61434d09ff52 - std::sys::backtrace::_print_fmt::hcbb507f162c816cc
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x61434d09ff52 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h8be9aa933f14675f
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x61434d0b1c3f - core::fmt::rt::Argument::fmt::h30ed739d33467c3a
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x61434d0b1c3f - core::fmt::write::hfd0efbb002ac7eea
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x61434d06bf23 - std::io::default_write_fmt::hd6d24501f2d7f8d3
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x61434d06bf23 - std::io::Write::write_fmt::h79eca2f72fc24111
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x61434d077da2 - std::sys::backtrace::BacktraceLock::print::hf2554f6030d393f7
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x61434d07ca1f - std::panicking::default_hook::{{closure}}::h8873121c56335b01
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x61434d07c8b1 - std::panicking::default_hook::hbafefc2d196267a2
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x61434cf62bce - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::ha834d5846f91b30b
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x61434cf62bce - test::test_main_with_exit_callback::{{closure}}::h63c167737eecb025
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x61434d07d0df - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hbf9b0f7a281291fd
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x61434d07d0df - std::panicking::panic_with_hook::h9f5b09d5adc1a745
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x61434d07ce8a - std::panicking::panic_handler::{{closure}}::h08111e483bdf6a89
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x61434d077ed9 - std::sys::backtrace::__rust_end_short_backtrace::h1b86e3414ecbbe8d
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x61434d0606dd - __rustc[b292c645e8102103]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x61434d0ba850 - core::panicking::panic_fmt::h31cc490ecc8cc1fa
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x61434cbb5d6a - arrowspace::tests::test_energy_search::test_energy_vs_energy_extra_dims_reduction_recall_at_k::h6c06d6cc0c7f1476
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests/test_energy_search.rs:916:5
[INFO] [stdout]   20:     0x61434cbb6207 - arrowspace::tests::test_energy_search::test_energy_vs_energy_extra_dims_reduction_recall_at_k::{{closure}}::h659a17260ad0442c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests/test_energy_search.rs:848:60
[INFO] [stdout]   21:     0x61434ca69ad6 - core::ops::function::FnOnce::call_once::h485c171be54ebc27
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x61434cf629cb - core::ops::function::FnOnce::call_once::h2b2de5fdd23aab3e
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x61434cf629cb - test::__rust_begin_short_backtrace::he551dd004770be01
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x61434cf76a2d - test::run_test_in_process::{{closure}}::h5f0b44080a35ed87
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x61434cf76a2d - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4dbf65d14893ecf5
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x61434cf76a2d - std::panicking::catch_unwind::do_call::hc37c563b8a006285
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:590:40
[INFO] [stdout]   27:     0x61434cf76a2d - std::panicking::catch_unwind::h616b6e2e7a27f612
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:553:19
[INFO] [stdout]   28:     0x61434cf76a2d - std::panic::catch_unwind::h1e788dd57758e6d8
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x61434cf76a2d - test::run_test_in_process::hf073c2764f29f8ad
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x61434cf76a2d - test::run_test::{{closure}}::h3dc46b7a0c340fa6
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x61434cf4ff74 - test::run_test::{{closure}}::h6a4da3c57ef4505f
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x61434cf4ff74 - std::sys::backtrace::__rust_begin_short_backtrace::hfd8e44bc311a5d57
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   33:     0x61434cf537ca - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h57c4ddec344fe24c
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   34:     0x61434cf537ca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd7cbe09591f06dfb
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x61434cf537ca - std::panicking::catch_unwind::do_call::hdcd076e8e993dfbc
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:590:40
[INFO] [stdout]   36:     0x61434cf537ca - std::panicking::catch_unwind::h8f9f675f3756eab1
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panicking.rs:553:19
[INFO] [stdout]   37:     0x61434cf537ca - std::panic::catch_unwind::he8f74a93abeceb9b
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x61434cf537ca - std::thread::Builder::spawn_unchecked_::{{closure}}::he43db13a2caa41d5
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   39:     0x61434cf537ca - core::ops::function::FnOnce::call_once{{vtable.shim}}::h8f3531a7e0d83514
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x61434d0732df - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6ff05134d80ef20e
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   41:     0x61434d0732df - std::sys::thread::unix::Thread::new::thread_start::h9a4a41a076a486e0
[INFO] [stdout]                                at /rustc/9f93af291970322f4f1c6315ccde4d7078201159/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   42:     0x71aebe2abaa4 - <unknown>
[INFO] [stdout]   43:     0x71aebe338a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::test_energy_search::test_energy_vs_energy_extra_dims_reduction_recall_at_k
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 193 passed; 1 failed; 4 ignored; 0 measured; 0 filtered out; finished in 95.63s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "8a97e800d253bf2a66593705a99967dad06e212ee1f312ef8a6321f7fff1139b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a97e800d253bf2a66593705a99967dad06e212ee1f312ef8a6321f7fff1139b", kill_on_drop: false }`
[INFO] [stdout] 8a97e800d253bf2a66593705a99967dad06e212ee1f312ef8a6321f7fff1139b
