[INFO] fetching crate ritk-statistics 0.4.0...
[INFO] testing ritk-statistics-0.4.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate ritk-statistics 0.4.0 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate ritk-statistics 0.4.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate ritk-statistics 0.4.0
[INFO] tweaked toml for crates.io crate ritk-statistics 0.4.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate ritk-statistics 0.4.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ritk-statistics 0.4.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded mnemosyne-memory v0.7.0
[INFO] [stderr]   Downloaded ritk-spatial v0.2.0
[INFO] [stderr]   Downloaded mnemosyne-decay v0.3.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.127
[INFO] [stderr]   Downloaded mnemosyne-build-util v0.2.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.127
[INFO] [stderr]   Downloaded ritk-tensor-ops v0.2.0
[INFO] [stderr]   Downloaded mnemosyne-prof v0.2.0
[INFO] [stderr]   Downloaded mnemosyne-backend v0.5.0
[INFO] [stderr]   Downloaded mnemosyne-memory-core v0.2.0
[INFO] [stderr]   Downloaded mnemosyne-arena v0.4.0
[INFO] [stderr]   Downloaded themis-topology v0.10.1
[INFO] [stderr]   Downloaded uuid v1.24.0
[INFO] [stderr]   Downloaded eunomia v0.8.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.127
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.127
[INFO] [stderr]   Downloaded mnemosyne-local v0.4.0
[INFO] [stderr]   Downloaded leto v0.42.0
[INFO] [stderr]   Downloaded js-sys v0.3.104
[INFO] [stderr]   Downloaded melinoe v0.9.0
[INFO] [stderr]   Downloaded syn v3.0.3
[INFO] [stderr]   Downloaded rkyv v0.8.18
[INFO] [stderr]   Downloaded futures-macro v0.3.34
[INFO] [stderr]   Downloaded rancor v0.1.3
[INFO] [stderr]   Downloaded munge v0.4.7
[INFO] [stderr]   Downloaded rend v0.5.4
[INFO] [stderr]   Downloaded ptr_meta v0.3.2
[INFO] [stderr]   Downloaded bytecheck v0.8.3
[INFO] [stderr]   Downloaded bytecheck_derive v0.8.3
[INFO] [stderr]   Downloaded ptr_meta_derive v0.3.2
[INFO] [stderr]   Downloaded munge_macro v0.4.7
[INFO] [stderr]   Downloaded rkyv_derive v0.8.18
[INFO] [stderr]   Downloaded tinyvec v1.12.0
[INFO] [stderr]   Downloaded libm v0.2.16
[INFO] [stderr]   Downloaded futures v0.3.34
[INFO] [stderr]   Downloaded hermit-abi v0.5.2
[INFO] [stderr]   Downloaded ritk-wgpu-compat v0.2.0
[INFO] [stderr]   Downloaded coeus-sparse v0.10.0
[INFO] [stderr]   Downloaded moirai-async v0.5.0
[INFO] [stderr]   Downloaded windows-implement v0.58.0
[INFO] [stderr]   Downloaded cpufeatures v0.3.0
[INFO] [stderr]   Downloaded apollo-leto-interop v0.18.0
[INFO] [stderr]   Downloaded num_cpus v1.17.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.77
[INFO] [stderr]   Downloaded moirai-async-macros v0.5.0
[INFO] [stderr]   Downloaded hermes-simd-macros v0.6.0
[INFO] [stderr]   Downloaded moirai-utils v0.5.0
[INFO] [stderr]   Downloaded hermes-simd-types v0.6.0
[INFO] [stderr]   Downloaded windows-strings v0.1.0
[INFO] [stderr]   Downloaded windows-result v0.2.0
[INFO] [stderr]   Downloaded windows-interface v0.58.0
[INFO] [stderr]   Downloaded moirai-parallel v0.5.0
[INFO] [stderr]   Downloaded bytemuck_derive v1.12.0
[INFO] [stderr]   Downloaded ritk-image v0.3.0
[INFO] [stderr]   Downloaded rand_chacha v0.9.0
[INFO] [stderr]   Downloaded smallvec v1.15.2
[INFO] [stderr]   Downloaded moirai-sync v0.5.0
[INFO] [stderr]   Downloaded apollo-fft-macros v0.2.0
[INFO] [stderr]   Downloaded moirai-scheduler v0.5.0
[INFO] [stderr]   Downloaded futures-executor v0.3.34
[INFO] [stderr]   Downloaded coeus-optim v0.10.0
[INFO] [stderr]   Downloaded windows-core v0.58.0
[INFO] [stderr]   Downloaded moirai-transport v0.5.0
[INFO] [stderr]   Downloaded mnemosyne-heap v0.4.0
[INFO] [stderr]   Downloaded aequitas v0.2.0
[INFO] [stderr]   Downloaded rand_core v0.9.5
[INFO] [stderr]   Downloaded coeus-leto v0.10.0
[INFO] [stderr]   Downloaded chacha20 v0.10.1
[INFO] [stderr]   Downloaded bytemuck v1.25.2
[INFO] [stderr]   Downloaded bitflags v2.13.1
[INFO] [stderr]   Downloaded coeus-tensor v0.10.0
[INFO] [stderr]   Downloaded half v2.7.1
[INFO] [stderr]   Downloaded coeus-core v0.10.0
[INFO] [stderr]   Downloaded moirai-pal v0.5.0
[INFO] [stderr]   Downloaded moirai-iter v0.5.0
[INFO] [stderr]   Downloaded rand v0.9.5
[INFO] [stderr]   Downloaded hermes-simd-intrinsics v0.6.0
[INFO] [stderr]   Downloaded moirai-core v0.5.0
[INFO] [stderr]   Downloaded moirai-executor v0.5.0
[INFO] [stderr]   Downloaded wit-bindgen v0.57.1
[INFO] [stderr]   Downloaded rand v0.10.2
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.56
[INFO] [stderr]   Downloaded hermes-simd-core v0.6.0
[INFO] [stderr]   Downloaded hermes-simd v0.6.0
[INFO] [stderr]   Downloaded coeus-ops v0.10.0
[INFO] [stderr]   Downloaded coeus-autograd v0.10.0
[INFO] [stderr]   Downloaded wasip2 v1.0.4+wasi-0.2.12
[INFO] [stderr]   Downloaded moirai-runtime v0.5.0
[INFO] [stderr]   Downloaded coeus-nn v0.10.0
[INFO] [stderr]   Downloaded zerocopy v0.8.56
[INFO] [stderr]   Downloaded apollo-fft v0.26.0
[INFO] [stderr]   Downloaded leto-ops v0.42.0
[INFO] [stderr]   Downloaded web-sys v0.3.104
[INFO] [stderr]   Downloaded windows v0.58.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326
[INFO] running `Command { std: "docker" "start" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling simdutf8 v0.1.5
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling mnemosyne-build-util v0.2.0
[INFO] [stderr]    Compiling melinoe v0.9.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling themis-topology v0.10.1
[INFO] [stderr]    Compiling mnemosyne-memory-core v0.2.0
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling rustc-demangle v0.1.28
[INFO] [stderr]    Compiling moirai-utils v0.5.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling moirai-pal v0.5.0
[INFO] [stderr]    Compiling mnemosyne-prof v0.2.0
[INFO] [stderr]    Compiling mnemosyne-local v0.4.0
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling moirai-executor v0.5.0
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling futures-io v0.3.34
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling mnemosyne-backend v0.5.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling rustc-hash v2.1.3
[INFO] [stderr]    Compiling chacha20 v0.10.1
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling ritk-wgpu-compat v0.2.0
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling munge_macro v0.4.7
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling moirai-async-macros v0.5.0
[INFO] [stderr]    Compiling hermes-simd-macros v0.6.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]    Compiling apollo-fft-macros v0.2.0
[INFO] [stderr]    Compiling ptr_meta_derive v0.3.2
[INFO] [stderr]    Compiling bytecheck_derive v0.8.3
[INFO] [stderr]    Compiling rkyv_derive v0.8.18
[INFO] [stderr]    Compiling bytemuck_derive v1.12.0
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling munge v0.4.7
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling ptr_meta v0.3.2
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling rancor v0.1.3
[INFO] [stderr]    Compiling bytecheck v0.8.3
[INFO] [stderr]    Compiling rend v0.5.4
[INFO] [stderr]    Compiling bytemuck v1.25.2
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling rkyv v0.8.18
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling eunomia v0.8.0
[INFO] [stderr]    Compiling mnemosyne-arena v0.4.0
[INFO] [stderr]    Compiling aequitas v0.2.0
[INFO] [stderr]    Compiling mnemosyne-decay v0.3.0
[INFO] [stderr]    Compiling mnemosyne-heap v0.4.0
[INFO] [stderr]    Compiling mnemosyne-memory v0.7.0
[INFO] [stderr]    Compiling moirai-core v0.5.0
[INFO] [stderr]    Compiling hermes-simd-core v0.6.0
[INFO] [stderr]    Compiling leto v0.42.0
[INFO] [stderr]    Compiling moirai-scheduler v0.5.0
[INFO] [stderr]    Compiling moirai-sync v0.5.0
[INFO] [stderr]    Compiling moirai-transport v0.5.0
[INFO] [stderr]    Compiling moirai-async v0.5.0
[INFO] [stderr]    Compiling moirai-parallel v0.5.0
[INFO] [stderr]    Compiling moirai-iter v0.5.0
[INFO] [stderr]    Compiling hermes-simd-intrinsics v0.6.0
[INFO] [stderr]    Compiling apollo-leto-interop v0.18.0
[INFO] [stderr]    Compiling ritk-spatial v0.2.0
[INFO] [stderr]    Compiling moirai-runtime v0.5.0
[INFO] [stderr]    Compiling hermes-simd-types v0.6.0
[INFO] [stderr]    Compiling hermes-simd v0.6.0
[INFO] [stderr]    Compiling coeus-core v0.10.0
[INFO] [stderr]    Compiling leto-ops v0.42.0
[INFO] [stderr]    Compiling apollo-fft v0.26.0
[INFO] [stderr]    Compiling coeus-leto v0.10.0
[INFO] [stderr]    Compiling coeus-tensor v0.10.0
[INFO] [stderr]    Compiling coeus-sparse v0.10.0
[INFO] [stderr]    Compiling coeus-ops v0.10.0
[INFO] [stderr]    Compiling coeus-autograd v0.10.0
[INFO] [stderr]    Compiling coeus-optim v0.10.0
[INFO] [stderr]    Compiling coeus-nn v0.10.0
[INFO] [stderr]    Compiling ritk-image v0.3.0
[INFO] [stderr]    Compiling ritk-tensor-ops v0.2.0
[INFO] [stderr]    Compiling ritk-statistics v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.31s
[INFO] running `Command { std: "docker" "inspect" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling ritk-statistics v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.10s
[INFO] running `Command { std: "docker" "inspect" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ritk_statistics-eb01a78355f862b4)
[INFO] [stdout] 
[INFO] [stdout] running 341 tests
[INFO] [stdout] test histogram::tests::histogram_3d_single_bin_collects_all_in_range ... ok
[INFO] [stdout] test histogram::tests::histogram_3d_values_outside_range_excluded ... ok
[INFO] [stdout] test histogram::tests::histogram_handles_finite_bounds_whose_f32_span_overflows ... ok
[INFO] [stdout] test histogram::tests::histogram_3d_last_bin_inclusive_of_max ... ok
[INFO] [stdout] test histogram::tests::histogram_3d_negative_range ... ok
[INFO] [stdout] test histogram::tests::histogram_3d_uniform_distribution ... ok
[INFO] [stdout] test histogram::tests::histogram_min_greater_than_max_returns_typed_error ... ok
[INFO] [stdout] test histogram::tests::histogram_3d_constant_at_max_lands_in_last_bin ... ok
[INFO] [stdout] test histogram::tests::histogram_3d_constant_at_min_lands_in_bin_zero ... ok
[INFO] [stdout] test histogram::tests::histogram_min_equal_max_returns_typed_error ... ok
[INFO] [stdout] test histogram::tests::histogram_bin_width_is_correct ... ok
[INFO] [stdout] test histogram::tests::histogram_1d_constant_lands_in_first_bin ... ok
[INFO] [stdout] test histogram::tests::histogram_rejects_non_finite_bounds ... ok
[INFO] [stdout] test histogram::tests::histogram_rejects_non_finite_sample_before_binning ... ok
[INFO] [stdout] test histogram::tests::histogram_reports_unallocatable_count_buffer ... ok
[INFO] [stdout] test histogram::tests::histogram_zero_bins_returns_typed_error ... ok
[INFO] [stdout] test histogram::tests::histogram_works_on_1d_image ... ok
[INFO] [stdout] test image_comparison::tests::native::similarity_index_matches_coeus_exactly ... ok
[INFO] [stdout] test image_comparison::tests::native::ssim_identical_is_one ... ok
[INFO] [stdout] test image_comparison::tests::native::ssim_matches_coeus_exactly ... ok
[INFO] [stdout] test histogram::tests::histogram_total_equals_in_range_voxel_count ... ok
[INFO] [stdout] test image_comparison::tests::native::dice_known_half_overlap ... ok
[INFO] [stdout] test image_comparison::tests::native::dice_identical_masks_is_one ... ok
[INFO] [stdout] test image_comparison::tests::overlap::native_dice_known_overlap_matches_binary_formula ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_dice_2d_known_overlap ... ok
[INFO] [stdout] test image_comparison::tests::native::mean_surface_distance_matches_coeus_exactly ... ok
[INFO] [stdout] test image_comparison::tests::native::psnr_identical_is_infinity ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_dice_both_empty_returns_one ... ok
[INFO] [stdout] test image_comparison::tests::native::dice_length_mismatch_errors ... ok
[INFO] [stdout] test image_comparison::tests::native::dice_matches_coeus ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_dice_symmetry ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_dice_known_overlap_half ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_similarity_index_both_empty_is_zero ... ok
[INFO] [stdout] test histogram::tests::histogram_rejects_empty_input ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_dice_disjoint_masks_is_zero ... ok
[INFO] [stdout] test image_comparison::tests::native::hausdorff_identical_is_zero ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_dice_identical_masks_is_one ... ok
[INFO] [stdout] test image_comparison::tests::native::dice_both_empty_is_one ... ok
[INFO] [stdout] test image_comparison::tests::quality::native_psnr_known_value_matches_formula ... ok
[INFO] [stdout] test image_comparison::tests::native::psnr_known_value ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_similarity_index_binarizes_multivalued_labels ... ok
[INFO] [stdout] test image_comparison::tests::quality::test_psnr_known_value ... ok
[INFO] [stdout] test image_comparison::tests::quality::native_ssim_identical_images_is_one ... ok
[INFO] [stdout] test image_comparison::tests::quality::pearson_correlation_constant_inputs_are_zero ... ok
[INFO] [stdout] test image_comparison::tests::overlap::test_dice_one_empty_one_nonempty_is_zero ... ok
[INFO] [stdout] test image_comparison::tests::quality::test_psnr_identical_images_is_infinity ... ok
[INFO] [stdout] test image_comparison::tests::quality::pearson_correlation_rejects_invalid_shapes ... ok
[INFO] [stdout] test image_comparison::tests::surface::native_msd_known_value_matches_surface_kernel ... ok
[INFO] [stdout] test image_comparison::tests::quality::test_ssim_symmetry ... ok
[INFO] [stdout] test image_comparison::tests::quality::test_psnr_symmetry ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_flat_to_coords_round_trip ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_euclidean_distance_known ... ok
[INFO] [stdout] test image_comparison::tests::surface::native_hausdorff_known_value_matches_surface_kernel ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_hausdorff_identical_masks_is_zero ... ok
[INFO] [stdout] test image_comparison::tests::native::psnr_matches_coeus ... ok
[INFO] [stdout] test image_comparison::tests::quality::test_psnr_larger_error_lower_value ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_hausdorff_1d_known_value ... ok
[INFO] [stdout] test image_comparison::tests::quality::test_ssim_identical_images_is_one ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_hausdorff_symmetry ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_min_distance_to_empty_set_is_infinity ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_hausdorff_scales_with_spacing ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_hausdorff_both_empty_is_zero ... ok
[INFO] [stdout] test image_comparison::tests::quality::test_ssim_constant_identical_is_one ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_directed_hausdorff_empty_from_is_zero ... ok
[INFO] [stdout] test image_comparison::tests::quality::test_ssim_negated_image_is_low ... ok
[INFO] [stdout] test image_comparison::tests::native::hausdorff_matches_coeus_exactly ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_msd_identical_masks_is_zero ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_msd_1d_known_value ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_msd_both_empty_is_zero ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_strides_volumetric ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_msd_symmetry ... ok
[INFO] [stdout] test image_statistics::tests::ddof_must_leave_a_positive_divisor ... ok
[INFO] [stdout] test image_statistics::tests::masked_slice_rejects_non_finite_mask_sample ... ok
[INFO] [stdout] test image_statistics::tests::empty_slice_returns_typed_error ... ok
[INFO] [stdout] test image_statistics::tests::non_finite_sample_reports_its_index ... ok
[INFO] [stdout] test image_statistics::tests::sample_standard_deviation_uses_n_minus_ddof ... ok
[INFO] [stdout] test image_statistics::tests::test_known_sequence ... ok
[INFO] [stdout] test image_comparison::tests::surface::test_msd_leq_hausdorff ... ok
[INFO] [stdout] test image_statistics::tests::test_masked_shape_mismatch_returns_shape_mismatch_error ... ok
[INFO] [stdout] test image_statistics::tests::test_masked_single_foreground_voxel ... ok
[INFO] [stdout] test image_statistics::tests::test_native_image_preserves_values_through_from_flat ... ok
[INFO] [stdout] test image_statistics::tests::test_masked_all_foreground_matches_unmasked ... ok
[INFO] [stdout] test information::tests::entropy::joint_entropy_n_rejects_empty_channels ... ok
[INFO] [stdout] test information::tests::entropy::joint_entropy_n_rejects_excessive_size ... ok
[INFO] [stdout] test image_statistics::tests::test_reverse_order_input_matches_sorted ... ok
[INFO] [stdout] test image_statistics::tests::test_single_voxel ... ok
[INFO] [stdout] test information::tests::entropy::marginal_entropy_rejects_one_bin ... ok
[INFO] [stdout] test information::tests::entropy::marginal_entropy_constant_is_zero ... ok
[INFO] [stdout] test information::tests::entropy::marginal_entropy_uniform_eight_values_equals_ln8 ... ok
[INFO] [stdout] test image_statistics::tests::test_slice_input_preserves_input_order ... ok
[INFO] [stdout] test information::tests::entropy::joint_entropy_rejects_length_mismatch ... ok
[INFO] [stdout] test information::tests::entropy::marginal_entropy_rejects_empty ... ok
[INFO] [stdout] test image_statistics::tests::test_two_values ... ok
[INFO] [stdout] test information::tests::mi::cmi_constant_z_equals_mi ... ok
[INFO] [stdout] test image_statistics::tests::test_uniform_image ... ok
[INFO] [stdout] test information::tests::entropy::joint_entropy_identical_channels_equals_marginal ... ok
[INFO] [stdout] test information::tests::mi::cmi_knowing_z_equal_to_y_is_zero ... ok
[INFO] [stdout] test information::tests::mi::cmi_rejects_empty ... ok
[INFO] [stdout] test information::tests::entropy::joint_entropy_independent_channels_near_sum_of_marginals ... ok
[INFO] [stdout] test information::tests::entropy::joint_entropy_n_single_channel_equals_marginal ... ok
[INFO] [stdout] test information::tests::mi::ii_rejects_length_mismatch ... ok
[INFO] [stdout] test image_statistics::tests::test_masked_empty_mask_returns_empty_foreground_error ... ok
[INFO] [stdout] test histogram::tests::histogram_values_outside_range_yield_zero_counts ... ok
[INFO] [stdout] test image_statistics::tests::test_masked_subset ... ok
[INFO] [stdout] test information::tests::mi::mi_is_symmetric ... ok
[INFO] [stdout] test information::tests::mi::mi_is_non_negative ... ok
[INFO] [stdout] test information::tests::mi::mi_mattes_constant_channel_is_zero ... ok
[INFO] [stdout] test information::tests::mi::mi_mattes_non_negative ... ok
[INFO] [stdout] test information::tests::mi::mi_mattes_rejects_length_mismatch ... ok
[INFO] [stdout] test information::tests::mi::cmi_rejects_length_mismatch ... ok
[INFO] [stdout] test information::tests::mi::nmi_at_least_one ... ok
[INFO] [stdout] test information::tests::mi::mi_mattes_identical_positive ... ok
[INFO] [stdout] test information::tests::mi::cmi_is_non_negative ... ok
[INFO] [stdout] test information::tests::mi::nmi_identical_non_constant_is_two ... ok
[INFO] [stdout] test information::tests::mi::ii_matches_formula_mi_minus_cmi ... ok
[INFO] [stdout] test information::tests::mi::su_identical_non_constant_is_one ... ok
[INFO] [stdout] test information::tests::mi::nmi_at_most_two ... ok
[INFO] [stdout] test information::tests::mi::ii_constant_z_gives_zero ... ok
[INFO] [stdout] test information::tests::mi::nmi_constant_channel_returns_one ... ok
[INFO] [stdout] test information::tests::mi::ii_rejects_empty ... ok
[INFO] [stdout] test information::tests::mi::mi_identical_equals_marginal_entropy ... ok
[INFO] [stdout] test information::tests::o_info::dtc_four_channels_non_negative ... ok
[INFO] [stdout] test information::tests::mi::su_in_zero_one ... ok
[INFO] [stdout] test information::tests::mi::mi_rejects_empty ... ok
[INFO] [stdout] test information::tests::o_info::dtc_rejects_empty_channels ... ok
[INFO] [stdout] test information::tests::mi::ii_identical_triple_is_positive ... ok
[INFO] [stdout] test information::tests::o_info::dtc_independent_channels_near_zero ... ok
[INFO] [stdout] test information::tests::mi::mi_rejects_length_mismatch ... ok
[INFO] [stdout] test information::tests::mi::mi_bounded_above_by_min_marginals ... ok
[INFO] [stdout] test information::tests::o_info::dtc_two_identical_channels_equals_tc ... ok
[INFO] [stdout] test information::tests::o_info::oi_direct_matches_via_tc_dtc ... ok
[INFO] [stdout] test information::tests::mi::su_constant_channels_returns_zero ... ok
[INFO] [stdout] test information::tests::o_info::oi_identical_triple_is_non_negative ... ok
[INFO] [stdout] test information::tests::tc::tc_is_non_negative ... ok
[INFO] [stdout] test information::tests::tc::tc_rejects_empty_channels ... ok
[INFO] [stdout] test information::tests::o_info::oi_three_channel_matches_interaction_information ... ok
[INFO] [stdout] test information::tests::o_info::oi_two_channels_is_zero ... ok
[INFO] [stdout] test information::tests::o_info::dtc_is_non_negative ... ok
[INFO] [stdout] test information::tests::tc::tc_independent_channels_near_zero ... ok
[INFO] [stdout] test information::tests::tc::tc_rejects_excessive_histogram_size ... ok
[INFO] [stdout] test information::tests::o_info::oi_four_identical_channels_is_positive ... ok
[INFO] [stdout] test information::tests::o_info::dtc_n4_independent_near_zero ... ok
[INFO] [stdout] test information::tests::o_info::dtc_rejects_single_channel ... ok
[INFO] [stdout] test information::tests::o_info::oi_four_independent_channels_near_zero ... ok
[INFO] [stdout] test information::tests::o_info::oi_direct_matches_for_n4 ... ok
[INFO] [stdout] test information::tests::o_info::oi_from_tc_dtc_matches_direct ... ok
[INFO] [stdout] test information::tests::tc::tc_single_channel_is_zero ... ok
[INFO] [stdout] test information::tests::o_info::oi_rejects_single_channel ... ok
[INFO] [stdout] test information::tests::tc::tc_three_channels_at_least_two_channel_tc ... ok
[INFO] [stdout] test information::tests::vi::vi_identical_is_zero ... ok
[INFO] [stdout] test information::tests::o_info::dtc_two_channels_equals_mutual_information ... ok
[INFO] [stdout] test information::tests::vi::vi_against_constant_equals_marginal_entropy ... ok
[INFO] [stdout] test information::tests::vi::vi_bounded_above_by_sum_of_marginals ... ok
[INFO] [stdout] test information::tests::vi::vi_is_symmetric ... ok
[INFO] [stdout] test information::tests::vi::vi_rejects_empty ... ok
[INFO] [stdout] test information::tests::vi::vi_rejects_length_mismatch ... ok
[INFO] [stdout] test jacobian::tests::output_shape_matches_input ... ok
[INFO] [stdout] test information::tests::vi::mvi_identical_channels_is_zero ... ok
[INFO] [stdout] test jacobian::tests::analyze_jacobian_returns_correct_stats_for_identity ... ok
[INFO] [stdout] test information::tests::vi::mvi_is_non_negative ... ok
[INFO] [stdout] test information::tests::vi::mvi_rejects_empty_channels ... ok
[INFO] [stdout] test information::tests::vi::mvi_rejects_length_mismatch ... ok
[INFO] [stdout] test jacobian::tests::uniform_expansion_gives_correct_determinant ... ok
[INFO] [stdout] test jacobian::tests::analyze_jacobian_zero_field ... ok
[INFO] [stdout] test jacobian::tests::identity_field_gives_determinant_one ... ok
[INFO] [stdout] test label_statistics::tests::test_two_labels_independent_statistics ... ok
[INFO] [stdout] test information::tests::tc::tc_two_identical_channels_equals_mutual_information ... ok
[INFO] [stdout] test information::tests::vi::vi_is_non_negative ... ok
[INFO] [stdout] test label_statistics::tests::test_background_label_zero_excluded ... ok
[INFO] [stdout] test label_statistics::tests::test_single_label_single_voxel ... ok
[INFO] [stdout] test label_statistics::tests::test_uniform_intensity_within_label ... ok
[INFO] [stdout] test noise_estimation::tests::native_mad_matches_slice_contract ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_constant_image_returns_zero ... ok
[INFO] [stdout] test label_statistics::tests::test_single_label_known_statistics ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_from_slice_preserves_caller_order ... ok
[INFO] [stdout] test information::tests::vi::mvi_two_channels_equals_bivariate_vi ... ok
[INFO] [stdout] test label_statistics::tests::test_compute_from_image_api_matches_slice_api ... ok
[INFO] [stdout] test noise_estimation::tests::test_median_sorted_even ... ok
[INFO] [stdout] test noise_estimation::tests::test_median_sorted_odd ... ok
[INFO] [stdout] test noise_estimation::tests::test_median_sorted_single ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::native_histogram_match_maps_endpoints_and_preserves_source_geometry ... ok
[INFO] [stdout] test label_statistics::tests::test_results_sorted_by_label ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_constant_source_returns_unchanged ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_default_uses_256_bins ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_masked_subset_selection ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_single_voxel_returns_zero ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_two_voxels_known_value ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_masked_agrees_with_unmasked_for_all_ones_mask ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_lut_endpoints_clamp_correctly ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_masked_empty_foreground_returns_zero ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_output_shape_matches_source ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_single_source_voxel_does_not_panic ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_match_shifts_mean_toward_reference ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_preserves_spatial_metadata ... ok
[INFO] [stdout] test normalization::intensity_range::tests::test_new_equal_bounds_returns_some ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_monotone_output_for_monotone_input ... ok
[INFO] [stdout] test normalization::intensity_range::tests::test_new_inverted_bounds_returns_none ... ok
[INFO] [stdout] test normalization::intensity_range::tests::test_new_valid_range_returns_some ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_self_match_is_approximately_identity ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_self_match_preserves_unsorted_source_order ... ok
[INFO] [stdout] test normalization::intensity_range::tests::test_display_format ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_single_reference_voxel ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_constant_image_does_not_panic ... ok
[INFO] [stdout] test normalization::intensity_range::tests::test_span_equals_max_minus_min ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_min_is_zero_after_normalization ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_constant_image_custom_range_maps_to_target_min ... ok
[INFO] [stdout] test normalization::minmax::tests::native_minmax_maps_endpoints_and_preserves_metadata ... ok
[INFO] [stdout] test normalization::minmax::tests::test_default_is_unit_range ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_3d_shape_preserved ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_preserves_metadata ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_known_values_unit_range ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_ordering_preserved ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_with_positive_shift ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::native_nyul_training_and_apply_preserve_values_and_geometry ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_with_custom_range ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_apply_preserves_original_voxel_order_after_landmark_sort ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_negative_input_values ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_custom_percentiles ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_default_percentiles ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_constant_image_maps_to_constant ... ok
[INFO] [stdout] test normalization::histogram_matching::tests_histogram_matching::test_output_values_bounded_by_reference_range ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_default_trait_matches_new ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_learn_and_apply_single_image_roundtrip ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_max_is_one_after_normalization ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_percentile_median ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_percentile_min_and_max ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_learn_from_multiple_images_averages_landmarks ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_percentile_interpolation ... ok
[INFO] [stdout] test normalization::minmax::tests::test_minmax_single_voxel ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_piecewise_identity_mapping ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_piecewise_midpoint ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_preserves_spatial_metadata ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_standardize_two_different_ranges_converge ... ok
[INFO] [stdout] test normalization::tests_native::histogram_matching_constant_source_unchanged ... ok
[INFO] [stdout] test normalization::tests_native::histogram_matching_matches_sequential ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_piecewise_clamp_above ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_percentile_single_element ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_piecewise_clamp_below ... ok
[INFO] [stdout] test normalization::tests_native::minmax_custom_range_matches_sequential ... ok
[INFO] [stdout] test normalization::tests_native::minmax_known_unit_range ... ok
[INFO] [stdout] test normalization::tests_native::zscore_masked_matches_sequential ... ok
[INFO] [stdout] test normalization::tests_native::zscore_matches_sequential ... ok
[INFO] [stdout] test normalization::tests_native::zscore_ramp_has_zero_mean_unit_variance ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::native_white_stripe_preserves_geometry_and_reports_diagnostics ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_gaussian_noise_estimate_within_tolerance ... ok
[INFO] [stdout] test normalization::tests_native::white_stripe_matches_sequential ... ok
[INFO] [stdout] test label_statistics::tests::test_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test information::tests::vi::mvi_rejects_single_channel ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::test_preserves_spatial_metadata ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::test_mask_restricts_foreground ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::test_default_config_non_degenerate ... ok
[INFO] [stdout] test noise_estimation::tests::test_mad_masked_shape_mismatch_panics - should panic ... ok
[INFO] [stdout] test label_statistics::tests::test_shape_mismatch_panics - should panic ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_with_percentiles_too_few_panics - should panic ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_learn_standard_empty_images_panics - should panic ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_apply_before_learn_returns_error ... ok
[INFO] [stdout] test normalization::tests_native::nyul_udupa_apply_before_learn_errors ... ok
[INFO] [stdout] test normalization::nyul_udupa::tests_nyul_udupa::test_with_percentiles_not_ascending_panics - should panic ... ok
[INFO] [stdout] test normalization::tests_native::nyul_udupa_matches_sequential ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::internals::test_empirical_cdf_rank_basic ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::internals::test_find_mode_in_range_basic ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::internals::test_quantile_sorted_basic ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::internals::test_quantile_sorted_single ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::internals::test_silverman_bandwidth_constant_data ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::internals::test_silverman_bandwidth_positive ... ok
[INFO] [stdout] test normalization::zscore::tests::native_zscore_uses_population_statistics_and_preserves_metadata ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_constant_image_does_not_panic ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_masked_empty_mask_returns_typed_error ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_masked_preserves_metadata ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_masked_uses_mask_statistics ... ok
[INFO] [stdout] test position_extrema::tests::maximum_position_1d_tie_breaks_to_lowest_index ... ok
[INFO] [stdout] test position_extrema::tests::maximum_position_1d_unique ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_unit_variance ... ok
[INFO] [stdout] test position_extrema::tests::maximum_position_3d_simple ... ok
[INFO] [stdout] test position_extrema::tests::maximum_position_3d_single_voxel ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_1d_at_index_zero ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_zero_mean ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_1d_tie_breaks_to_lowest_index ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_3d_constant ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_3d_first_voxel ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_1d_unique ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_3d_last_voxel ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_3d_negative_values ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_3d_simple ... ok
[INFO] [stdout] test tests_label_overlap::test_dice_known_value ... ok
[INFO] [stdout] test tests_label_overlap::test_disjoint_single_label ... ok
[INFO] [stdout] test tests_label_overlap::test_gt_empty_pred_nonempty ... ok
[INFO] [stdout] test tests_label_overlap::test_large_uniform_perfect_overlap ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_preserves_metadata ... ok
[INFO] [stdout] test position_extrema::tests::minimum_position_3d_tie_breaks_to_lowest_flat ... ok
[INFO] [stdout] test tests_label_overlap::test_perfect_overlap_single_label ... ok
[INFO] [stdout] test tests_label_overlap::test_results_sorted_by_label ... ok
[INFO] [stdout] test tests_label_overlap::test_sensitivity_known_value ... ok
[INFO] [stdout] test tests_label_overlap::test_specificity_zero_when_all_foreground ... ok
[INFO] [stdout] test tests_label_overlap::test_two_labels_independent ... ok
[INFO] [stdout] test tests_label_overlap::test_background_only_returns_empty ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_negative_values_preserved_sign ... ok
[INFO] [stdout] test tests_label_shape_extended::empty_image_returns_empty ... ok
[INFO] [stdout] test tests_label_shape_extended::line_component_is_highly_elongated ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_single_voxel ... ok
[INFO] [stdout] test tests_label_overlap::test_pred_empty_gt_nonempty ... ok
[INFO] [stdout] test tests_label_shape_extended::anisotropic_spacing_affects_moments ... ok
[INFO] [stdout] test tests_label_shape_extended::line_feret_diameter ... ok
[INFO] [stdout] test normalization::zscore::tests::test_zscore_known_values ... ok
[INFO] [stdout] test position_extrema::tests::flat_to_multi_round_trip ... ok
[INFO] [stdout] test tests_label_shape_extended::single_voxel_feret_is_zero ... ok
[INFO] [stdout] test tests_label_shape_extended::multiple_labels_sorted ... ok
[INFO] [stdout] test tests_label_shape_extended::single_voxel_perimeter_matches_itk ... ok
[INFO] [stdout] test tests_label_shape_extended::single_voxel_roundness_matches_itk ... ok
[INFO] [stdout] test tests_label_shape_extended::solid_block_is_roughly_spherical ... ok
[INFO] [stdout] test tests_label_shape_extended::solid_block_perimeter_matches_itk ... ok
[INFO] [stdout] test tests_label_shape_extended::solid_block_roundness_matches_itk ... ok
[INFO] [stdout] test tests_label_shape_extended::symmetric_pair_centroid ... ok
[INFO] [stdout] test tests_label_shape_extended::single_voxel_centroid ... ok
[INFO] [stdout] test tests_label_overlap::test_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test tests_label_shape_extended::non_contiguous_image_reports_host_access_failure ... ok
[INFO] [stdout] test value_indices::tests::f32_key_bit_equality ... ok
[INFO] [stdout] test value_indices::tests::value_indices_1d_basic ... ok
[INFO] [stdout] test value_indices::tests::value_indices_2d_ignore_value ... ok
[INFO] [stdout] test value_indices::tests::value_indices_1d_ignore_value ... ok
[INFO] [stdout] test value_indices::tests::value_indices_2d_docstring_example ... ok
[INFO] [stdout] test value_indices::tests::value_indices_3d_ignore_value_excludes_voxels ... ok
[INFO] [stdout] test value_indices::tests::flat_to_multi_round_trip_3d ... ok
[INFO] [stdout] test value_indices::tests::value_indices_3d_single_voxel ... ok
[INFO] [stdout] test value_indices::tests::value_indices_3d_total_equals_n_minus_ignored_count ... ok
[INFO] [stdout] test value_indices::tests::value_indices_3d_total_equals_voxel_count_without_ignore ... ok
[INFO] [stdout] test value_indices::tests::value_indices_3d_two_corner_voxels_and_center ... ok
[INFO] [stdout] test value_indices::tests::value_indices_3d_row_major_ordering ... ok
[INFO] [stdout] test value_indices::tests::value_indices_3d_ignore_value_not_present ... ok
[INFO] [stdout] test value_indices::tests::value_indices_1d_constant ... ok
[INFO] [stdout] test value_indices::tests::value_indices_1d_single_voxel ... ok
[INFO] [stdout] test value_indices::tests::value_indices_3d_all_same_value ... ok
[INFO] [stdout] test tests_label_overlap::test_volume_similarity_known_value ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::test_t2_contrast_wm_peak_lower_range ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::test_normalized_white_stripe_mean_zero_std_one ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::test_trimodal_t1_wm_peak_detection ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::test_explicit_bandwidth ... ok
[INFO] [stdout] test normalization::white_stripe::tests_white_stripe::behavior::test_uniform_image_sigma_near_zero ... ok
[INFO] [stdout] test image_comparison::tests::quality::pearson_correlation_parallel_affine_contracts ... ok
[INFO] [stdout] test image_statistics::tests::test_large_n_negative_mean_precision ... ok
[INFO] [stdout] test image_statistics::tests::test_large_n_ct_scale_mean_precision ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 341 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ritk_statistics
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test src/histogram.rs - histogram::histogram (line 88) ... ignored
[INFO] [stdout] test src/value_indices/compute.rs - value_indices::compute::value_indices (line 26) ... ignored
[INFO] [stdout] test src/normalization/intensity_range.rs - normalization::intensity_range::IntensityRange (line 11) ... ok
[INFO] [stdout] test src/position_extrema.rs - position_extrema::minimum_position (line 38) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.97s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326", kill_on_drop: false }`
[INFO] [stdout] d42c4a01ce8a45a55d3441cc5b066350a3917fa2a6a590197159c34f189be326
