[INFO] fetching crate oximedia-simd 0.1.5...
[INFO] testing oximedia-simd-0.1.5 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate oximedia-simd 0.1.5 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate oximedia-simd 0.1.5
[INFO] finished tweaking crates.io crate oximedia-simd 0.1.5
[INFO] tweaked toml for crates.io crate oximedia-simd 0.1.5 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate oximedia-simd 0.1.5 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oximedia-simd 0.1.5 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4489bc97afb39d9c952e06cb5fc3be9d85f104164b269d1f888bdaf682e7b918
[INFO] running `Command { std: "docker" "start" "-a" "4489bc97afb39d9c952e06cb5fc3be9d85f104164b269d1f888bdaf682e7b918", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4489bc97afb39d9c952e06cb5fc3be9d85f104164b269d1f888bdaf682e7b918", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4489bc97afb39d9c952e06cb5fc3be9d85f104164b269d1f888bdaf682e7b918", kill_on_drop: false }`
[INFO] [stdout] 4489bc97afb39d9c952e06cb5fc3be9d85f104164b269d1f888bdaf682e7b918
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6aee9aaa1f9e5d0f0673884de3443a953687d479f0fc4685067e75c70eff46c3
[INFO] running `Command { std: "docker" "start" "-a" "6aee9aaa1f9e5d0f0673884de3443a953687d479f0fc4685067e75c70eff46c3", kill_on_drop: false }`
[INFO] [stderr]    Compiling oximedia-simd v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.78s
[INFO] running `Command { std: "docker" "inspect" "6aee9aaa1f9e5d0f0673884de3443a953687d479f0fc4685067e75c70eff46c3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6aee9aaa1f9e5d0f0673884de3443a953687d479f0fc4685067e75c70eff46c3", kill_on_drop: false }`
[INFO] [stdout] 6aee9aaa1f9e5d0f0673884de3443a953687d479f0fc4685067e75c70eff46c3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5b49c24403e85a02198fc712146bba92ffdf5e0f97aed072e4d5bcfd480fd84c
[INFO] running `Command { std: "docker" "start" "-a" "5b49c24403e85a02198fc712146bba92ffdf5e0f97aed072e4d5bcfd480fd84c", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[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 ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling oximedia-simd v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 31.05s
[INFO] running `Command { std: "docker" "inspect" "5b49c24403e85a02198fc712146bba92ffdf5e0f97aed072e4d5bcfd480fd84c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b49c24403e85a02198fc712146bba92ffdf5e0f97aed072e4d5bcfd480fd84c", kill_on_drop: false }`
[INFO] [stdout] 5b49c24403e85a02198fc712146bba92ffdf5e0f97aed072e4d5bcfd480fd84c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 85f2b7045f3d87a31f027edd25374f166cdf13e47c73c68accb248cf0ea64d92
[INFO] running `Command { std: "docker" "start" "-a" "85f2b7045f3d87a31f027edd25374f166cdf13e47c73c68accb248cf0ea64d92", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_simd-d1117a4ac2d1faf6)
[INFO] [stdout] running 870 tests
[INFO] [stdout] test accumulator::tests::empty_stats_range_zero ... ok
[INFO] [stdout] test accumulator::tests::merge_with_empty_other_is_noop ... ok
[INFO] [stdout] test accumulator::tests::merge_two_accumulators ... ok
[INFO] [stdout] test accumulator::tests::merge_into_empty_self_copies ... ok
[INFO] [stdout] test accumulator::tests::known_variance ... ok
[INFO] [stdout] test accumulator::tests::default_is_empty ... ok
[INFO] [stdout] test accumulator::tests::min_max_tracking ... ok
[INFO] [stdout] test accumulator::tests::push_slice_matches_individual_pushes ... ok
[INFO] [stdout] test accumulator::tests::range_equals_max_minus_min ... ok
[INFO] [stdout] test accumulator::tests::reset_clears_state ... ok
[INFO] [stdout] test accumulator::tests::empty_accumulator_zero_count ... ok
[INFO] [stdout] test accumulator::tests::sample_variance_bessel_correction ... ok
[INFO] [stdout] test accumulator::tests::single_sample_mean ... ok
[INFO] [stdout] test accumulator::tests::two_samples_mean ... ok
[INFO] [stdout] test aligned_alloc::tests::as_mut_slice_writes ... ok
[INFO] [stdout] test accumulator::tests::std_dev_non_negative ... ok
[INFO] [stdout] test aligned_alloc::tests::as_ref_as_mut_trait ... ok
[INFO] [stdout] test aligned_alloc::tests::copy_from_slice_too_large ... ok
[INFO] [stdout] test aligned_alloc::tests::copy_from_slice_valid ... ok
[INFO] [stdout] test aligned_alloc::tests::debug_format ... ok
[INFO] [stdout] test aligned_alloc::tests::fill_and_read ... ok
[INFO] [stdout] test aligned_alloc::tests::invalid_alignment_not_power_of_two ... ok
[INFO] [stdout] test aligned_alloc::tests::invalid_alignment_zero ... ok
[INFO] [stdout] test aligned_alloc::tests::large_buffer_alignment ... ok
[INFO] [stdout] test aligned_alloc::tests::multiple_alignments ... ok
[INFO] [stdout] test aligned_alloc::tests::new_avx2_alignment ... ok
[INFO] [stdout] test aligned_alloc::tests::new_avx512_alignment ... ok
[INFO] [stdout] test aligned_alloc::tests::new_neon_alignment ... ok
[INFO] [stdout] test aligned_alloc::tests::zero_initialised ... ok
[INFO] [stdout] test aligned_alloc::tests::zero_length_buffer ... ok
[INFO] [stdout] test alpha_premul::tests::test_premultiply_buffer_basic ... ok
[INFO] [stdout] test alpha_premul::tests::test_premultiply_half_alpha ... ok
[INFO] [stdout] test alpha_premul::tests::test_premultiply_opaque ... ok
[INFO] [stdout] test alpha_premul::tests::test_premultiply_transparent ... ok
[INFO] [stdout] test alpha_premul::tests::test_roundtrip_opaque ... ok
[INFO] [stdout] test alpha_premul::tests::test_stats_max_error ... ok
[INFO] [stdout] test alpha_premul::tests::test_stats_opaque_zero_error ... ok
[INFO] [stdout] test alpha_premul::tests::test_stats_transparent_zero_channels ... ok
[INFO] [stdout] test alpha_premul::tests::test_unpremultiply_buffer_roundtrip ... ok
[INFO] [stdout] test alpha_premul::tests::test_unpremultiply_opaque ... ok
[INFO] [stdout] test alpha_premul::tests::test_unpremultiply_transparent ... ok
[INFO] [stdout] test amx::tests::amx_dot_f32_empty_is_zero ... ok
[INFO] [stdout] test amx::tests::amx_dot_f32_known_value ... ok
[INFO] [stdout] test amx::tests::amx_gemm_buffer_too_small_returns_false ... ok
[INFO] [stdout] test amx::tests::amx_gemm_identity ... ok
[INFO] [stdout] test amx::tests::amx_generation_display ... ok
[INFO] [stdout] test amx::tests::amx_matmul_4x4_identity ... ok
[INFO] [stdout] test amx::tests::amx_matmul_4x4_too_small_returns_none ... ok
[INFO] [stdout] test amx::tests::amx_outer_product_buffer_too_small_returns_false ... ok
[INFO] [stdout] test amx::tests::amx_outer_product_correctness ... ok
[INFO] [stdout] test amx::tests::detect_amx_cached_consistent ... ok
[INFO] [stdout] test amx::tests::detect_amx_does_not_panic ... ok
[INFO] [stdout] test amx::tests::gen1_capability ... ok
[INFO] [stdout] test amx::tests::gen2_capability ... ok
[INFO] [stdout] test amx::tests::gen3_capability ... ok
[INFO] [stdout] test amx::tests::unavailable_has_no_features ... ok
[INFO] [stdout] test audio_ops::tests::test_apply_gain_doubles ... ok
[INFO] [stdout] test audio_ops::tests::test_apply_gain_zero ... ok
[INFO] [stdout] test audio_ops::tests::test_channel_deinterleave_empty ... ok
[INFO] [stdout] test audio_ops::tests::test_channel_interleave_roundtrip ... ok
[INFO] [stdout] test audio_ops::tests::test_compute_rms_constant ... ok
[INFO] [stdout] test audio_ops::tests::test_compute_rms_empty ... ok
[INFO] [stdout] test audio_ops::tests::test_dc_offset_remove ... ok
[INFO] [stdout] test audio_ops::tests::test_find_peak ... ok
[INFO] [stdout] test audio_ops::tests::test_mix_buffers_half_ratio ... ok
[INFO] [stdout] test audio_ops::tests::test_mix_buffers_one_ratio ... ok
[INFO] [stdout] test audio_ops::tests::test_mix_buffers_zero_ratio ... ok
[INFO] [stdout] test audio_ops::tests::test_normalize_all_zeros ... ok
[INFO] [stdout] test audio_ops::tests::test_normalize_basic ... ok
[INFO] [stdout] test audio_ops::tests::test_sample_buffer_frames ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_avx512_available_returns_bool ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_dot_product_avx512_16_elements ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_dot_product_avx512_17_elements ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_dot_product_avx512_basic ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_dot_product_avx512_empty ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_dot_product_avx512_matches_scalar ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_dot_product_avx512_single ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_yuv420_chroma_subsampling ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_yuv420_black_frame ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_yuv420_y_plane_range ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_yuv420_white_frame ... ok
[INFO] [stdout] test avx512::tests::test_bgra_to_rgba_dispatch_single_pixel ... ok
[INFO] [stdout] test avx512::tests::test_bgra_to_rgba_scalar_basic ... ok
[INFO] [stdout] test avx512::tests::test_bgra_to_rgba_scalar_empty ... ok
[INFO] [stdout] test avx512::tests::test_bgra_to_rgba_scalar_multiple_pixels ... ok
[INFO] [stdout] test avx512::tests::test_bgra_to_rgba_scalar_identity_when_b_eq_r ... ok
[INFO] [stdout] test avx512::tests::test_clamp_f32_dispatch_16_elements ... ok
[INFO] [stdout] test avx512::tests::test_clamp_f32_dispatch_empty ... ok
[INFO] [stdout] test avx512::tests::test_clamp_f32_dispatch_matches_scalar ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_yuv420_avx512_matches_scalar ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_yuv420_basic_dimensions ... ok
[INFO] [stdout] test avx512::tests::test_clamp_f32_dispatch_17_elements ... ok
[INFO] [stdout] test avx512::tests::test_bgra_to_rgba_dispatch_17_pixels ... ok
[INFO] [stdout] test avx512::tests::test_bgra_to_rgba_dispatch_matches_scalar ... ok
[INFO] [stdout] test avx512::tests::test_clamp_f32_scalar_already_clamped ... ok
[INFO] [stdout] test avx512::avx512_extended_tests::test_dot_product_avx512_orthogonal ... ok
[INFO] [stdout] test avx512::tests::test_clamp_f32_scalar_basic ... ok
[INFO] [stdout] test avx512::tests::test_clamp_f32_scalar_empty ... ok
[INFO] [stdout] test avx512::tests::test_dot_product_f32_dispatch_16_elements ... ok
[INFO] [stdout] test avx512::tests::test_dot_product_f32_dispatch_empty ... ok
[INFO] [stdout] test avx512::tests::test_dot_product_f32_dispatch_matches_scalar ... ok
[INFO] [stdout] test avx512::tests::test_dot_product_f32_scalar_basic ... ok
[INFO] [stdout] test avx512::tests::test_dot_product_f32_scalar_empty ... ok
[INFO] [stdout] test avx512::tests::test_dot_product_f32_scalar_orthogonal ... ok
[INFO] [stdout] test avx512::tests::test_hsum_f32_dispatch_16_elements ... ok
[INFO] [stdout] test avx512::tests::test_hsum_f32_dispatch_empty ... ok
[INFO] [stdout] test avx512::tests::test_hsum_f32_dispatch_matches_scalar ... ok
[INFO] [stdout] test avx512::tests::test_hsum_f32_scalar_empty ... ok
[INFO] [stdout] test avx512::tests::test_scale_i16_dispatch_matches_scalar ... ok
[INFO] [stdout] test avx512::tests::test_hsum_f32_scalar_known ... ok
[INFO] [stdout] test avx512::tests::test_scale_i16_scalar_double ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_8x8_vnni_identical_blocks_returns_zero ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_8x8_vnni_known_difference ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_8x8_vnni_matches_scalar ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_parallel_4way_identical_blocks_all_zero ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_parallel_4way_known_values ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_vnni_buffer_too_small_returns_error ... ok
[INFO] [stdout] test bitwise_ops::tests::test_byte_swap_u32 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_and_or_xor_not ... ok
[INFO] [stdout] test bitwise_ops::tests::test_byte_swap_u16 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_extract_bits_u8 ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_parallel_4way_matches_scalar ... ok
[INFO] [stdout] test avx512::tests::test_scale_i16_scalar_negative_saturation ... ok
[INFO] [stdout] test bitwise_ops::tests::test_andn_u8 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_leading_zeros_u8 ... ok
[INFO] [stdout] test avx512::tests::test_hsum_f32_scalar_single ... ok
[INFO] [stdout] test bitwise_ops::tests::test_pack_unpack_nibbles ... ok
[INFO] [stdout] test bitwise_ops::tests::test_popcount_u32 ... ok
[INFO] [stdout] test avx512::tests::test_scale_i16_scalar_zero_gain ... ok
[INFO] [stdout] test avx512::tests::test_scale_i16_scalar_saturation ... ok
[INFO] [stdout] test bitwise_ops::tests::test_reverse_bits_u8 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_shift_left_u16 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_shift_left_u8 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_shift_right_u16 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_shift_right_u8 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_total_popcount_u8 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_trailing_zeros_u8 ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_4x4_vnni_matches_scalar ... ok
[INFO] [stdout] test avx512::tests::test_scale_i16_dispatch_empty ... ok
[INFO] [stdout] test blend::tests::test_alpha_blend_opaque_src ... ok
[INFO] [stdout] test bitwise_ops::tests::test_unpack_nibbles ... ok
[INFO] [stdout] test blend::tests::test_alpha_blend_transparent_src ... ok
[INFO] [stdout] test blend::tests::test_alpha_blend_preserves_length ... ok
[INFO] [stdout] test blend::tests::test_composite_over_transparent_fg ... ok
[INFO] [stdout] test blend::tests::test_hard_light_swap ... ok
[INFO] [stdout] test blend::tests::test_multiply_blend_identity ... ok
[INFO] [stdout] test blend::tests::test_multiply_blend_zeros ... ok
[INFO] [stdout] test blend::tests::test_premultiply_transparent_pixel ... ok
[INFO] [stdout] test blend::tests::test_premultiply_round_trip ... ok
[INFO] [stdout] test blend::tests::test_screen_blend_symmetric ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_parallel_4way_buffer_too_small_returns_error ... ok
[INFO] [stdout] test blend::tests::test_unpremultiply_zero_alpha ... ok
[INFO] [stdout] test blend::tests::test_composite_over_opaque_fg ... ok
[INFO] [stdout] test blend_simd::tests::test_alpha_over_full_opacity ... ok
[INFO] [stdout] test blend::tests::test_screen_blend_zeros ... ok
[INFO] [stdout] test blend_simd::tests::test_alpha_over_transparent_src ... ok
[INFO] [stdout] test blend::tests::test_screen_blend_max ... ok
[INFO] [stdout] test blend::tests::test_overlay_dark_base ... ok
[INFO] [stdout] test blend_simd::tests::test_apply_alpha_gain ... ok
[INFO] [stdout] test blend_simd::tests::test_blend_buffers_not_multiple_of_4 ... ok
[INFO] [stdout] test blend_simd::tests::test_blend_dispatch_all_modes ... ok
[INFO] [stdout] test blend_simd::tests::test_blend_buffers_multiply ... ok
[INFO] [stdout] test blend_simd::tests::test_blend_buffers_length_mismatch ... ok
[INFO] [stdout] test blend_simd::tests::test_darken_lighten ... ok
[INFO] [stdout] test blend_simd::tests::test_difference_blend ... ok
[INFO] [stdout] test blend_simd::tests::test_multiply_black ... ok
[INFO] [stdout] test blend_simd::tests::test_multiply_blend ... ok
[INFO] [stdout] test blend_simd::tests::test_screen_blend_with_black ... ok
[INFO] [stdout] test blend_simd::tests::test_screen_blend_with_white ... ok
[INFO] [stdout] test color_convert_simd::tests::black_converts_to_zero_luma ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_black_converts_to_zero_luma ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_coeffs_luma_sum_to_one ... ok
[INFO] [stdout] test blend_simd::tests::test_pixel_roundtrip ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_differs_from_bt709 ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_neutral_chroma_round_trip ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_roundtrip_mid_grey ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_roundtrip_white ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_white_has_neutral_chroma ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_white_converts_to_max_luma ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2100_ictcp_luma_coeffs_match_bt2020 ... ok
[INFO] [stdout] test bitwise_ops::tests::test_popcount_u8 ... ok
[INFO] [stdout] test color_convert_simd::tests::round_trip_mid_grey ... ok
[INFO] [stdout] test color_convert_simd::tests::slice_length_mismatch_uses_min ... ok
[INFO] [stdout] test color_convert_simd::tests::round_trip_white ... ok
[INFO] [stdout] test color_convert_simd::tests::white_converts_to_max_luma ... ok
[INFO] [stdout] test color_convert_simd::tests::empty_slices_do_not_panic ... ok
[INFO] [stdout] test color_convert_simd::tests::pixel_structs_are_copy ... ok
[INFO] [stdout] test color_convert_simd::tests::round_trip_black ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2100_neutral_grey_has_neutral_ct_cp ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2100_roundtrip_white ... ok
[INFO] [stdout] test color_convert_simd::tests::round_trip_red ... ok
[INFO] [stdout] test avx512::vnni_tests::sad_4x4_vnni_identical_blocks_returns_zero ... ok
[INFO] [stdout] test blend_simd::tests::test_add_blend_clamp ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_luma_increases_with_brightness ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2020_kr_kg_kb_correct ... ok
[INFO] [stdout] test color_convert_simd::tests::rgb_to_yuv_multiple_pixels ... ok
[INFO] [stdout] test color_convert_simd::tests::white_has_neutral_chroma ... ok
[INFO] [stdout] test color_space::tests::test_apply_lut_1d_empty_lut ... ok
[INFO] [stdout] test color_convert_simd::tests::yuv_to_rgb_neutral_chroma_gives_grey ... ok
[INFO] [stdout] test color_convert_simd::tests::bt2100_white_intensity_is_max ... ok
[INFO] [stdout] test color_convert_simd::tests::bt709_coeffs_luma_sum_to_one ... ok
[INFO] [stdout] test color_space::tests::test_rgb_luminance_rec709_coefficients ... ok
[INFO] [stdout] test color_space::tests::test_rgb_luminance_white ... ok
[INFO] [stdout] test color_space::tests::test_rgb_pixel_clamp ... ok
[INFO] [stdout] test color_space::tests::test_rgb_to_hsv_black ... ok
[INFO] [stdout] test color_space::tests::test_rgb_to_hsv_blue ... ok
[INFO] [stdout] test color_space::tests::test_rgb_to_hsv_green ... ok
[INFO] [stdout] test color_space::tests::test_rgb_to_hsv_white ... ok
[INFO] [stdout] test convolution::tests::test_border_constant ... ok
[INFO] [stdout] test convolution::tests::test_border_wrap ... ok
[INFO] [stdout] test convolution::tests::test_convolve1d_h_buffer_mismatch ... ok
[INFO] [stdout] test color_space::tests::test_rgb_to_hsv_red ... ok
[INFO] [stdout] test color_space::tests::test_rgb_luminance_black ... ok
[INFO] [stdout] test convolution::tests::test_convolve1d_vertical_identity ... ok
[INFO] [stdout] test color_space::tests::test_rgb_pixel_new ... ok
[INFO] [stdout] test convolution::tests::test_convolve1d_horizontal_identity ... ok
[INFO] [stdout] test convolution::tests::test_border_clamp ... ok
[INFO] [stdout] test convolution::tests::test_gaussian_3x3_preserves_uniform ... ok
[INFO] [stdout] test convolution::tests::test_kernel_new_invalid ... ok
[INFO] [stdout] test convolution::tests::test_identity_kernel ... ok
[INFO] [stdout] test convolution::tests::test_kernel_new_valid ... ok
[INFO] [stdout] test convolution::tests::test_convolve2d_reflect_border ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_1d_rejects_length_one ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_1d_rejects_non_power_of_two ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_1d_roundtrip_n16 ... ok
[INFO] [stdout] test convolution::tests::test_separable_gaussian_uniform ... ok
[INFO] [stdout] test convolution::tests::test_sharpen_kernel_predefined ... ok
[INFO] [stdout] test color_space::tests::test_apply_lut_1d_identity ... ok
[INFO] [stdout] test convolution::tests::test_convolve2d_buffer_mismatch ... ok
[INFO] [stdout] test color_space::tests::test_hsv_to_rgb_white ... ok
[INFO] [stdout] test convolution::tests::test_laplacian_detects_edge ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_1d_matches_naive_n8 ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_1d_dc_input_gives_single_nonzero_coeff ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_1d_roundtrip_n32 ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_1d_roundtrip_n8 ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_2d_constant_block_gives_single_dc ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_1d_zero_input_gives_zero_output ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_2d_rejects_wrong_buffer_size ... ok
[INFO] [stdout] test dct_butterfly::tests::dct_butterfly_2d_roundtrip_n8 ... ok
[INFO] [stdout] test dct_butterfly::tests::forward_butterfly_32_buffer_too_small_returns_error ... ok
[INFO] [stdout] test color_space::tests::test_apply_lut_1d_invert ... ok
[INFO] [stdout] test color_space::tests::test_hsv_to_rgb_black ... ok
[INFO] [stdout] test color_space::tests::test_rgb_hsv_roundtrip ... ok
[INFO] [stdout] test dct_butterfly::tests::forward_butterfly_64_buffer_too_small_returns_error ... ok
[INFO] [stdout] test dct_butterfly::tests::idct_butterfly_1d_rejects_non_power_of_two ... ok
[INFO] [stdout] test deblock_filter::tests::buffer_too_small_returns_error ... ok
[INFO] [stdout] test deblock_filter::tests::deblock_full_does_not_panic_on_minimal_block ... ok
[INFO] [stdout] test deblock_filter::tests::deblock_horizontal_reduces_edge_gradient ... ok
[INFO] [stdout] test dct_butterfly::tests::forward_butterfly_32_zero_input_gives_zero_output ... ok
[INFO] [stdout] test deblock_filter::tests::deblock_vertical_reduces_edge_gradient ... ok
[INFO] [stdout] test deblock_filter::tests::disabled_filter_is_passthrough ... ok
[INFO] [stdout] test deblock_filter::tests::filter_4samples_no_op_when_strength_zero ... ok
[INFO] [stdout] test deblock_filter::tests::filter_4samples_skips_when_edge_too_strong ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_clamp_f32_bounds ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_bgra_to_rgba_empty ... ok
[INFO] [stdout] test dct_butterfly::tests::forward_butterfly_32_matches_generic_scalar ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_clamp_f32_empty ... ok
[INFO] [stdout] test deblock_filter::tests::smooth_gradient_is_largely_unchanged_by_deblock ... ok
[INFO] [stdout] test dct_butterfly::tests::forward_butterfly_32_roundtrip ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_bgra_to_rgba_roundtrip ... ok
[INFO] [stdout] test dot_product::tests::test_cosine_similarity_orthogonal ... ok
[INFO] [stdout] test dot_product::tests::test_cosine_similarity_parallel ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_dot_product_f32_empty ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_dot_product_f32_known ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_hsum_f32_empty ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_hsum_f32_known ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_scale_i16_half ... ok
[INFO] [stdout] test dot_product::tests::test_block_dot_i16 ... ok
[INFO] [stdout] test deblock_filter::tests::intra_filter_is_stronger_than_normal ... ok
[INFO] [stdout] test dot_product::tests::test_cosine_similarity_zero_vector ... ok
[INFO] [stdout] test dot_product::tests::test_dot_empty ... ok
[INFO] [stdout] test dot_product::tests::test_dot_f32_basic ... ok
[INFO] [stdout] test dot_product::tests::test_dot_f64_basic ... ok
[INFO] [stdout] test dot_product::tests::test_dot_i32_basic ... ok
[INFO] [stdout] test dot_product::tests::test_dot_u8_basic ... ok
[INFO] [stdout] test dot_product::tests::test_dot_u8_mismatched ... ok
[INFO] [stdout] test dot_product::tests::test_mac_f32 ... ok
[INFO] [stdout] test dot_product::tests::test_normalized_dot_f32 ... ok
[INFO] [stdout] test dot_product::tests::test_sad_u8 ... ok
[INFO] [stdout] test dot_product::tests::test_saturating_dot_i16 ... ok
[INFO] [stdout] test dot_product::tests::test_ssd_u8 ... ok
[INFO] [stdout] test dot_product::tests::test_weighted_dot_f32 ... ok
[INFO] [stdout] test entropy_coding::tests::test_bitplane_single_bit_set ... ok
[INFO] [stdout] test entropy_coding::tests::test_decode_insufficient_data ... ok
[INFO] [stdout] test dot_product::tests::test_dot_i16_basic ... ok
[INFO] [stdout] test entropy_coding::tests::test_exp_golomb_zero ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_4bit_nibbles ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_empty ... ok
[INFO] [stdout] test entropy_coding::tests::test_bitplane_all_ones ... ok
[INFO] [stdout] test entropy_coding::tests::test_bitplane_all_zeros ... ok
[INFO] [stdout] test entropy_coding::tests::test_bitplane_buffer_too_small ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_1bit_values ... ok
[INFO] [stdout] test entropy_coding::tests::test_exp_golomb_powers_of_two ... ok
[INFO] [stdout] test dot_product::tests::test_weighted_dot_mismatched ... ok
[INFO] [stdout] test entropy_coding::tests::test_exp_golomb_sequential_no_overlap ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_unpack_roundtrip_1bit ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_unpack_roundtrip_3bit ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_unpack_roundtrip_8bit ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_unpack_roundtrip_4bit ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_invalid_bits_per_value_nine ... ok
[INFO] [stdout] test entropy_coding::tests::test_unpack_buffer_too_small ... ok
[INFO] [stdout] test entropy_coding::tests::test_pack_invalid_bits_per_value_zero ... ok
[INFO] [stdout] test entropy_coding::tests::test_unpack_invalid_bits_per_value ... ok
[INFO] [stdout] test entropy_coding::tests::test_exp_golomb_small_values ... ok
[INFO] [stdout] test filter::tests::test_apply_3x3_kernel_empty_no_panic ... ok
[INFO] [stdout] test filter::tests::test_box_blur_horizontal_preserves_length ... ok
[INFO] [stdout] test filter::tests::test_box_blur_empty_no_panic ... ok
[INFO] [stdout] test filter::tests::test_gaussian_weights_center_is_largest ... ok
[INFO] [stdout] test filter::tests::test_apply_3x3_kernel_uniform_identity ... ok
[INFO] [stdout] test filter::tests::test_gaussian_weights_sum_to_one ... ok
[INFO] [stdout] test filter::tests::test_box_blur_horizontal_uniform ... ok
[INFO] [stdout] test filter::tests::test_gaussian_weights_symmetric ... ok
[INFO] [stdout] test filter::tests::test_sharpen_kernel_sum ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed16_add ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed16_from_f32_negative ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed16_from_to_f32_identity ... ok
[INFO] [stdout] test filter::tests::test_box_blur_vertical_uniform ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed16_saturating_add ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed_math_clamp_fixed ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed_math_clamp_fixed_below ... ok
[INFO] [stdout] test filter::tests::test_apply_1d_filter_empty_src ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed_math_scale_pixel ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed_point8_interpolate_full_weight ... ok
[INFO] [stdout] test filter::tests::test_gaussian_weights_zero_sigma_returns_one ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed16_mul ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed16_raw ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed_point8_interpolate_midpoint ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed_point8_interpolate_zero_weight ... ok
[INFO] [stdout] test filter::tests::test_apply_1d_filter_mean_kernel ... ok
[INFO] [stdout] test entropy_coding::tests::test_bitplane_transpose_identity ... ok
[INFO] [stdout] test fixed_point::tests::test_fixed_math_lerp_endpoints ... ok
[INFO] [stdout] test filter::tests::test_apply_1d_filter_identity_kernel ... ok
[INFO] [stdout] test dispatch::tests::test_dispatch_scale_i16_empty ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_sad_4x4_identical_is_zero ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_sad_uniform_block_offset ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_sad_4x8_identical_is_zero ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_satd_4x4_identical_is_zero ... ok
[INFO] [stdout] test gather_scatter::tests::test_gather_add_f32 ... ok
[INFO] [stdout] test gather_scatter::tests::test_gather_f32_basic ... ok
[INFO] [stdout] test gather_scatter::tests::test_gather_strided_u8 ... ok
[INFO] [stdout] test gather_scatter::tests::test_gather_strided_u8_zero_stride ... ok
[INFO] [stdout] test gather_scatter::tests::test_gather_u16_basic ... ok
[INFO] [stdout] test gather_scatter::tests::test_gather_u8_basic ... ok
[INFO] [stdout] test gather_scatter::tests::test_gather_u8_empty_indices ... ok
[INFO] [stdout] test gather_scatter::tests::test_gather_u8_out_of_bounds ... ok
[INFO] [stdout] test gather_scatter::tests::test_masked_gather_u8 ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_bilinear_constant_source_is_constant ... ok
[INFO] [stdout] test gather_scatter::tests::test_scatter_f32_basic ... ok
[INFO] [stdout] test gather_scatter::tests::test_scatter_histogram ... ok
[INFO] [stdout] test gather_scatter::tests::test_masked_scatter_u8 ... ok
[INFO] [stdout] test gather_scatter::tests::test_scatter_histogram_out_of_bounds ... ok
[INFO] [stdout] test gather_scatter::tests::test_scatter_u8_length_mismatch ... ok
[INFO] [stdout] test gather_scatter::tests::test_scatter_u8_basic ... ok
[INFO] [stdout] test hadamard::tests::wht_1d_double_application_scales_by_n ... ok
[INFO] [stdout] test hadamard::tests::wht_1d_empty_returns_error ... ok
[INFO] [stdout] test hadamard::tests::wht_1d_impulse_response_is_all_ones ... ok
[INFO] [stdout] test hadamard::tests::wht_1d_length4_known_values ... ok
[INFO] [stdout] test hadamard::tests::wht_1d_non_power_of_two_returns_error ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_sad_8x4_identical_is_zero ... ok
[INFO] [stdout] test hadamard::tests::wht_1d_all_zeros_stays_zero ... ok
[INFO] [stdout] test hadamard::tests::wht_1d_single_element_identity ... ok
[INFO] [stdout] test hadamard::tests::wht_2d_buffer_too_small_returns_error ... ok
[INFO] [stdout] test hadamard::tests::wht_1d_two_elements_butterfly ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_satd_block_size_pixels ... ok
[INFO] [stdout] test hadamard::tests::wht_2d_roundtrip_n16 ... ok
[INFO] [stdout] test hadamard::tests::wht_2d_roundtrip_n2 ... ok
[INFO] [stdout] test hadamard::tests::wht_2d_roundtrip_n32 ... ok
[INFO] [stdout] test hadamard::tests::wht_2d_roundtrip_n4 ... ok
[INFO] [stdout] test hadamard::tests::wht_2d_zero_block_stays_zero ... ok
[INFO] [stdout] test hadamard::tests::wht_2d_roundtrip_n8 ... ok
[INFO] [stdout] test hadamard::tests::wht_normalize_negative_scale ... ok
[INFO] [stdout] test hadamard::tests::wht_power_spectrum_length_matches_block_size ... ok
[INFO] [stdout] test hadamard::tests::wht_power_spectrum_nonzero_for_nonconstant_block ... ok
[INFO] [stdout] test hadamard::tests::wht_power_spectrum_zero_block_is_all_zeros ... ok
[INFO] [stdout] test hadamard::tests::wht_normalize_zero_scale_returns_error ... ok
[INFO] [stdout] test hadamard::tests::wht_roundtrip_then_normalize_recovers_original ... ok
[INFO] [stdout] test hadamard::tests::wht_satd_4x4_block ... ok
[INFO] [stdout] test hadamard::tests::wht_satd_4x4_known_constant_blocks ... ok
[INFO] [stdout] test hadamard::tests::wht_2d_constant_block_only_dc_nonzero ... ok
[INFO] [stdout] test hadamard::tests::wht_normalize_divides_by_scale ... ok
[INFO] [stdout] test hadamard::tests::wht_satd_identical_blocks_is_zero ... ok
[INFO] [stdout] test hadamard::tests::wht_satd_is_symmetric ... ok
[INFO] [stdout] test hadamard::tests::wht_size_properties ... ok
[INFO] [stdout] test hist_simd::tests::cdf_last_element_equals_total ... ok
[INFO] [stdout] test hist_simd::tests::cdf_monotone_non_decreasing ... ok
[INFO] [stdout] test hist_simd::tests::histogram_all_255 ... ok
[INFO] [stdout] test hist_simd::tests::histogram_all_zeros ... ok
[INFO] [stdout] test hadamard::tests::wht_satd_scales_with_difference_magnitude ... ok
[INFO] [stdout] test hist_simd::tests::histogram_counts_sum_to_length ... ok
[INFO] [stdout] test hist_simd::tests::histogram_non_aligned_length ... ok
[INFO] [stdout] test hist_simd::tests::histogram_single_element ... ok
[INFO] [stdout] test hist_simd::tests::histogram_uniform_distribution ... ok
[INFO] [stdout] test hist_simd::tests::mean_empty_histogram_is_none ... ok
[INFO] [stdout] test hist_simd::tests::histogram_empty_input ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_satd_8x8_identical_is_zero ... ok
[INFO] [stdout] test hadamard::tests::wht_satd_buffer_too_small_returns_error ... ok
[INFO] [stdout] test dct_butterfly::tests::forward_butterfly_64_roundtrip ... ok
[INFO] [stdout] test hadamard::tests::wht_satd_nonzero_for_different_blocks ... ok
[INFO] [stdout] test hist_simd::tests::mean_of_uniform_is_127_5 ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_sad_4x4_symmetric ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_bilinear_no_panic ... ok
[INFO] [stdout] test histogram::tests::test_histogram_add_basic ... ok
[INFO] [stdout] test histogram::tests::test_histogram_cumulative ... ok
[INFO] [stdout] test histogram::tests::test_histogram_cumulative_empty ... ok
[INFO] [stdout] test histogram::tests::test_histogram_get_bin_clamp_above ... ok
[INFO] [stdout] test histogram::tests::test_histogram_get_bin_clamp_below ... ok
[INFO] [stdout] test histogram::tests::test_histogram_total_count_empty ... ok
[INFO] [stdout] test histogram::tests::test_histogram_get_bin_mid ... ok
[INFO] [stdout] test histogram::tests::test_histogram_new ... ok
[INFO] [stdout] test histogram::tests::test_histogram_get_bin_max ... ok
[INFO] [stdout] test histogram::tests::test_histogram_total_count_after_adds ... ok
[INFO] [stdout] test histogram::tests::test_rgb_histogram_default ... ok
[INFO] [stdout] test histogram::tests::test_rgb_histogram_new ... ok
[INFO] [stdout] test histogram::tests::test_rgb_histogram_total_pixels ... ok
[INFO] [stdout] test interleave::tests::test_deinterleave_4ch_basic ... ok
[INFO] [stdout] test interleave::tests::test_empty_2ch ... ok
[INFO] [stdout] test interleave::tests::test_deinterleave_nch_roundtrip ... ok
[INFO] [stdout] test interleave::tests::test_interleave_deinterleave_2ch_roundtrip ... ok
[INFO] [stdout] test histogram::tests::test_histogram_get_bin_min ... ok
[INFO] [stdout] test histogram::tests::test_histogram_peak_bin ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_bilinear_short_src_returns_error ... ok
[INFO] [stdout] test histogram::tests::test_rgb_histogram_add_pixel ... ok
[INFO] [stdout] test interleave::tests::test_interleave_2ch_basic ... ok
[INFO] [stdout] test interleave::tests::test_interleave_4ch_basic ... ok
[INFO] [stdout] test interleave::tests::test_deinterleave_2ch_basic ... ok
[INFO] [stdout] test interleave::tests::test_stereo_to_mono ... ok
[INFO] [stdout] test lookup_table::tests::test_gamma_lut_from_gamma_1 ... ok
[INFO] [stdout] test lookup_table::tests::test_lut256_apply_to_slice ... ok
[INFO] [stdout] test lookup_table::tests::test_lut256_apply_to_u8 ... ok
[INFO] [stdout] test interleave::tests::test_interleave_deinterleave_4ch_roundtrip ... ok
[INFO] [stdout] test lookup_table::tests::test_lut256_set_and_lookup ... ok
[INFO] [stdout] test lookup_table::tests::test_lut256_identity ... ok
[INFO] [stdout] test interleave::tests::test_interleave_nch_single ... ok
[INFO] [stdout] test lookup_table::tests::test_gamma_lut_apply_slice ... ok
[INFO] [stdout] test lookup_table::tests::test_gamma_lut_srgb_black_white ... ok
[INFO] [stdout] test lookup_table::tests::test_lut_entry_interpolate_clamped ... ok
[INFO] [stdout] test lookup_table::tests::test_lut_entry_interpolate_midpoint ... ok
[INFO] [stdout] test interleave::tests::test_interleave_nch_three_channels ... ok
[INFO] [stdout] test interleave::tests::test_mono_to_stereo ... ok
[INFO] [stdout] test lookup_table::tests::test_gamma_lut_gamma_value ... ok
[INFO] [stdout] test math_ops::tests::test_abs_diff ... ok
[INFO] [stdout] test math_ops::tests::test_clamp_slice ... ok
[INFO] [stdout] test math_ops::tests::test_dot_product_basic ... ok
[INFO] [stdout] test math_ops::tests::test_dot_product_empty ... ok
[INFO] [stdout] test math_ops::tests::test_matrix_multiply_basic ... ok
[INFO] [stdout] test lookup_table::tests::test_lut65536_apply_to_u16 ... ok
[INFO] [stdout] test math_ops::tests::test_dot_product_orthogonal ... ok
[INFO] [stdout] test math_ops::tests::test_prefix_sum ... ok
[INFO] [stdout] test lookup_table::tests::test_lut65536_set_and_lookup ... ok
[INFO] [stdout] test math_ops::tests::test_matrix_multiply_identity ... ok
[INFO] [stdout] test lookup_table::tests::test_lut_entry_interpolate_at_one ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_sad_8x8_identical_is_zero ... ok
[INFO] [stdout] test math_ops::tests::test_prefix_sum_empty ... ok
[INFO] [stdout] test matrix::tests::test_default_is_identity ... ok
[INFO] [stdout] test math_ops::tests::test_sum_squares_empty ... ok
[INFO] [stdout] test lookup_table::tests::test_lut_entry_interpolate_at_zero ... ok
[INFO] [stdout] test math_ops::tests::test_sum_squares ... ok
[INFO] [stdout] test matrix::tests::test_determinant_scale ... ok
[INFO] [stdout] test matrix::tests::test_determinant_identity ... ok
[INFO] [stdout] test matrix::tests::test_determinant_singular_zero ... ok
[INFO] [stdout] test matrix::tests::test_get_set_roundtrip ... ok
[INFO] [stdout] test math_ops::tests::test_vector_add ... ok
[INFO] [stdout] test matrix::tests::test_identity_diagonal ... ok
[INFO] [stdout] test matrix::tests::test_rotation_y_90_degrees ... ok
[INFO] [stdout] test matrix::tests::test_rotation_x_90_degrees ... ok
[INFO] [stdout] test matrix::tests::test_multiply_identity_left ... ok
[INFO] [stdout] test matrix::tests::test_scale_matrix ... ok
[INFO] [stdout] test matrix::tests::test_translation_applies_to_point ... ok
[INFO] [stdout] test matrix::tests::test_transpose_identity ... ok
[INFO] [stdout] test math_ops::tests::test_vector_scale ... ok
[INFO] [stdout] test matrix::tests::test_transpose_involution ... ok
[INFO] [stdout] test min_max::tests::test_argmax_empty ... ok
[INFO] [stdout] test matrix::tests::test_transpose_swaps_elements ... ok
[INFO] [stdout] test min_max::tests::test_clamp_i16 ... ok
[INFO] [stdout] test min_max::tests::test_clamp_u8 ... ok
[INFO] [stdout] test min_max::tests::test_dynamic_range_u8 ... ok
[INFO] [stdout] test min_max::tests::test_elementwise_max_u8 ... ok
[INFO] [stdout] test min_max::tests::test_elementwise_min_u8 ... ok
[INFO] [stdout] test min_max::tests::test_minmax_f32_basic ... ok
[INFO] [stdout] test min_max::tests::test_minmax_i16_basic ... ok
[INFO] [stdout] test lookup_table::tests::test_lut65536_identity_endpoints ... ok
[INFO] [stdout] test min_max::tests::test_minmax_u8_empty ... ok
[INFO] [stdout] test min_max::tests::test_minmax_u8_large ... ok
[INFO] [stdout] test min_max::tests::test_minmax_u8_basic ... ok
[INFO] [stdout] test min_max::tests::test_minmax_u8_single ... ok
[INFO] [stdout] test min_max::tests::test_stretch_contrast_u8_uniform ... ok
[INFO] [stdout] test min_max::tests::test_stretch_contrast_u8 ... ok
[INFO] [stdout] test motion_search::tests::test_diamond_search_zero_motion_identical_frames ... ok
[INFO] [stdout] test motion_search::tests::test_diamond_search_finds_known_displacement ... ok
[INFO] [stdout] test motion_search::tests::test_diamond_search_respects_search_range ... ok
[INFO] [stdout] test motion_search::tests::test_hex_pattern_distinct_points ... ok
[INFO] [stdout] test motion_search::tests::test_hexagonal_search_zero_motion ... ok
[INFO] [stdout] test motion_search::tests::test_hexagonal_search_finds_known_displacement ... ok
[INFO] [stdout] test motion_search::tests::test_large_diamond_pattern_distinct_points ... ok
[INFO] [stdout] test motion_search::tests::test_motion_vector_default ... ok
[INFO] [stdout] test motion_search::tests::test_sad_4way_uniform ... ok
[INFO] [stdout] test motion_search::tests::test_sad_block_constant_difference ... ok
[INFO] [stdout] test motion_search::tests::test_sad_block_identical ... ok
[INFO] [stdout] test motion_search::tests::test_small_diamond_pattern_distinct_points ... ok
[INFO] [stdout] test neon::neon::tests::test_dot_product_basic ... ok
[INFO] [stdout] test neon::neon::tests::test_dot_product_empty ... ok
[INFO] [stdout] test motion_search::tests::test_motion_vector_dist_sq ... ok
[INFO] [stdout] test neon::neon::tests::test_dot_product_large ... ok
[INFO] [stdout] test neon::neon::tests::test_dot_product_tail ... ok
[INFO] [stdout] test neon::neon::tests::test_hadd_f32x4_mixed ... ok
[INFO] [stdout] test neon::neon::tests::test_hadd_f32x4_basic ... ok
[INFO] [stdout] test matrix::tests::test_multiply_identity ... ok
[INFO] [stdout] test matrix::tests::test_rotation_z_identity_at_zero ... ok
[INFO] [stdout] test neon::neon::tests::test_hadd_f32x4_zeros ... ok
[INFO] [stdout] test min_max::tests::test_argmax_u8 ... ok
[INFO] [stdout] test neon::neon::tests::test_hadd_f32x4_negative ... ok
[INFO] [stdout] test matrix::tests::test_rotation_z_90_degrees ... ok
[INFO] [stdout] test min_max::tests::test_argmin_empty ... ok
[INFO] [stdout] test neon::neon::tests::test_rgba_to_yuv420_black ... ok
[INFO] [stdout] test min_max::tests::test_argmin_u8 ... ok
[INFO] [stdout] test neon::neon::tests::test_rgba_to_yuv420_crossarch_parity ... ok
[INFO] [stdout] test neon::neon::tests::test_sad_8x8_known ... ok
[INFO] [stdout] test neon::neon::tests::test_rgba_to_yuv420_output_sizes ... ok
[INFO] [stdout] test min_max::tests::test_clamp_f32 ... ok
[INFO] [stdout] test neon::neon::tests::test_rgba_to_yuv420_white ... ok
[INFO] [stdout] test neon::neon::tests::test_sad_8x8_identical ... ok
[INFO] [stdout] test neon::neon::tests::test_sad_8x8_max_diff ... ok
[INFO] [stdout] test neon::neon::tests::test_sad_8x8_with_stride ... ok
[INFO] [stdout] test neon::neon::tests::test_sigmoid_bounds ... ok
[INFO] [stdout] test neon::neon::tests::test_sigmoid_large_positive ... ok
[INFO] [stdout] test neon::neon::tests::test_sigmoid_zero ... ok
[INFO] [stdout] test pack_unpack::tests::test_bits_per_pixel ... ok
[INFO] [stdout] test neon::neon::tests::test_sigmoid_symmetry ... ok
[INFO] [stdout] test neon::neon::tests::test_sigmoid_large_negative ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_rgb565_roundtrip_approximate ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_rgb888_into_bytes_too_small ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_format_bytes_per_pixel ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_rgb888_into_bytes ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_bgr888_roundtrip ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_rgba8888_roundtrip ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_format_has_alpha ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_rgba8888_slice_roundtrip ... ok
[INFO] [stdout] test pack_unpack::tests::test_unpack_rgb888_black_white ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_rgb888_roundtrip ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_rgb888_value ... ok
[INFO] [stdout] test pack_unpack::tests::test_unpack_rgb888_from_bytes ... ok
[INFO] [stdout] test pixel_ops::tests::test_apply_lut_identity ... ok
[INFO] [stdout] test pack_unpack::tests::test_pack_rgb888_slice_roundtrip ... ok
[INFO] [stdout] test pixel_ops::tests::test_apply_lut_invert ... ok
[INFO] [stdout] test pixel_ops::tests::test_blend_over_empty ... ok
[INFO] [stdout] test pixel_ops::tests::test_blend_over_fully_opaque_src ... ok
[INFO] [stdout] test pixel_ops::tests::test_blend_over_fully_transparent_src ... ok
[INFO] [stdout] test pixel_ops::tests::test_horizontal_flip_2x2 ... ok
[INFO] [stdout] test pixel_ops::tests::test_horizontal_flip_single_row ... ok
[INFO] [stdout] test pixel_ops::tests::test_pixel_new_and_array ... ok
[INFO] [stdout] test pixel_ops::tests::test_rgb_yuv_roundtrip_black ... ok
[INFO] [stdout] test pixel_ops::tests::test_rgb_yuv_roundtrip_white ... ok
[INFO] [stdout] test pixel_ops::tests::test_vertical_flip_2x2 ... ok
[INFO] [stdout] test pixel_ops::tests::test_threshold_above ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_basic ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_empty ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_mismatched_lengths_uses_shorter ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_exactly_4_elements ... ok
[INFO] [stdout] test pixel_ops::tests::test_vertical_flip_single_col ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_negative_values ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_orthogonal_vectors ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_single_element ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_more_than_4_elements ... ok
[INFO] [stdout] test portable::tests::test_luma_alpha_ignored ... ok
[INFO] [stdout] test portable::tests::test_dot_f32_large_input_consistency ... ok
[INFO] [stdout] test portable::tests::test_luma_black_pixel ... ok
[INFO] [stdout] test portable::tests::test_luma_empty_input ... ok
[INFO] [stdout] test portable::tests::test_luma_five_pixels_with_tail ... ok
[INFO] [stdout] test portable::tests::test_luma_four_pixels_4wide_path ... ok
[INFO] [stdout] test portable::tests::test_luma_pure_green ... ok
[INFO] [stdout] test portable::tests::test_luma_white_pixel ... ok
[INFO] [stdout] test portable::tests::test_matmul_identity_times_identity ... ok
[INFO] [stdout] test portable::tests::test_matmul_identity_times_matrix ... ok
[INFO] [stdout] test portable::tests::test_luma_pure_red ... ok
[INFO] [stdout] test portable::tests::test_matmul_known_result ... ok
[INFO] [stdout] test portable::tests::test_luma_pure_blue ... ok
[INFO] [stdout] test prefix_sum::tests::test_empty_prefix_sum ... ok
[INFO] [stdout] test portable::tests::test_matmul_matrix_times_identity ... ok
[INFO] [stdout] test portable::tests::test_luma_limited_range_bounds ... ok
[INFO] [stdout] test prefix_sum::tests::test_exclusive_prefix_sum_f32 ... ok
[INFO] [stdout] test prefix_sum::tests::test_exclusive_prefix_sum_u64 ... ok
[INFO] [stdout] test prefix_sum::tests::test_exclusive_prefix_sum_u32 ... ok
[INFO] [stdout] test prefix_sum::tests::test_inclusive_prefix_min_u32 ... ok
[INFO] [stdout] test prefix_sum::tests::test_inclusive_prefix_sum_f32 ... ok
[INFO] [stdout] test prefix_sum::tests::test_inclusive_prefix_max_u32 ... ok
[INFO] [stdout] test prefix_sum::tests::test_inclusive_prefix_sum_i32 ... ok
[INFO] [stdout] test prefix_sum::tests::test_query_integral_image ... ok
[INFO] [stdout] test prefix_sum::tests::test_single_element_prefix_sum ... ok
[INFO] [stdout] test prefix_sum::tests::test_segmented_prefix_sum_u32 ... ok
[INFO] [stdout] test psnr::tests::empty_slice_returns_error ... ok
[INFO] [stdout] test psnr::tests::identical_images_give_infinity ... ok
[INFO] [stdout] test prefix_sum::tests::test_inclusive_prefix_sum_u32 ... ok
[INFO] [stdout] test prefix_sum::tests::test_integral_image_u8 ... ok
[INFO] [stdout] test psnr::tests::known_mse_gives_correct_psnr ... ok
[INFO] [stdout] test prefix_sum::tests::test_inclusive_prefix_sum_u64 ... ok
[INFO] [stdout] test portable::tests::test_matmul_zero_matrix ... ok
[INFO] [stdout] test psnr::tests::psnr_block_32x32_known ... ok
[INFO] [stdout] test psnr::tests::mse_known_value ... ok
[INFO] [stdout] test psnr::tests::psnr_strided_excludes_padding ... ok
[INFO] [stdout] test psnr::tests::psnr_block_16x16_identical ... ok
[INFO] [stdout] test psnr::tests::psnr_decreases_with_more_noise ... ok
[INFO] [stdout] test psnr::tests::mse_identical ... ok
[INFO] [stdout] test psnr::tests::mismatched_lengths_return_error ... ok
[INFO] [stdout] test psnr::tests::psnr_yuv_all_channels_identical ... ok
[INFO] [stdout] test reduce::tests::test_mad_u8_empty ... ok
[INFO] [stdout] test reduce::tests::test_mad_u8_uniform ... ok
[INFO] [stdout] test reduce::tests::test_max_basic ... ok
[INFO] [stdout] test reduce::tests::test_mean_empty ... ok
[INFO] [stdout] test reduce::tests::test_max_single ... ok
[INFO] [stdout] test reduce::tests::test_mean_u8_basic ... ok
[INFO] [stdout] test reduce::tests::test_max_empty ... ok
[INFO] [stdout] test reduce::tests::test_mean_u8_empty ... ok
[INFO] [stdout] test reduce::tests::test_min_basic ... ok
[INFO] [stdout] test reduce::tests::test_normalize_basic ... ok
[INFO] [stdout] test reduce::tests::test_min_empty ... ok
[INFO] [stdout] test reduce::tests::test_block_complexity_u8_flat_is_zero ... ok
[INFO] [stdout] test reduce::tests::test_normalize_uniform ... ok
[INFO] [stdout] test reduce::tests::test_normalize_empty ... ok
[INFO] [stdout] test reduce::tests::test_block_complexity_u8_max ... ok
[INFO] [stdout] test reduce::tests::test_min_all_negative ... ok
[INFO] [stdout] test reduce::tests::test_mean_basic ... ok
[INFO] [stdout] test reduce::tests::test_stddev_f32_basic ... ok
[INFO] [stdout] test reduce::tests::test_mean_single ... ok
[INFO] [stdout] test reduce::tests::test_normalize_negative_range ... ok
[INFO] [stdout] test reduce::tests::test_variance_basic ... ok
[INFO] [stdout] test reduce::tests::test_sum_empty ... ok
[INFO] [stdout] test reduce::tests::test_sum_basic ... ok
[INFO] [stdout] test reduce::tests::test_sum_negative ... ok
[INFO] [stdout] test reduce::tests::test_sum_single ... ok
[INFO] [stdout] test reduce::tests::test_variance_empty ... ok
[INFO] [stdout] test reduce::tests::test_stddev_u8_positive ... ok
[INFO] [stdout] test reduce::tests::test_variance_single ... ok
[INFO] [stdout] test reduce::tests::test_variance_u8_simd_matches_scalar ... ok
[INFO] [stdout] test reduce::tests::test_variance_u8_uniform ... ok
[INFO] [stdout] test reduce::tests::test_variance_uniform ... ok
[INFO] [stdout] test reduce::tests::test_variance_u8_known ... ok
[INFO] [stdout] test resize::tests::test_bilinear_buffer_too_small_src ... ok
[INFO] [stdout] test resize::tests::test_bilinear_constant_downscale ... ok
[INFO] [stdout] test resize::tests::test_bilinear_constant_upscale ... ok
[INFO] [stdout] test resize::tests::test_bilinear_identity_same_size ... ok
[INFO] [stdout] test resize::tests::test_bilinear_zero_dim_ok ... ok
[INFO] [stdout] test resize::tests::test_lanczos_buffer_too_small ... ok
[INFO] [stdout] test resize::tests::test_lanczos_constant_downscale ... ok
[INFO] [stdout] test resize::tests::test_lanczos_kernel_at_zero ... ok
[INFO] [stdout] test resize::tests::test_bilinear_2x_upscale_monotone ... ok
[INFO] [stdout] test sad::tests::best_match_identical_candidate_gives_zero_sad ... ok
[INFO] [stdout] test sad::tests::best_match_empty_returns_none ... ok
[INFO] [stdout] test prefix_sum::tests::test_prefix_sum_inplace_u32 ... ok
[INFO] [stdout] test resize::tests::test_bilinear_buffer_too_small_dst ... ok
[INFO] [stdout] test resize::tests::test_lanczos_constant_upscale ... ok
[INFO] [stdout] test resize::tests::test_bilinear_vs_lanczos_constant_agree ... ok
[INFO] [stdout] test resize::tests::test_lanczos_kernel_at_boundary ... ok
[INFO] [stdout] test sad::tests::best_match_returns_closest ... ok
[INFO] [stdout] test resize::tests::test_lanczos_weights_normalised ... ok
[INFO] [stdout] test sad::tests::sad_16x16_short_buffer_sentinel ... ok
[INFO] [stdout] test sad::tests::sad_16x16_max_diff ... ok
[INFO] [stdout] test sad::tests::sad_4x4_known_diff ... ok
[INFO] [stdout] test sad::tests::sad_4x8_known_diff ... ok
[INFO] [stdout] test sad::tests::sad_4x4_identical_is_zero ... ok
[INFO] [stdout] test sad::tests::sad_4x8_identical_is_zero ... ok
[INFO] [stdout] test sad::tests::sad_8x4_known_diff ... ok
[INFO] [stdout] test sad::tests::sad_16x16_identical_is_zero ... ok
[INFO] [stdout] test sad::tests::sad_32x32_identical_is_zero ... ok
[INFO] [stdout] test sad::tests::sad_8x8_max_diff ... ok
[INFO] [stdout] test sad::tests::sad_8x8_ramp_diff ... ok
[INFO] [stdout] test sad_subblock::tests::sad_8x4_known_value ... ok
[INFO] [stdout] test sad::tests::sad_8x4_identical_is_zero ... ok
[INFO] [stdout] test sad::tests::sad_8x8_identical_is_zero ... ok
[INFO] [stdout] test sad_subblock::tests::sad_4x4_identical_blocks_is_zero ... ok
[INFO] [stdout] test sad::tests::sad_asymmetric_blocks_work_correctly ... ok
[INFO] [stdout] test sad_subblock::tests::sad_4x4_known_value ... ok
[INFO] [stdout] test sad_subblock::tests::sad_4x8_known_value ... ok
[INFO] [stdout] test sad_subblock::tests::sad_8x8_identical_blocks_is_zero ... ok
[INFO] [stdout] test sad_subblock::tests::sad_strided_4x4_matches_packed ... ok
[INFO] [stdout] test sad_subblock::tests::sad_tiled_frame_too_small_returns_error ... ok
[INFO] [stdout] test satd::tests::hadamard_2d_roundtrip ... ok
[INFO] [stdout] test sad_subblock::tests::sad_increases_with_difference ... ok
[INFO] [stdout] test sad_subblock::tests::sub_block_size_dimensions ... ok
[INFO] [stdout] test sad_subblock::tests::sad_is_symmetric ... ok
[INFO] [stdout] test sad_subblock::tests::sad_tiled_identical_frames_all_zero ... ok
[INFO] [stdout] test satd::tests::satd_32x32_identical_zero ... ok
[INFO] [stdout] test satd::tests::satd_16x16_identical_zero ... ok
[INFO] [stdout] test satd::tests::satd_4x4_identical_zero ... ok
[INFO] [stdout] test satd::tests::satd_block_size_pixels ... ok
[INFO] [stdout] test satd::tests::satd_identical_blocks_is_zero ... ok
[INFO] [stdout] test satd::tests::satd_is_symmetric ... ok
[INFO] [stdout] test satd::tests::satd_buffer_too_small_returns_error ... ok
[INFO] [stdout] test satd::tests::satd_greater_than_sad_for_smooth_offset ... ok
[INFO] [stdout] test saturate::tests::test_abs_diff_u8 ... ok
[INFO] [stdout] test satd::tests::satd_strided_matches_packed ... ok
[INFO] [stdout] test satd::tests::satd_increases_with_difference ... ok
[INFO] [stdout] test sad::tests::sad_16x16_with_stride ... ok
[INFO] [stdout] test saturate::tests::test_sad_u8 ... ok
[INFO] [stdout] test saturate::tests::test_sad_u8_identical ... ok
[INFO] [stdout] test saturate::tests::test_saturating_add_u8_basic ... ok
[INFO] [stdout] test saturate::tests::test_saturating_add_u8_zeros ... ok
[INFO] [stdout] test saturate::tests::test_saturating_mul_u8_q8_double ... ok
[INFO] [stdout] test saturate::tests::test_saturating_mul_u8_q8_identity ... ok
[INFO] [stdout] test saturate::tests::test_saturating_add_i16 ... ok
[INFO] [stdout] test saturate::tests::test_saturating_add_u16 ... ok
[INFO] [stdout] test saturate::tests::test_saturating_sub_i16 ... ok
[INFO] [stdout] test saturate::tests::test_saturating_avg_u8 ... ok
[INFO] [stdout] test saturate::tests::test_saturating_blend_u8 ... ok
[INFO] [stdout] test saturate::tests::test_saturating_sub_u16 ... ok
[INFO] [stdout] test scalar::tests::test_8tap_identity_at_integer_position ... ok
[INFO] [stdout] test sad_subblock::tests::sad_8x8_known_value ... ok
[INFO] [stdout] test sad_subblock::tests::sad_buffer_too_small_returns_error ... ok
[INFO] [stdout] test saturate::tests::test_saturating_sub_u8_basic ... ok
[INFO] [stdout] test scalar::tests::test_8tap_filters_sum_to_128 ... ok
[INFO] [stdout] test scalar::tests::test_bilinear_zero_fraction_is_copy ... ok
[INFO] [stdout] test scalar::tests::test_catmull_rom_weights_sum_to_one ... ok
[INFO] [stdout] test scalar::tests::test_dct_4x4_roundtrip ... ok
[INFO] [stdout] test scalar::tests::test_dct_8x8_roundtrip ... ok
[INFO] [stdout] test scalar::tests::test_hadamard_1d_power_of_two ... ok
[INFO] [stdout] test scalar::tests::test_hadamard_2d_zero_is_zero ... ok
[INFO] [stdout] test scalar::tests::test_sad_identical ... ok
[INFO] [stdout] test scalar::tests::test_sad_known_value ... ok
[INFO] [stdout] test scalar::tests::test_satd_scalar_identical_is_zero ... ok
[INFO] [stdout] test scalar::tests::test_satd_scalar_nonzero_for_different_blocks ... ok
[INFO] [stdout] test scalar_equivalence::tests::bilinear_dispatcher_matches_scalar_half_pixel ... ok
[INFO] [stdout] test scalar_equivalence::tests::bilinear_dispatcher_matches_scalar_zero_offset ... ok
[INFO] [stdout] test scalar_equivalence::tests::forward_dct_buffer_too_small_returns_error ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_sad_8x8_symmetric ... ok
[INFO] [stdout] test scalar_equivalence::tests::forward_dct_dispatcher_matches_scalar_16x16 ... ok
[INFO] [stdout] test scalar_equivalence::tests::forward_dct_dispatcher_matches_scalar_4x4 ... ok
[INFO] [stdout] test scalar_equivalence::tests::inverse_dct_dispatcher_matches_scalar_4x4 ... ok
[INFO] [stdout] test scalar::tests::test_dct_16x16_roundtrip ... ok
[INFO] [stdout] test scalar_equivalence::tests::inverse_dct_dispatcher_matches_scalar_8x8 ... ok
[INFO] [stdout] test scalar_equivalence::tests::lanczos_dispatcher_matches_scalar_quarter_pixel ... ok
[INFO] [stdout] test scalar_equivalence::tests::lanczos_dispatcher_matches_scalar_zero_offset ... ok
[INFO] [stdout] test scalar_equivalence::tests::sad_16x16_dispatcher_matches_scalar ... ok
[INFO] [stdout] test scalar_equivalence::tests::sad_32x32_dispatcher_matches_scalar ... ok
[INFO] [stdout] test scalar_equivalence::tests::sad_buffer_too_small_returns_error ... ok
[INFO] [stdout] test scalar_equivalence::tests::forward_dct_dispatcher_matches_scalar_8x8 ... ok
[INFO] [stdout] test scalar::tests::test_bicubic_identity_at_integer_position ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_sad_8x8_valid_range ... ok
[INFO] [stdout] test scalar_equivalence::tests::inverse_dct_dispatcher_matches_scalar_16x16 ... ok
[INFO] [stdout] test scalar_equivalence::tests::inverse_dct_buffer_too_small_returns_error ... ok
[INFO] [stdout] test scalar::tests::test_dct_32x32_roundtrip ... ok
[INFO] [stdout] test scalar_fallback::tests::box_blur_flat_signal_unchanged ... ok
[INFO] [stdout] test scalar_equivalence::tests::satd_4x4_dispatcher_matches_scalar ... ok
[INFO] [stdout] test scalar_equivalence::tests::satd_8x8_dispatcher_matches_scalar ... ok
[INFO] [stdout] test scalar_fallback::tests::add_f32_basic ... ok
[INFO] [stdout] test scalar_fallback::tests::dot_f32_empty ... ok
[INFO] [stdout] test scalar_fallback::tests::mul_f32_basic ... ok
[INFO] [stdout] test scalar_fallback::tests::sad_u8_known_value ... ok
[INFO] [stdout] test scalar_fallback::tests::add_f32_length_mismatch ... ok
[INFO] [stdout] test scalar_fallback::tests::dot_f32_basic ... ok
[INFO] [stdout] test scalar_fallback::tests::clamp_u8_basic ... ok
[INFO] [stdout] test scalar_fallback::tests::box_blur_even_kernel_errors ... ok
[INFO] [stdout] test scalar_fallback::tests::sad_u8_identical_is_zero ... ok
[INFO] [stdout] test scalar_fallback::tests::scalar_histogram_matches_unrolled ... ok
[INFO] [stdout] test simd_bench::tests::bench_config_default_is_reasonable ... ok
[INFO] [stdout] test scalar_fallback::tests::scalar_yuv420_output_size ... ok
[INFO] [stdout] test scalar_fallback::tests::alpha_blend_full_a ... ok
[INFO] [stdout] test scalar_equivalence::tests::forward_dct_dispatcher_matches_scalar_32x32 ... ok
[INFO] [stdout] test scalar_fallback::tests::alpha_blend_full_b ... ok
[INFO] [stdout] test simd_bench::tests::tier_label_is_non_empty ... ok
[INFO] [stdout] test simd_bench::tests::tier_label_matches_valid_values ... ok
[INFO] [stdout] test ssim::tests::different_images_give_ssim_less_than_one ... ok
[INFO] [stdout] test ssim::tests::identical_images_give_ssim_one ... ok
[INFO] [stdout] test ssim::tests::ssim_block_16x16_identical ... ok
[INFO] [stdout] test scalar_equivalence::tests::inverse_dct_dispatcher_matches_scalar_32x32 ... ok
[INFO] [stdout] test ssim::tests::ssim_block_32x32_identical ... ok
[INFO] [stdout] test ssim::tests::ssim_buffer_too_small_returns_error ... ok
[INFO] [stdout] test ssim::tests::ssim_high_snr_near_one ... ok
[INFO] [stdout] test ssim::tests::ssim_partial_tiles_skipped ... ok
[INFO] [stdout] test ssim::tests::ssim_is_symmetric ... ok
[INFO] [stdout] test ssim::tests::ssim_window_count_correct ... ok
[INFO] [stdout] test ssim::tests::ssim_range_is_valid ... ok
[INFO] [stdout] test swizzle::tests::test_broadcast_f32 ... ok
[INFO] [stdout] test swizzle::tests::test_broadcast_u8 ... ok
[INFO] [stdout] test swizzle::tests::test_compact_nonzero ... ok
[INFO] [stdout] test simd_bench::tests::bench_config_clone_is_equal ... ok
[INFO] [stdout] test swizzle::tests::test_gather_out_of_bounds ... ok
[INFO] [stdout] test swizzle::tests::test_gather_u8 ... ok
[INFO] [stdout] test swizzle::tests::test_interleave_deinterleave_roundtrip ... ok
[INFO] [stdout] test swizzle::tests::test_rotate_empty ... ok
[INFO] [stdout] test swizzle::tests::test_rotate_left_right_u8 ... ok
[INFO] [stdout] test swizzle::tests::test_swizzle_f32 ... ok
[INFO] [stdout] test swizzle::tests::test_swizzle_i16 ... ok
[INFO] [stdout] test swizzle::tests::test_swizzle_pattern_broadcast ... ok
[INFO] [stdout] test swizzle::tests::test_swizzle_pattern_identity ... ok
[INFO] [stdout] test swizzle::tests::test_swizzle_pattern_reverse ... ok
[INFO] [stdout] test swizzle::tests::test_swizzle_pattern_rotate_left ... ok
[INFO] [stdout] test swizzle::tests::test_swizzle_pattern_rotate_right ... ok
[INFO] [stdout] test swizzle::tests::test_swizzle_too_short ... ok
[INFO] [stdout] test swizzle::tests::test_extract_halves_and_concat ... ok
[INFO] [stdout] test tests::test_alignment_check ... ok
[INFO] [stdout] test tests::test_cpu_feature_detection ... ok
[INFO] [stdout] test tests::test_dct_sizes ... ok
[INFO] [stdout] test threshold::tests::test_adaptive_threshold_block_size_zero ... ok
[INFO] [stdout] test threshold::tests::test_adaptive_threshold_center_bright ... ok
[INFO] [stdout] test threshold::tests::test_adaptive_threshold_uniform ... ok
[INFO] [stdout] test threshold::tests::test_alpha_threshold_not_multiple_of_4 ... ok
[INFO] [stdout] test threshold::tests::test_alpha_threshold_zeros_below ... ok
[INFO] [stdout] test threshold::tests::test_binary_inv_threshold ... ok
[INFO] [stdout] test swizzle::tests::test_blend_u8 ... ok
[INFO] [stdout] test swizzle::tests::test_zip_unzip_roundtrip ... ok
[INFO] [stdout] test threshold::tests::test_binary_threshold_basic ... ok
[INFO] [stdout] test threshold::tests::test_clamp_range ... ok
[INFO] [stdout] test threshold::tests::test_clamp_range_invalid ... ok
[INFO] [stdout] test threshold::tests::test_compare_select ... ok
[INFO] [stdout] test threshold::tests::test_to_zero_inv_threshold ... ok
[INFO] [stdout] test threshold::tests::test_threshold_length_mismatch ... ok
[INFO] [stdout] test threshold::tests::test_to_zero_threshold ... ok
[INFO] [stdout] test threshold::tests::test_trunc_threshold ... ok
[INFO] [stdout] test transpose::tests::test_is_involution ... ok
[INFO] [stdout] test transpose::tests::test_transpose_1x1 ... ok
[INFO] [stdout] test transpose::tests::test_transpose_4x4_u8 ... ok
[INFO] [stdout] test transpose::tests::test_transpose_8x8_i16 ... ok
[INFO] [stdout] test transpose::tests::test_transpose_8x8_u8_identity_diagonal ... ok
[INFO] [stdout] test transpose::tests::test_transpose_f32_rect ... ok
[INFO] [stdout] test transpose::tests::test_transpose_4x4_i16 ... ok
[INFO] [stdout] test transpose::tests::test_transpose_f32_square ... ok
[INFO] [stdout] test transpose::tests::test_transpose_i16_rect ... ok
[INFO] [stdout] test transpose::tests::test_transpose_double_is_identity ... ok
[INFO] [stdout] test transpose::tests::test_transpose_tiled_matches_naive ... ok
[INFO] [stdout] test vector_math::tests::vec2_add ... ok
[INFO] [stdout] test vector_math::tests::vec2_dot ... ok
[INFO] [stdout] test vector_math::tests::vec2_length ... ok
[INFO] [stdout] test vector_math::tests::vec2_normalize_zero_returns_zero ... ok
[INFO] [stdout] test vector_math::tests::vec2_scale ... ok
[INFO] [stdout] test vector_math::tests::vec2_zero ... ok
[INFO] [stdout] test vector_math::tests::vec3_cross_anticommutative ... ok
[INFO] [stdout] test vector_math::tests::vec3_cross_unit_axes ... ok
[INFO] [stdout] test vector_math::tests::vec3_dot_orthogonal ... ok
[INFO] [stdout] test vector_math::tests::vec3_normalize ... ok
[INFO] [stdout] test vector_math::tests::vec3_normalize_zero_returns_zero ... ok
[INFO] [stdout] test vector_math::tests::vec4_add_and_scale ... ok
[INFO] [stdout] test vector_math::tests::vec4_length_unit ... ok
[INFO] [stdout] test vector_math::tests::vec4_normalize ... ok
[INFO] [stdout] test vector_math::tests::vec4_normalize_zero_returns_zero ... ok
[INFO] [stdout] test vector_math::tests::vec4_xyz_extracts_components ... ok
[INFO] [stdout] test yuv_ops::tests::test_convert_yuv422_row_basic ... ok
[INFO] [stdout] test yuv_ops::tests::test_rgb_to_yuv_black ... ok
[INFO] [stdout] test yuv_ops::tests::test_rgb_to_yuv_blue_dominant_channel ... ok
[INFO] [stdout] test yuv_ops::tests::test_rgb_to_yuv_red_dominant_channel ... ok
[INFO] [stdout] test yuv_ops::tests::test_rgb_to_yuv_white ... ok
[INFO] [stdout] test yuv_ops::tests::test_roundtrip_grey ... ok
[INFO] [stdout] test yuv_ops::tests::test_yuv_plane_default_black ... ok
[INFO] [stdout] test yuv_ops::tests::test_yuv_plane_new ... ok
[INFO] [stdout] test yuv_ops::tests::test_yuv_plane_sample_bounds ... ok
[INFO] [stdout] test yuv_ops::tests::test_yuv_plane_sizes ... ok
[INFO] [stdout] test yuv_ops::tests::test_yuv_to_rgb_black ... ok
[INFO] [stdout] test yuv_ops::tests::test_yuv_to_rgb_clamp_no_panic ... ok
[INFO] [stdout] test yuv_ops::tests::test_yuv_to_rgb_white ... ok
[INFO] [stdout] test yuv_rgb::tests::nv12_alpha_is_255 ... ok
[INFO] [stdout] test yuv_rgb::tests::nv12_to_rgba_output_size ... ok
[INFO] [stdout] test yuv_rgb::tests::rgba_to_yuv420_plane_sizes ... ok
[INFO] [stdout] test yuv_rgb::tests::rgba_to_yuv420_roundtrip_approximate ... ok
[INFO] [stdout] test yuv_rgb::tests::yuv420_alpha_is_255 ... ok
[INFO] [stdout] test yuv_rgb::tests::yuv420_grey_neutral_chrominance ... ok
[INFO] [stdout] test yuv_rgb::tests::yuv420_output_size ... ok
[INFO] [stdout] test yuv_rgb::tests::yuv420_too_small_returns_empty ... ok
[INFO] [stdout] test transpose::tests::test_transpose_u8_rect ... ok
[INFO] [stdout] test vector_math::tests::vec2_normalize ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_satd_8x8_symmetric ... ok
[INFO] [stdout] test simd_bench::tests::each_result_elapsed_is_positive ... ok
[INFO] [stdout] test scalar::tests::test_dct_64x64_roundtrip ... ok
[INFO] [stdout] test simd_bench::tests::each_result_has_non_empty_name ... ok
[INFO] [stdout] test simd_bench::tests::run_benchmarks_returns_non_empty_results ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_satd_8x8_valid_range ... ok
[INFO] [stdout] test simd_bench::tests::run_benchmarks_returns_correct_count ... ok
[INFO] [stdout] test simd_bench::tests::bench_result_clone_preserves_fields ... ok
[INFO] [stdout] test simd_bench::tests::each_result_has_non_empty_tier ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_bilinear_output_in_range ... ok
[INFO] [stdout] test fuzz_targets::tests::prop_bilinear_identity_resize ... ok
[INFO] [stdout] test simd_bench::tests::throughput_is_finite_and_positive ... ok
[INFO] [stderr]    Doc-tests oximedia_simd
[INFO] [stdout] test simd_bench::tests::run_benchmarks_with_longer_measure_gives_more_iterations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 870 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.95s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test src/accumulator.rs - accumulator::AccumulatorStats (line 14) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::yuv_to_rgb_bt2020 (line 299) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::ictcp_to_rgb_bt2100 (line 381) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::YuvPixel (line 39) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::rgb_to_yuv_bt709 (line 184) ... ok
[INFO] [stdout] test src/aligned_alloc.rs - aligned_alloc (line 18) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::rgb_to_yuv_bt2020 (line 261) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::RgbPixel (line 18) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::Rgb2YuvCoeffs::bt2020 (line 107) ... ok
[INFO] [stdout] test src/aligned_alloc.rs - aligned_alloc (line 43) ... ok
[INFO] [stdout] test src/entropy_coding.rs - entropy_coding (line 18) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::yuv_to_rgb_bt709 (line 222) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::rgb_to_ictcp_bt2100 (line 336) ... ok
[INFO] [stdout] test src/color_convert_simd.rs - color_convert_simd::Rgb2YuvCoeffs (line 62) ... ok
[INFO] [stdout] test src/amx.rs - amx (line 30) ... ok
[INFO] [stdout] test src/accumulator.rs - accumulator::SampleAccumulator (line 70) ... ok
[INFO] [stdout] test src/hadamard.rs - hadamard (line 29) ... ok
[INFO] [stdout] test src/neon.rs - neon (line 8) ... ok
[INFO] [stdout] test src/simd_bench.rs - simd_bench (line 9) - compile ... ok
[INFO] [stdout] test src/portable.rs - portable::portable_dot_f32 (line 23) ... ok
[INFO] [stdout] test src/portable.rs - portable::portable_matmul_4x4 (line 68) ... ok
[INFO] [stdout] test src/vector_math.rs - vector_math::Vec3 (line 98) ... ok
[INFO] [stdout] test src/vector_math.rs - vector_math::Vec4 (line 196) ... ok
[INFO] [stdout] test src/sad_subblock.rs - sad_subblock (line 28) ... ok
[INFO] [stdout] test src/vector_math.rs - vector_math::Vec2 (line 13) ... ok
[INFO] [stdout] test src/resize.rs - resize (line 21) ... ok
[INFO] [stdout] test src/portable.rs - portable::portable_rgba_to_luma (line 116) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.24s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "85f2b7045f3d87a31f027edd25374f166cdf13e47c73c68accb248cf0ea64d92", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85f2b7045f3d87a31f027edd25374f166cdf13e47c73c68accb248cf0ea64d92", kill_on_drop: false }`
[INFO] [stdout] 85f2b7045f3d87a31f027edd25374f166cdf13e47c73c68accb248cf0ea64d92
