[INFO] fetching crate oximedia-denoise 0.1.3... [INFO] testing oximedia-denoise-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-denoise 0.1.3 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate oximedia-denoise 0.1.3 [INFO] finished tweaking crates.io crate oximedia-denoise 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-denoise 0.1.3 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-denoise 0.1.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-denoise 0.1.3 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3684457b753a9fce5c464604a6ddabb8ee42cbab4acfc2a2bca9a60af8639390 [INFO] running `Command { std: "docker" "start" "-a" "3684457b753a9fce5c464604a6ddabb8ee42cbab4acfc2a2bca9a60af8639390", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3684457b753a9fce5c464604a6ddabb8ee42cbab4acfc2a2bca9a60af8639390", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3684457b753a9fce5c464604a6ddabb8ee42cbab4acfc2a2bca9a60af8639390", kill_on_drop: false }` [INFO] [stdout] 3684457b753a9fce5c464604a6ddabb8ee42cbab4acfc2a2bca9a60af8639390 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 18576a809c5a1996c33a9a6c4969d4d8c2771e41f17777a19b0d20e4aedf99b6 [INFO] running `Command { std: "docker" "start" "-a" "18576a809c5a1996c33a9a6c4969d4d8c2771e41f17777a19b0d20e4aedf99b6", kill_on_drop: false }` [INFO] [stderr] Compiling audio-core v0.2.1 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling oxifft v0.2.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tokio v1.52.0 [INFO] [stderr] Compiling oxifft-codegen v0.2.0 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling visibility v0.1.1 [INFO] [stderr] Compiling windowfunctions v0.1.1 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling spin v0.10.0 [INFO] [stderr] Compiling seahash v4.1.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling ttf-parser v0.21.1 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling audioadapter v3.0.0 [INFO] [stderr] Compiling audioadapter-sample v3.0.0 [INFO] [stderr] Compiling transpose v0.2.3 [INFO] [stderr] Compiling primal-check v0.3.4 [INFO] [stderr] Compiling audioadapter-buffers v3.0.0 [INFO] [stderr] Compiling rustfft v6.4.1 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling oximedia-core v0.1.3 [INFO] [stderr] Compiling oxiarc-core v0.2.6 [INFO] [stderr] Compiling oxiarc-deflate v0.2.6 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling fontdue v0.9.3 [INFO] [stderr] Compiling jpeg-decoder v0.3.2 [INFO] [stderr] Compiling oximedia-io v0.1.3 [INFO] [stderr] Compiling realfft v3.5.0 [INFO] [stderr] Compiling rubato v2.0.0 [INFO] [stderr] Compiling oximedia-audio v0.1.3 [INFO] [stderr] Compiling oximedia-codec v0.1.3 [INFO] [stderr] Compiling oximedia-graph v0.1.3 [INFO] [stderr] Compiling oximedia-denoise v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.60s [INFO] running `Command { std: "docker" "inspect" "18576a809c5a1996c33a9a6c4969d4d8c2771e41f17777a19b0d20e4aedf99b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "18576a809c5a1996c33a9a6c4969d4d8c2771e41f17777a19b0d20e4aedf99b6", kill_on_drop: false }` [INFO] [stdout] 18576a809c5a1996c33a9a6c4969d4d8c2771e41f17777a19b0d20e4aedf99b6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5c71fb3fe4ed1309ff35e006aceab9fb3f2af64f27b4057c26b4ed7be1cf914e [INFO] running `Command { std: "docker" "start" "-a" "5c71fb3fe4ed1309ff35e006aceab9fb3f2af64f27b4057c26b4ed7be1cf914e", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-denoise v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 6.40s [INFO] running `Command { std: "docker" "inspect" "5c71fb3fe4ed1309ff35e006aceab9fb3f2af64f27b4057c26b4ed7be1cf914e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c71fb3fe4ed1309ff35e006aceab9fb3f2af64f27b4057c26b4ed7be1cf914e", kill_on_drop: false }` [INFO] [stdout] 5c71fb3fe4ed1309ff35e006aceab9fb3f2af64f27b4057c26b4ed7be1cf914e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] c5139f4e6c79756dfc857eb109fc6ba5222cfe79b422e674340a1701770dcf6a [INFO] running `Command { std: "docker" "start" "-a" "c5139f4e6c79756dfc857eb109fc6ba5222cfe79b422e674340a1701770dcf6a", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_denoise-95fb6a0db98d5ff9) [INFO] [stdout] [INFO] [stdout] running 517 tests [INFO] [stdout] test adaptive_denoise::tests::test_adaptive_threshold_at_zero ... ok [INFO] [stdout] test adaptive_denoise::tests::test_noise_estimator_reset ... ok [INFO] [stdout] test adaptive_denoise::tests::test_noise_estimator_starts_zero ... ok [INFO] [stdout] test adaptive_denoise::tests::test_noise_estimator_constant_signal_zero_noise ... ok [INFO] [stdout] test adaptive_denoise::tests::test_noise_estimator_warm_after_window ... ok [INFO] [stdout] test adaptive_denoise::tests::test_noise_estimator_noisy_signal_nonzero ... ok [INFO] [stdout] test adaptive_denoise::tests::test_quality_from_snr_excellent ... ok [INFO] [stdout] test adaptive_denoise::tests::test_adaptive_threshold_at_one ... ok [INFO] [stdout] test adaptive_denoise::tests::test_adaptive_threshold_midpoint_linear ... ok [INFO] [stdout] test adaptive_denoise::tests::test_adaptive_threshold_would_suppress ... ok [INFO] [stdout] test adaptive_denoise::tests::test_quality_from_snr_fair ... ok [INFO] [stdout] test adaptive_denoise::tests::test_quality_from_snr_poor ... ok [INFO] [stdout] test adaptive_denoise::tests::test_quality_from_snr_good ... ok [INFO] [stdout] test adaptive_denoise::tests::test_quality_label ... ok [INFO] [stdout] test adaptive_denoise::tests::test_quality_ord ... ok [INFO] [stdout] test adaptive_denoise::tests::test_adaptive_threshold_clamping ... ok [INFO] [stdout] test adaptive_denoise::tests::test_quality_snr_improvement_db_ordering ... ok [INFO] [stdout] test audio::tests::test_click_remover_detect_impulse ... ok [INFO] [stdout] test audio::tests::test_click_remover_detect_no_clicks ... ok [INFO] [stdout] test audio::tests::test_wiener_filter_gain ... ok [INFO] [stdout] test audio::tests::test_wiener_filter_gain_no_noise ... ok [INFO] [stdout] test audio_denoise::tests::test_audio_denoise_filter_closed_gate ... ok [INFO] [stdout] test audio::tests::test_noise_profile_empty ... ok [INFO] [stdout] test audio_denoise::tests::test_audio_denoise_filter_open_gate ... ok [INFO] [stdout] test audio_denoise::tests::test_audio_denoise_filter_train_and_apply_spectral ... ok [INFO] [stdout] test audio_denoise::tests::test_noise_profile_default ... ok [INFO] [stdout] test audio_denoise::tests::test_audio_denoise_filter_rms_empty ... ok [INFO] [stdout] test audio::tests::test_dft_roundtrip ... ok [INFO] [stdout] test audio_denoise::tests::test_audio_denoise_filter_rms_sine ... ok [INFO] [stdout] test audio_denoise::tests::test_audio_denoise_filter_hold_prevents_early_close ... ok [INFO] [stdout] test audio::tests::test_wiener_filter_gain_all_noise ... ok [INFO] [stdout] test audio_denoise::tests::test_noise_profile_empty_bands_is_stationary ... ok [INFO] [stdout] test audio_denoise::tests::test_noise_profile_is_stationary_flat ... ok [INFO] [stdout] test audio_denoise::tests::test_spectral_subtraction_apply_reduces_magnitude ... ok [INFO] [stdout] test audio_denoise::tests::test_noise_profile_is_not_stationary_high_variance ... ok [INFO] [stdout] test audio_denoise::tests::test_spectral_subtraction_beta_floor ... ok [INFO] [stdout] test audio_denoise::tests::test_spectral_subtraction_compute_noise_floor ... ok [INFO] [stdout] test audio_denoise::tests::test_spectral_subtraction_noise_spectrum_length ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_params_default ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_params_sigma_range ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_params_sigma_spatial ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_weight_large_diff_small ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_weight_symmetry ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_weight_zero_diff ... ok [INFO] [stdout] test bilateral::tests::test_denoiser_output_finite ... ok [INFO] [stdout] test bilateral::tests::test_denoiser_output_size ... ok [INFO] [stdout] test bilateral::tests::test_denoiser_params_accessor ... ok [INFO] [stdout] test bilateral::tests::test_denoiser_uniform_image_unchanged ... ok [INFO] [stdout] test bilateral::tests::test_filter_params_accessor ... ok [INFO] [stdout] test bm3d::tests::test_block_match_max_count ... ok [INFO] [stdout] test bm3d::tests::test_config_light_preset ... ok [INFO] [stdout] test bm3d::tests::test_block_match_always_includes_reference ... ok [INFO] [stdout] test bm3d::tests::test_config_validate_bad_block_size ... ok [INFO] [stdout] test bm3d::tests::test_config_default_values ... ok [INFO] [stdout] test audio::tests::test_wiener_denoiser ... ok [INFO] [stdout] test bilateral::tests::test_filter_apply_pixel_uniform_patch ... ok [INFO] [stdout] test bm3d::tests::test_config_validate_bad_h ... ok [INFO] [stdout] test bm3d::tests::test_config_validate_zero_max_matches ... ok [INFO] [stdout] test bm3d::tests::test_config_validate_bad_sigma ... ok [INFO] [stdout] test bm3d::tests::test_dct2d_roundtrip ... ok [INFO] [stdout] test bilateral::tests::test_filter_apply_pixel_centre_dominant ... ok [INFO] [stdout] test bm3d::tests::test_dct1d_roundtrip ... ok [INFO] [stdout] test bm3d::tests::test_denoise_empty_passthrough ... ok [INFO] [stdout] test bm3d::tests::test_denoise_small_frame ... ok [INFO] [stdout] test bm3d::tests::test_l2_distance_identical ... ok [INFO] [stdout] test bm3d::tests::test_denoise_tiny_frame_passthrough ... ok [INFO] [stdout] test bm3d::tests::test_denoiser_new ... ok [INFO] [stdout] test bm3d::tests::test_wht_non_power_of_two_length ... ok [INFO] [stdout] test bm3d::tests::test_wht_power_of_two ... ok [INFO] [stdout] test chroma_denoise::tests::test_blend_zero_strength ... ok [INFO] [stdout] test chroma_denoise::tests::test_box_blur_impulse ... ok [INFO] [stdout] test chroma_denoise::tests::test_box_blur_uniform ... ok [INFO] [stdout] test chroma_denoise::tests::test_config_default ... ok [INFO] [stdout] test chroma_denoise::tests::test_config_presets ... ok [INFO] [stdout] test chroma_denoise::tests::test_config_validate ... ok [INFO] [stdout] test chroma_denoise::tests::test_estimate_psnr_different ... ok [INFO] [stdout] test audio::tests::test_spectral_subtraction_sine ... ok [INFO] [stdout] test bm3d::tests::test_l2_distance_known ... ok [INFO] [stdout] test chroma_denoise::tests::test_blend_full_strength ... ok [INFO] [stdout] test chroma_denoise::tests::test_chroma_method_default ... ok [INFO] [stdout] test chroma_denoise::tests::test_gaussian_blur_uniform ... ok [INFO] [stdout] test chroma_denoise::tests::test_mean_absolute_diff ... ok [INFO] [stdout] test chroma_denoise::tests::test_median_filter_uniform ... ok [INFO] [stdout] test deblock::tests::test_block_boundary_negative_delta_strong ... ok [INFO] [stdout] test deblock::tests::test_config_accessor ... ok [INFO] [stdout] test deblock::tests::test_config_is_strong_mode_false ... ok [INFO] [stdout] test deblock::tests::test_config_is_strong_mode_true ... ok [INFO] [stdout] test deblock::tests::test_deblock_strength_alpha_ordering ... ok [INFO] [stdout] test deblock::tests::test_deblock_strength_beta_ordering ... ok [INFO] [stdout] test deblock::tests::test_deblock_strength_alpha_weak ... ok [INFO] [stdout] test deblock::tests::test_block_boundary_is_strong_above ... ok [INFO] [stdout] test deblock::tests::test_block_boundary_is_strong_below ... ok [INFO] [stdout] test deblock::tests::test_filter_horizontal_reduces_boundary_artifact ... ok [INFO] [stdout] test deblock::tests::test_filter_large_delta_not_filtered ... ok [INFO] [stdout] test chroma_denoise::tests::test_estimate_psnr_identical ... ok [INFO] [stdout] test deblock::tests::test_filter_skip_horizontal_when_disabled ... ok [INFO] [stdout] test deblock::tests::test_filter_vertical_reduces_boundary_artifact ... ok [INFO] [stdout] test denoise_config::tests::test_config_validate_bad_edge ... ok [INFO] [stdout] test denoise_config::tests::test_all_presets_validate ... ok [INFO] [stdout] test denoise_config::tests::test_config_validate_bad_radius ... ok [INFO] [stdout] test deblock::tests::test_filter_apply_no_panic ... ok [INFO] [stdout] test denoise_config::tests::test_config_default ... ok [INFO] [stdout] test denoise_config::tests::test_preset_description_nonempty ... ok [INFO] [stdout] test denoise_config::tests::test_preset_streaming ... ok [INFO] [stdout] test denoise_config::tests::test_preset_archival ... ok [INFO] [stdout] test denoise_config::tests::test_preset_display ... ok [INFO] [stdout] test denoise_config::tests::test_strength_from_f32_boundaries ... ok [INFO] [stdout] test denoise_config::tests::test_config_validate_ok ... ok [INFO] [stdout] test denoise_config::tests::test_strength_ordering ... ok [INFO] [stdout] test denoise_config::tests::test_temporal_window_normal ... ok [INFO] [stdout] test denoise_config::tests::test_temporal_window_realtime ... ok [INFO] [stdout] test audio::tests::test_click_remover_repair ... ok [INFO] [stdout] test denoise_config::tests::test_strength_as_f32 ... ok [INFO] [stdout] test audio::tests::test_noise_profile_from_silence ... ok [INFO] [stdout] test denoise_config::tests::test_strength_from_f32_clamps ... ok [INFO] [stdout] test denoise_metrics::tests::test_all_metrics_count ... ok [INFO] [stdout] test denoise_metrics::tests::test_is_acceptable_psnr_good ... ok [INFO] [stdout] test denoise_metrics::tests::test_mse_identical_frames ... ok [INFO] [stdout] test denoise_metrics::tests::test_pixel_count ... ok [INFO] [stdout] test denoise_metrics::tests::test_psnr_identical_frames ... ok [INFO] [stdout] test denoise_metrics::tests::test_psnr_offset_frames ... ok [INFO] [stdout] test denoise_metrics::tests::test_snr_identical_frames ... ok [INFO] [stdout] test denoise_metrics::tests::test_empty_buffers ... ok [INFO] [stdout] test denoise_metrics::tests::test_snr_positive_for_offset ... ok [INFO] [stdout] test denoise_metrics::tests::test_is_acceptable_psnr_bad ... ok [INFO] [stdout] test denoise_metrics::tests::test_metric_display ... ok [INFO] [stdout] test denoise_metrics::tests::test_ssim_identical ... ok [INFO] [stdout] test denoise_metrics::tests::test_ssim_range ... ok [INFO] [stdout] test denoise_metrics::tests::test_metric_result_display ... ok [INFO] [stdout] test denoise_metrics::tests::test_total_variation_alternating ... ok [INFO] [stdout] test estimator::noise::tests::test_block_variance ... ok [INFO] [stdout] test denoise_metrics::tests::test_total_variation_flat ... ok [INFO] [stdout] test estimator::noise::tests::test_estimator_reset ... ok [INFO] [stdout] test estimator::noise::tests::test_noise_estimation_laplacian ... ok [INFO] [stdout] test estimator::noise::tests::test_noise_estimation_block_variance ... ok [INFO] [stdout] test estimator::noise::tests::test_noise_estimator_creation ... ok [INFO] [stdout] test estimator::variance::tests::test_block_stats ... ok [INFO] [stdout] test estimator::variance::tests::test_local_variance ... ok [INFO] [stdout] test estimator::noise::tests::test_noise_estimation_mad ... ok [INFO] [stdout] test audio::tests::test_wiener_denoiser_empty ... ok [INFO] [stdout] test bm3d::tests::test_config_strong_preset ... ok [INFO] [stdout] test denoise_config::tests::test_strength_display ... ok [INFO] [stdout] test denoise_metrics::tests::test_compute_by_tag ... ok [INFO] [stdout] test estimator::noise::tests::test_estimator_with_frame ... ok [INFO] [stdout] test audio::tests::test_hiss_remover_silence ... ok [INFO] [stdout] test estimator::variance::tests::test_signal_dependent_variance ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_new ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_psnr_different ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_get_out_of_bounds ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_u8_plane_too_short ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_u8_roundtrip ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_zero_dims_error ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_add ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_get_set ... ok [INFO] [stdout] test grain::analysis::tests::test_box_blur_uniform ... ok [INFO] [stdout] test grain::analysis::tests::test_analyze_grain ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_filled ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_from_vec_length_mismatch ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_get_clamped ... ok [INFO] [stdout] test grain::analysis::tests::test_box_blur_zero_radius ... ok [INFO] [stdout] test grain::analysis::tests::test_characterize_grain_empty_planes ... ok [INFO] [stdout] test estimator::variance::tests::test_variance_map_creation ... ok [INFO] [stdout] test grain::analysis::tests::test_high_frequency_extraction ... ok [INFO] [stdout] test grain::analysis::tests::test_characterize_grain_frequency_noisy_frame ... ok [INFO] [stdout] test grain::analysis::tests::test_resembles_film_grain_flat_content ... ok [INFO] [stdout] test grain::analysis::tests::test_grain_size_estimation ... ok [INFO] [stdout] test grain::analysis::tests::test_characterize_grain_frequency_dominant_freq_range ... ok [INFO] [stdout] test grain::analysis::tests::test_characterize_grain_frequency_flat_frame ... ok [INFO] [stdout] test grain::analysis::tests::test_characterize_grain_frequency_spectral_tilt_positive ... ok [INFO] [stdout] test grain::analysis::tests::test_grain_pattern_classification ... ok [INFO] [stdout] test grain::preserve::tests::test_grain_extraction ... ok [INFO] [stdout] test estimator::variance::tests::test_variance_classification ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_psnr_dim_mismatch ... ok [INFO] [stdout] test frame2d::tests::test_frame2d_psnr_identical ... ok [INFO] [stdout] test bm3d::tests::test_denoise_output_finite ... ok [INFO] [stdout] test hybrid::adaptive::tests::test_local_variance ... ok [INFO] [stdout] test hybrid::adaptive::tests::test_activity_map ... ok [INFO] [stdout] test hybrid::adaptive::tests::test_frame_activity_analysis ... ok [INFO] [stdout] test audio::tests::test_spectral_subtraction_silence ... ok [INFO] [stdout] test hybrid::spatiotemporal::tests::test_motion_detection ... ok [INFO] [stdout] test motion::compensation::tests::test_motion_compensate ... ok [INFO] [stdout] test bm3d::tests::test_denoise_constant_frame_stays_near_constant ... ok [INFO] [stdout] test motion::estimation::tests::test_downsample_plane ... ok [INFO] [stdout] test motion::compensation::tests::test_weighted_motion_compensate ... ok [INFO] [stdout] test motion::estimation::tests::test_downsample_plane_zero ... ok [INFO] [stdout] test motion::estimation::tests::test_downsample_plane_small ... ok [INFO] [stdout] test hybrid::spatiotemporal::tests::test_box_filter ... ok [INFO] [stdout] test audio::tests::test_hiss_remover_high_freq ... ok [INFO] [stdout] test motion::estimation::tests::test_diamond_search ... ok [INFO] [stdout] test hybrid::adaptive::tests::test_adaptive_denoise ... ok [INFO] [stdout] test motion::estimation::tests::test_hierarchical_empty_planes ... ok [INFO] [stdout] test motion::estimation::tests::test_hierarchical_motion_estimation ... ok [INFO] [stdout] test grain::preserve::tests::test_preserve_grain_denoise ... ok [INFO] [stdout] test motion::estimation::tests::test_motion_estimator_creation ... ok [INFO] [stdout] test multiscale::pyramid::tests::test_downsample_upsample ... ok [INFO] [stdout] test motion::estimation::tests::test_hierarchical_produces_correct_count ... ok [INFO] [stdout] test motion::estimation::tests::test_motion_estimation ... ok [INFO] [stdout] test motion::estimation::tests::test_hierarchical_identical_frames ... ok [INFO] [stdout] test multiscale::pyramid::tests::test_pyramid_construction ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_haar_empty ... ok [INFO] [stdout] test hybrid::spatiotemporal::tests::test_spatio_temporal_few_frames ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_haar_forward_constant ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_haar_forward_even ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_haar_inverse_roundtrip ... ok [INFO] [stdout] test multiscale::pyramid::tests::test_pyramid_reconstruction ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_soft_threshold_above_positive ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_soft_threshold_below ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_universal_threshold ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_universal_threshold_zero_n ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_wavelet_denoiser_1d_length_preserved ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_wavelet_denoiser_suppresses_noise ... ok [INFO] [stdout] test multiscale::wavelet::tests::test_config_default ... ok [INFO] [stdout] test multiscale::wavelet::haar_tests::test_soft_threshold_above_negative ... ok [INFO] [stdout] test motion::estimation::tests::test_hierarchical_block_size_8 ... ok [INFO] [stdout] test motion::estimation::tests::test_hierarchical_unique_content_identical ... ok [INFO] [stdout] test hybrid::spatiotemporal::tests::test_spatio_temporal_denoise ... ok [INFO] [stdout] test motion::compensation::tests::test_bidirectional_motion_compensate ... ok [INFO] [stdout] test noise_estimate::tests::test_empty_frame ... ok [INFO] [stdout] test noise_estimate::tests::test_estimator_laplacian ... ok [INFO] [stdout] test noise_estimate::tests::test_estimator_frame_diff_first_frame ... ok [INFO] [stdout] test noise_estimate::tests::test_estimator_local_variance_flat ... ok [INFO] [stdout] test multiscale::wavelet::tests::test_parallel_wavelet_uniform_preserves_values ... ok [INFO] [stdout] test noise_estimate::tests::test_estimator_reset ... ok [INFO] [stdout] test noise_estimate::tests::test_method_display ... ok [INFO] [stdout] test noise_estimate::tests::test_is_noisy ... ok [INFO] [stdout] test noise_estimate::tests::test_noise_estimate_with_channels ... ok [INFO] [stdout] test noise_estimate::tests::test_noise_estimate_new ... ok [INFO] [stdout] test noise_estimate::tests::test_slice_mad_flat ... ok [INFO] [stdout] test noise_estimate::tests::test_slice_variance_flat ... ok [INFO] [stdout] test multiscale::wavelet::tests::test_multiscale_wavelet_denoise ... ok [INFO] [stdout] test noise_estimate::tests::test_smoothed_sigma_empty ... ok [INFO] [stdout] test noise_estimate::tests::test_snr_db_zero_sigma ... ok [INFO] [stdout] test noise_estimate::tests::test_snr_db_nonzero ... ok [INFO] [stdout] test noise_model::tests::test_classify_noise_clean ... ok [INFO] [stdout] test noise_model::tests::test_estimate_gaussian_constant ... ok [INFO] [stdout] test multiscale::wavelet::tests::test_parallel_wavelet_denoise_basic ... ok [INFO] [stdout] test noise_model::tests::test_estimate_gaussian_spread ... ok [INFO] [stdout] test noise_model::tests::test_estimate_salt_pepper ... ok [INFO] [stdout] test multiscale::wavelet::tests::test_level_dependent_wavelet ... ok [INFO] [stdout] test multiscale::pyramid::tests::test_pyramid_denoise ... ok [INFO] [stdout] test noise_model::tests::test_gaussian_model ... ok [INFO] [stdout] test grain::preserve::tests::test_adaptive_grain_preserve ... ok [INFO] [stdout] test noise_model::tests::test_gaussian_snr_zero_noise ... ok [INFO] [stdout] test noise_model::tests::test_excess_kurtosis_uniform ... ok [INFO] [stdout] test noise_model::tests::test_noise_profile_clean ... ok [INFO] [stdout] test noise_model::tests::test_noise_type_display ... ok [INFO] [stdout] test noise_model::tests::test_salt_pepper_clamp ... ok [INFO] [stdout] test noise_model::tests::test_salt_pepper_model ... ok [INFO] [stdout] test noise_model::tests::test_skewness_symmetric ... ok [INFO] [stdout] test profile::tests::test_estimate_empty_returns_zero ... ok [INFO] [stdout] test profile::tests::test_estimate_known_noise ... ok [INFO] [stdout] test profile::tests::test_estimate_single_pixel ... ok [INFO] [stdout] test noise_model::tests::test_estimate_gaussian_empty ... ok [INFO] [stdout] test profile::tests::test_frequency_analysis_noisy_row_has_positive_energy ... ok [INFO] [stdout] test profile::tests::test_frequency_analysis_returns_8_bands ... ok [INFO] [stdout] test profile::tests::test_frequency_analysis_uniform_block_is_zero ... ok [INFO] [stdout] test profile::tests::test_is_heavy_noise_false ... ok [INFO] [stdout] test profile::tests::test_is_heavy_noise_true ... ok [INFO] [stdout] test noise_estimate::tests::test_smoothed_sigma_after_frames ... ok [INFO] [stdout] test profile::tests::test_is_heavy_noise_boundary ... ok [INFO] [stdout] test profile::tests::test_snr_estimate_decreases_with_more_noise ... ok [INFO] [stdout] test profile::tests::test_snr_estimate_infinite_for_zero_sigma ... ok [INFO] [stdout] test profile::tests::test_snr_estimate_positive ... ok [INFO] [stdout] test multiscale::wavelet::tests::test_adaptive_multiscale_wavelet ... ok [INFO] [stdout] test motion::estimation::tests::test_hierarchical_larger_frame ... ok [INFO] [stdout] test profile::tests::test_estimate_constant_signal_zero_sigma ... ok [INFO] [stdout] test profile::tests::test_threshold_history_recorded ... ok [INFO] [stdout] test noise_model::tests::test_gaussian_snr_db ... ok [INFO] [stdout] test noise_model::tests::test_gaussian_snr ... ok [INFO] [stdout] test profile::tests::test_threshold_initial_equals_base ... ok [INFO] [stdout] test multiscale::wavelet::tests::test_parallel_wavelet_all_threshold_methods ... ok [INFO] [stdout] test profile::tests::test_threshold_rate_clamped ... ok [INFO] [stdout] test region_denoise::tests::test_apply_strength_map ... ok [INFO] [stdout] test region_denoise::tests::test_region_edges ... ok [INFO] [stdout] test profile::tests::test_total_sigma_all_equal ... ok [INFO] [stdout] test region_denoise::tests::test_config_add_region ... ok [INFO] [stdout] test region_denoise::tests::test_region_contains ... ok [INFO] [stdout] test profile::tests::test_total_sigma_zero ... ok [INFO] [stdout] test region_denoise::tests::test_region_intersect ... ok [INFO] [stdout] test region_denoise::tests::test_region_params_strength_clamp ... ok [INFO] [stdout] test region_denoise::tests::test_region_intersect_disjoint ... ok [INFO] [stdout] test region_denoise::tests::test_region_params_builder ... ok [INFO] [stdout] test profile::tests::test_threshold_update_moves_towards_measurement ... ok [INFO] [stdout] test region_denoise::tests::test_region_new ... ok [INFO] [stdout] test noise_estimate::tests::test_estimator_mad_noisy ... ok [INFO] [stdout] test region_denoise::tests::test_region_priority_ordering ... ok [INFO] [stdout] test region_denoise::tests::test_strength_map_from_config ... ok [INFO] [stdout] test region_denoise::tests::test_strength_map_out_of_bounds ... ok [INFO] [stdout] test region_denoise::tests::test_strength_map_uniform ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_empty_frame_error ... ok [INFO] [stdout] test spatial::bilateral::tests::test_apply_simd_small_sigma ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_lut_range ... ok [INFO] [stdout] test spatial::bilateral::tests::test_bilateral_zero_strength ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_preserves_edges ... ok [INFO] [stdout] test noise_estimate::tests::test_with_window ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_simd_creation ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_simd_invalid_sigma_color ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_simd_invalid_sigma_space ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_scalar_output_shape ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_simd_vs_scalar_small_frame ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_block_size_too_large ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_block_size_too_small ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_scalar_uniform_input ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_empty_frame_error ... ok [INFO] [stdout] test spatial::bilateral::tests::test_apply_simd_uniform_input_unchanged ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_different_sigmas ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_scalar_smooths_noise ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_new_valid ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_search_window_too_small ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_sigma_negative ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_sigma_zero ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_small_frame_fallback ... ok [INFO] [stdout] test spatial::bm3d::tests::test_haar_1d_roundtrip ... ok [INFO] [stdout] test spatial::bm3d::tests::test_haar_2d_roundtrip ... ok [INFO] [stdout] test spatial::bm3d::tests::test_ssd_identical_patches ... ok [INFO] [stdout] test spatial::nlm::tests::test_config_default_patch_size ... ok [INFO] [stdout] test spatial::nlm::tests::test_config_mild_patch_size ... ok [INFO] [stdout] test spatial::nlm::tests::test_config_search_size ... ok [INFO] [stdout] test spatial::nlm::tests::test_config_strong_patch_size ... ok [INFO] [stdout] test spatial::bilateral::tests::test_apply_simd_scalar_consistency ... ok [INFO] [stdout] test spatial::bilateral::tests::test_apply_simd_output_length ... ok [INFO] [stdout] test spatial::nlm::tests::test_nlm_pixel_returns_value_in_range ... ok [INFO] [stdout] test spatial::nlm::tests::test_nlm_pixel_uniform_image ... ok [INFO] [stdout] test spatial::nlm::tests::test_nlm_weight_large_ssd_small_weight ... ok [INFO] [stdout] test spatial::nlm::tests::test_nlm_weight_zero_h_returns_zero ... ok [INFO] [stdout] test spatial::nlm::tests::test_nlm_weight_zero_ssd ... ok [INFO] [stdout] test spatial::nlm::tests::test_patch_ssd_identical ... ok [INFO] [stdout] test spatial::nlm::tests::test_patch_ssd_known ... ok [INFO] [stdout] test spatial::nlm::tests::test_patch_ssd_mismatched_lengths_returns_zero ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_enhanced_bilateral_size_preserved ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_enhanced_bilateral_uniform ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_extract_patch_centre ... ok [INFO] [stdout] test spatial::bilateral_simd::tests::test_bilateral_simd_vs_scalar_ramp ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_gaussian_kernel_length ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_gaussian_kernel_sums_to_one ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_gaussian_kernel_symmetry ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_nlm_approx_filter_size_preserved ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_nlm_approx_filter_uniform ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_nlm_config_defaults ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_nlm_config_fast ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_nlm_weight_different_patches ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_nlm_weight_identical_patches ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_patch_mse_different ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_patch_mse_identical ... ok [INFO] [stdout] test spatial::nlm::tests::test_denoiser_output_length ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_patch_mse_length_mismatch ... ok [INFO] [stdout] test spatial::bilateral::tests::test_bilateral_max_strength ... ok [INFO] [stdout] test spatial::nlm::tests::test_denoiser_uniform_image_unchanged ... ok [INFO] [stdout] test spatial::nlmeans::tests::test_patch_distance ... ok [INFO] [stdout] test spatial::nlm_approx::tests::test_extract_patch_corner ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_output_shape ... ok [INFO] [stdout] test bm3d::tests::test_denoise_reduces_variance ... ok [INFO] [stdout] test spatial::wavelet::tests::test_haar_transform ... ok [INFO] [stdout] test spatial::wavelet::tests::test_threshold_methods ... ok [INFO] [stdout] test spatial::wavelet::tests::test_wavelet_all_methods ... ok [INFO] [stdout] test spatial::wavelet::tests::test_wavelet_denoise ... ok [INFO] [stdout] test grain::preserve::tests::test_extract_and_restore_grain ... ok [INFO] [stdout] test spatial::wiener::tests::test_adaptive_wiener_filter ... ok [INFO] [stdout] test spatial::wiener::tests::test_local_statistics_varied ... ok [INFO] [stdout] test spatial::wiener::tests::test_noise_estimation ... ok [INFO] [stdout] test spatial::wiener::tests::test_local_statistics ... ok [INFO] [stdout] test spatial::wiener::tests::test_two_step_denoise_max_strength ... ok [INFO] [stdout] test spatial::wiener::tests::test_two_step_denoise_basic ... ok [INFO] [stdout] test spatial::wiener::tests::test_two_step_denoise_zero_strength ... ok [INFO] [stdout] test spatial::wiener::tests::test_two_step_empty_frame ... ok [INFO] [stdout] test spatial::wiener::tests::test_wiener_filter ... ok [INFO] [stdout] test spatial::wiener::tests::test_wiener_refinement_uniform ... ok [INFO] [stdout] test spectral_gate::tests::test_config_default_attack_ms ... ok [INFO] [stdout] test spectral_gate::tests::test_config_default_release_ms ... ok [INFO] [stdout] test spectral_gate::tests::test_config_floor_db ... ok [INFO] [stdout] test spectral_gate::tests::test_config_validate_bad_floor_db ... ok [INFO] [stdout] test spectral_gate::tests::test_config_validate_ok ... ok [INFO] [stdout] test spectral_gate::tests::test_config_validate_zero_bins ... ok [INFO] [stdout] test spectral_gate::tests::test_gate_learn_noise_floor_and_open ... ok [INFO] [stdout] test spectral_gate::tests::test_gate_process_frame_output_length ... ok [INFO] [stdout] test spectral_gate::tests::test_gate_reduction_db_zero_before_processing ... ok [INFO] [stdout] test spectral_gate::tests::test_gate_reset ... ok [INFO] [stdout] test spectral_gate::tests::test_gate_threshold_is_above ... ok [INFO] [stdout] test spectral_gate::tests::test_gate_threshold_is_below ... ok [INFO] [stdout] test spectral_gate::tests::test_gate_threshold_value ... ok [INFO] [stdout] test spectral_gate::tests::test_stats_avg_reduction ... ok [INFO] [stdout] test spectral_subtraction::tests::test_config_aggressive ... ok [INFO] [stdout] test spectral_subtraction::tests::test_config_default ... ok [INFO] [stdout] test spectral_subtraction::tests::test_config_gentle ... ok [INFO] [stdout] test spectral_subtraction::tests::test_config_validate_bad_alpha ... ok [INFO] [stdout] test spectral_subtraction::tests::test_config_validate_bad_beta ... ok [INFO] [stdout] test spectral_subtraction::tests::test_config_validate_small_fft ... ok [INFO] [stdout] test spatial::wiener::tests::test_two_step_denoise_preserves_dimensions ... ok [INFO] [stdout] test spectral_subtraction::tests::test_denoise_no_profile_passthrough ... ok [INFO] [stdout] test spectral_subtraction::tests::test_denoise_empty_input ... ok [INFO] [stdout] test spatial::nlmeans::tests::test_nlmeans_small_frame ... ok [INFO] [stdout] test spatial::nlm::tests::test_denoiser_reduces_noise ... ok [INFO] [stdout] test bm3d::tests::test_denoise_output_length_matches_input ... ok [INFO] [stdout] test spectral_subtraction::tests::test_hann_window_endpoints ... ok [INFO] [stdout] test spectral_subtraction::tests::test_hann_window_peak ... ok [INFO] [stdout] test spectral_subtraction::tests::test_new_has_no_profile ... ok [INFO] [stdout] test spectral_subtraction::tests::test_noise_profile_length ... ok [INFO] [stdout] test spectral_subtraction::tests::test_rdft_roundtrip ... ok [INFO] [stdout] test spectral_subtraction::tests::test_reset_clears_profile ... ok [INFO] [stdout] test spectral_subtraction::tests::test_denoise_silent_input ... ok [INFO] [stdout] test spectral_subtraction::tests::test_update_noise_profile_non_zero ... ok [INFO] [stdout] test spectral_subtraction::tests::test_update_noise_profile_short_segment ... ok [INFO] [stdout] test temporal::average::tests::test_exponential_temporal_average ... ok [INFO] [stdout] test temporal::average::tests::test_exponential_temporal_average_no_previous ... ok [INFO] [stdout] test spatial::nlmeans::tests::test_fast_nlmeans_filter ... ok [INFO] [stdout] test temporal::average::tests::test_temporal_average ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_detect_motion_mask_all_motion ... ok [INFO] [stdout] test spectral_subtraction::tests::test_update_noise_profile_sets_flag ... ok [INFO] [stdout] test temporal::average::tests::test_temporal_average_empty_buffer ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_detect_motion_mask_no_motion ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_inter_frame_mad_different ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_exponential_decay_weights_sum_to_one ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_inter_frame_mad_identical ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_exponential_decay_centre_is_max ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_motion_adaptive_high_motion ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_motion_adaptive_no_motion ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_temporal_average_single_frame ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_temporal_average_two_values ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_temporal_average_uniform_frames ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_uniform_weights_sum_to_one ... ok [INFO] [stdout] test temporal::kalman::tests::test_adaptive_kalman_filter ... ok [INFO] [stdout] test temporal::kalman::tests::test_kalman_filter ... ok [INFO] [stdout] test temporal::kalman::tests::test_kalman_multiple_frames ... ok [INFO] [stdout] test temporal::kalman::tests::test_kalman_state_creation ... ok [INFO] [stdout] test temporal::kalman::tests::test_noise_estimation ... ok [INFO] [stdout] test temporal::median::tests::test_median_function ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_inter_frame_mad_length_mismatch ... ok [INFO] [stdout] test temporal::frame_avg::tests::test_linear_decay_weights_sum_to_one ... ok [INFO] [stdout] test temporal::median::tests::test_temporal_median ... ok [INFO] [stdout] test temporal::median::tests::test_temporal_median_empty_buffer ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_block_sad_asymmetric ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_block_sad_known_value ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_full_search_mv_no_motion ... ok [INFO] [stdout] test temporal::median::tests::test_weighted_temporal_median ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_mc_denoiser_full_strength_copies_reference ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_full_search_mv_returns_mv ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_mc_denoiser_output_length ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_mc_denoiser_temporal_strength_clamped ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_mc_denoiser_zero_strength_unchanged ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_motion_vector_default_is_still ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_motion_vector_magnitude_3_4_is_5 ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_mc_denoiser_uniform_frames ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_motion_vector_negative_components ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_motion_vector_not_still ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_motion_vector_magnitude_zero ... ok [INFO] [stdout] test temporal::motioncomp::tests::test_motion_compensated_insufficient_frames ... ok [INFO] [stdout] test tests::test_channel_strength_chroma_heavy ... ok [INFO] [stdout] test tests::test_channel_strength_for_plane ... ok [INFO] [stdout] test tests::test_channel_strength_uniform ... ok [INFO] [stdout] test tests::test_channel_strength_validate ... ok [INFO] [stdout] test temporal::motioncomp::tests::test_motion_compensated_denoise ... ok [INFO] [stdout] test tests::test_config_custom_builder ... ok [INFO] [stdout] test tests::test_config_default ... ok [INFO] [stdout] test tests::test_config_presets ... ok [INFO] [stdout] test tests::test_config_validation ... ok [INFO] [stdout] test spectral_subtraction::tests::test_denoise_output_finite ... ok [INFO] [stdout] test tests::test_config_with_noise_model ... ok [INFO] [stdout] test tests::test_combined_noise_model_and_channels ... ok [INFO] [stdout] test tests::test_custom_bilateral ... ok [INFO] [stdout] test tests::test_custom_bm3d_two_step ... ok [INFO] [stdout] test spatial::nlmeans::tests::test_tiled_nlmeans_large_tile ... ok [INFO] [stdout] test tests::test_custom_with_grain_aware ... ok [INFO] [stdout] test temporal::motion_comp::tests::test_block_sad_identical ... ok [INFO] [stdout] test tests::test_denoiser_creation ... ok [INFO] [stdout] test tests::test_custom_wavelet ... ok [INFO] [stdout] test tests::test_custom_wiener ... ok [INFO] [stdout] test tests::test_effective_strength_with_channels ... ok [INFO] [stdout] test tests::test_effective_strength_without_channels ... ok [INFO] [stdout] test tests::test_noise_model_all_variants ... ok [INFO] [stdout] test tests::test_noise_model_strength_scale_gaussian ... ok [INFO] [stdout] test tests::test_noise_model_strength_scale_poisson ... ok [INFO] [stdout] test tests::test_noise_model_strength_scale_salt_pepper ... ok [INFO] [stdout] test tests::test_noise_model_strength_scale_speckle ... ok [INFO] [stdout] test spatial::nlmeans::tests::test_nlmeans_filter ... ok [INFO] [stdout] test spectral_subtraction::tests::test_denoise_reduces_noise_rms ... ok [INFO] [stdout] test video::tests::test_bilateral_constant_frame ... ok [INFO] [stdout] test video::tests::test_bilateral_output_size ... ok [INFO] [stdout] test video::tests::test_gaussian_denoise_constant_frame ... ok [INFO] [stdout] test video::tests::test_gaussian_denoise_output_size ... ok [INFO] [stdout] test video::tests::test_gaussian_denoise_smooths_checkerboard ... ok [INFO] [stdout] test tests::test_per_channel_zero_luma ... ok [INFO] [stdout] test video::tests::test_median_5x5_output_size ... ok [INFO] [stdout] test video::tests::test_median_3x3_output_size ... ok [INFO] [stdout] test video::tests::test_median_removes_impulse ... ok [INFO] [stdout] test video::tests::test_noise_estimator_constant ... ok [INFO] [stdout] test video::tests::test_temporal_averager_average ... ok [INFO] [stdout] test video::tests::test_temporal_averager_empty ... ok [INFO] [stdout] test video::tests::test_temporal_averager_ring_buffer ... ok [INFO] [stdout] test video::tests::test_temporal_averager_single_frame ... ok [INFO] [stdout] test video_denoise::tests::test_pipeline_buffer_capped_at_window_plus_one ... ok [INFO] [stdout] test video_denoise::tests::test_pipeline_buffer_grows ... ok [INFO] [stdout] test spatial::bilateral::tests::test_bilateral_filter ... ok [INFO] [stdout] test video_denoise::tests::test_pipeline_passthrough ... ok [INFO] [stdout] test video::tests::test_noise_estimator_white_noise ... ok [INFO] [stdout] test video_denoise::tests::test_pipeline_realtime_spatial_blur ... ok [INFO] [stdout] test video_denoise::tests::test_pipeline_reset_clears_buffer ... ok [INFO] [stdout] test video_denoise::tests::test_pipeline_temporal_blend ... ok [INFO] [stdout] test video_denoise::tests::test_spatial_config_is_strong_false ... ok [INFO] [stdout] test video_denoise::tests::test_spatial_config_is_strong_large_radius ... ok [INFO] [stdout] test video_denoise::tests::test_spatial_config_is_strong_true ... ok [INFO] [stdout] test video_denoise::tests::test_temporal_config_default ... ok [INFO] [stdout] test video_denoise::tests::test_video_denoise_mode_label ... ok [INFO] [stdout] test video_denoise::tests::test_video_denoise_mode_needs_temporal_buffer ... ok [INFO] [stdout] test video_denoise::tests::test_pipeline_quality_mode_uses_motion_compensation ... ok [INFO] [stdout] test tests::test_denoiser_reset ... ok [INFO] [stdout] test tests::test_denoiser_process ... ok [INFO] [stdout] test tests::test_per_channel_denoising ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_psnr_improvement ... ok [INFO] [stdout] test spectral_subtraction::tests::test_denoise_output_length_equals_input ... ok [INFO] [stdout] test tests::test_custom_with_temporal ... ok [INFO] [stdout] test tests::test_custom_nlmeans ... ok [INFO] [stdout] test spatial::bilateral::tests::test_fast_bilateral_filter ... ok [INFO] [stdout] test spatial::bm3d::tests::test_bm3d_clean_signal_stability ... ok [INFO] [stdout] test hybrid::adaptive::tests::test_auto_adaptive_denoise ... ok [INFO] [stdout] test hybrid::spatiotemporal::tests::test_adaptive_spatio_temporal ... ok [INFO] [stdout] test spatial::nlmeans::tests::test_tiled_nlmeans_uniform_frame ... ok [INFO] [stdout] test spatial::nlmeans::tests::test_tiled_nlmeans_basic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 517 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.29s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_denoise [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test src/spatial/bm3d.rs - spatial::bm3d::Bm3dDenoiser (line 31) ... ok [INFO] [stdout] test src/noise_estimate.rs - noise_estimate::NoiseEstimator (line 126) ... ok [INFO] [stdout] test src/spectral_subtraction.rs - spectral_subtraction (line 19) ... ok [INFO] [stdout] test src/denoise_metrics.rs - denoise_metrics::DenoiseMetrics (line 95) ... ok [INFO] [stdout] test src/bm3d.rs - bm3d (line 17) ... ok [INFO] [stdout] test src/lib.rs - (line 29) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.96s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c5139f4e6c79756dfc857eb109fc6ba5222cfe79b422e674340a1701770dcf6a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c5139f4e6c79756dfc857eb109fc6ba5222cfe79b422e674340a1701770dcf6a", kill_on_drop: false }` [INFO] [stdout] c5139f4e6c79756dfc857eb109fc6ba5222cfe79b422e674340a1701770dcf6a