[INFO] fetching crate oximedia-quality 0.1.5...
[INFO] testing oximedia-quality-0.1.5 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate oximedia-quality 0.1.5 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate oximedia-quality 0.1.5
[INFO] finished tweaking crates.io crate oximedia-quality 0.1.5
[INFO] tweaked toml for crates.io crate oximedia-quality 0.1.5 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate oximedia-quality 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-quality 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] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 178345200f81f5bac80b7d83add348dcb84a64e08d379c648a4e38bc342cbca8
[INFO] running `Command { std: "docker" "start" "-a" "178345200f81f5bac80b7d83add348dcb84a64e08d379c648a4e38bc342cbca8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "178345200f81f5bac80b7d83add348dcb84a64e08d379c648a4e38bc342cbca8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "178345200f81f5bac80b7d83add348dcb84a64e08d379c648a4e38bc342cbca8", kill_on_drop: false }`
[INFO] [stdout] 178345200f81f5bac80b7d83add348dcb84a64e08d379c648a4e38bc342cbca8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] e4c1944eb6c6fce39b60a63a2513f34827667e14592de900a9bccb5c731acbd9
[INFO] running `Command { std: "docker" "start" "-a" "e4c1944eb6c6fce39b60a63a2513f34827667e14592de900a9bccb5c731acbd9", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling oximedia-core v0.1.5
[INFO] [stderr]    Compiling oximedia-quality v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.85s
[INFO] running `Command { std: "docker" "inspect" "e4c1944eb6c6fce39b60a63a2513f34827667e14592de900a9bccb5c731acbd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e4c1944eb6c6fce39b60a63a2513f34827667e14592de900a9bccb5c731acbd9", kill_on_drop: false }`
[INFO] [stdout] e4c1944eb6c6fce39b60a63a2513f34827667e14592de900a9bccb5c731acbd9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 39666907d0c6cefc98eaefb2199a0eaabe8de3842f40863b67f5d46c99c79dfc
[INFO] running `Command { std: "docker" "start" "-a" "39666907d0c6cefc98eaefb2199a0eaabe8de3842f40863b67f5d46c99c79dfc", kill_on_drop: false }`
[INFO] [stderr]    Compiling oximedia-quality v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.77s
[INFO] running `Command { std: "docker" "inspect" "39666907d0c6cefc98eaefb2199a0eaabe8de3842f40863b67f5d46c99c79dfc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "39666907d0c6cefc98eaefb2199a0eaabe8de3842f40863b67f5d46c99c79dfc", kill_on_drop: false }`
[INFO] [stdout] 39666907d0c6cefc98eaefb2199a0eaabe8de3842f40863b67f5d46c99c79dfc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 8a35fef1459c30822be925c21823ffa36348e5d556eaa95702e754ebb543e7c1
[INFO] running `Command { std: "docker" "start" "-a" "8a35fef1459c30822be925c21823ffa36348e5d556eaa95702e754ebb543e7c1", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_quality-773bff8f7b600e80)
[INFO] [stdout] 
[INFO] [stdout] running 838 tests
[INFO] [stdout] test ab_compare::tests::test_metric_weights_normalized_sums_to_one ... ok
[INFO] [stdout] test ab_compare::tests::test_ab_mismatched_frame_count_errors ... ok
[INFO] [stdout] test ab_quality_compare::tests::best_overall_returns_highest_quality ... ok
[INFO] [stdout] test ab_compare::tests::test_metric_weights_zero_total_falls_back_to_uniform ... ok
[INFO] [stdout] test ab_quality_compare::tests::compare_missing_label_returns_error ... ok
[INFO] [stdout] test ab_quality_compare::tests::compare_named_variants ... ok
[INFO] [stdout] test ab_quality_compare::tests::composite_score_low_quality ... ok
[INFO] [stdout] test ab_quality_compare::tests::composite_score_high_quality ... ok
[INFO] [stdout] test ab_quality_compare::tests::efficiency_ratio_greater_than_one_when_a_better ... ok
[INFO] [stdout] test ab_quality_compare::tests::pareto_frontier_single_variant_is_on_frontier ... ok
[INFO] [stdout] test ab_quality_compare::tests::quality_delta_is_absolute ... ok
[INFO] [stdout] test ab_quality_compare::tests::empty_suite_returns_no_variants_error ... ok
[INFO] [stdout] test ab_quality_compare::tests::tie_returns_variant_a ... ok
[INFO] [stdout] test aggregate_score::tests::test_aggregate_score_builder_empty_returns_none ... ok
[INFO] [stdout] test aggregate_score::tests::test_aggregate_score_builder_equal_weights ... ok
[INFO] [stdout] test aggregate_score::tests::test_aggregate_score_builder_minimum ... ok
[INFO] [stdout] test aggregate_score::tests::test_aggregate_score_score_map ... ok
[INFO] [stdout] test aggregate_score::tests::test_aggregate_score_meets_threshold ... ok
[INFO] [stdout] test aggregate_score::tests::test_confidence_interval_is_narrow ... ok
[INFO] [stdout] test aggregate_score::tests::test_aggregate_score_weighted_geometric_mean ... ok
[INFO] [stdout] test aggregate_score::tests::test_aggregate_score_with_confidence_interval ... ok
[INFO] [stdout] test aggregate_score::tests::test_normalise_ssim ... ok
[INFO] [stdout] test aggregate_score::tests::test_confidence_interval_margin ... ok
[INFO] [stdout] test aggregate_score::tests::test_normalise_vmaf ... ok
[INFO] [stdout] test artifact_score::tests::test_artifact_score_with_region ... ok
[INFO] [stdout] test artifact_score::tests::test_artifact_type_name ... ok
[INFO] [stdout] test artifact_score::tests::test_report_by_type ... ok
[INFO] [stdout] test artifact_score::tests::test_report_empty_severity_none ... ok
[INFO] [stdout] test artifact_score::tests::test_report_filter_by_severity ... ok
[INFO] [stdout] test artifact_score::tests::test_report_has_actionable ... ok
[INFO] [stdout] test artifact_score::tests::test_report_len_and_empty ... ok
[INFO] [stdout] test artifact_score::tests::test_report_mean_score ... ok
[INFO] [stdout] test artifact_score::tests::test_report_severity_worst_wins ... ok
[INFO] [stdout] test artifact_score::tests::test_severity_from_score_boundaries ... ok
[INFO] [stdout] test artifact_score::tests::test_severity_from_score_none ... ok
[INFO] [stdout] test artifact_score::tests::test_severity_is_actionable ... ok
[INFO] [stdout] test artifact_score::tests::test_severity_weight ... ok
[INFO] [stdout] test aggregate_score::tests::test_quality_rating_score_range ... ok
[INFO] [stdout] test artifact_score::tests::test_artifact_score_is_actionable ... ok
[INFO] [stdout] test artifact_score::tests::test_artifact_score_severity ... ok
[INFO] [stdout] test aggregate_score::tests::test_quality_rating_label_nonempty ... ok
[INFO] [stdout] test artifact_score::tests::test_artifact_score_clamp ... ok
[INFO] [stdout] test audio_quality::tests::test_audio_quality_grade_from_score ... ok
[INFO] [stdout] test audio_quality::tests::test_analyzer_empty_buffer ... ok
[INFO] [stdout] test audio_quality::tests::test_click_detector_empty ... ok
[INFO] [stdout] test audio_quality::tests::test_analyzer_score_in_range ... ok
[INFO] [stdout] test ab_quality_compare::tests::winner_is_higher_quality ... ok
[INFO] [stdout] test audio_quality::tests::test_audio_quality_grade_ordering ... ok
[INFO] [stdout] test audio_quality::tests::test_clipping_empty ... ok
[INFO] [stdout] test audio_quality::tests::test_clipping_saturated_signal ... ok
[INFO] [stdout] test audio_quality::tests::test_clipping_clean_signal ... ok
[INFO] [stdout] test ab_quality_compare::tests::pareto_frontier_excludes_dominated ... ok
[INFO] [stdout] test audio_quality::tests::test_click_rate ... ok
[INFO] [stdout] test audio_quality::tests::test_dynamic_range_empty ... ok
[INFO] [stdout] test audio_quality::tests::test_silence_ratio_all_silent ... ok
[INFO] [stdout] test audio_quality::tests::test_silence_ratio_empty ... ok
[INFO] [stdout] test audio_quality::tests::test_analyzer_clean_sine_excellent ... ok
[INFO] [stdout] test audio_quality::tests::test_silence_ratio_no_silence ... ok
[INFO] [stdout] test batch::tests::test_batch_config ... ok
[INFO] [stdout] test batch::tests::test_mismatched_frame_counts ... ok
[INFO] [stdout] test audio_quality::tests::test_analyzer_saturated_poor_score ... ok
[INFO] [stdout] test audio_quality::tests::test_config_builder ... ok
[INFO] [stdout] test audio_quality::tests::test_dynamic_range_dc_signal ... ok
[INFO] [stdout] test bitrate_quality::tests::test_compute_bitrate_stats_basic ... ok
[INFO] [stdout] test audio_quality::tests::test_dynamic_range_sine ... ok
[INFO] [stdout] test bitrate_quality::tests::test_codec_efficiency_ordering ... ok
[INFO] [stdout] test bitrate_quality::tests::test_compute_bitrate_stats_empty ... ok
[INFO] [stdout] test bitrate_quality::tests::test_compute_bitrate_stats_stddev ... ok
[INFO] [stdout] test bitrate_quality::tests::test_estimate_quality_clamped ... ok
[INFO] [stdout] test bitrate_quality::tests::test_estimate_quality_high_bitrate ... ok
[INFO] [stdout] test bitrate_quality::tests::test_rate_bitrate_good ... ok
[INFO] [stdout] test bitrate_quality::tests::test_estimate_quality_low_bitrate ... ok
[INFO] [stdout] test bitrate_quality::tests::test_rate_bitrate_excellent ... ok
[INFO] [stdout] test bitrate_quality::tests::test_rate_bitrate_poor ... ok
[INFO] [stdout] test bitrate_quality::tests::test_resolution_detect_1080p ... ok
[INFO] [stdout] test bitrate_quality::tests::test_resolution_pixel_count ... ok
[INFO] [stdout] test bitrate_quality::tests::test_recommend_bitrate_h264_1080p ... ok
[INFO] [stdout] test bitrate_quality::tests::test_resolution_detect_4k ... ok
[INFO] [stdout] test blockiness::tests::test_blockiness_detection ... ok
[INFO] [stdout] test blockiness::tests::test_vertical_blockiness ... ok
[INFO] [stdout] test blockiness::tests::test_blocky_vs_smooth ... ok
[INFO] [stdout] test blockiness_detector::tests::test_blocking_frame_higher_score ... ok
[INFO] [stdout] test blockiness_detector::tests::test_deblocking_recommendation_thresholds ... ok
[INFO] [stdout] test blockiness::tests::test_horizontal_blockiness ... ok
[INFO] [stdout] test blockiness_detector::tests::test_detect_returns_quality_score ... ok
[INFO] [stdout] test blockiness_detector::tests::test_recommendation_descriptions_are_non_empty ... ok
[INFO] [stdout] test blockiness_detector::tests::test_custom_block_size ... ok
[INFO] [stdout] test blockiness::tests::test_custom_block_size ... ok
[INFO] [stdout] test blockiness_detector::tests::test_tile_size_too_small_returns_error ... ok
[INFO] [stdout] test blockiness_detector::tests::test_tile_analysis_populates_tiles ... ok
[INFO] [stdout] test batch::tests::test_no_reference_assessment ... ok
[INFO] [stdout] test aggregate_score::tests::test_metric_contribution_weighted_value ... ok
[INFO] [stdout] test blur::tests::test_laplacian_variance ... ok
[INFO] [stdout] test aggregate_score::tests::test_normalise_psnr ... ok
[INFO] [stdout] test blur::tests::test_tenengrad_variance ... ok
[INFO] [stdout] test aggregate_score::tests::test_quality_rating_from_score ... ok
[INFO] [stdout] test blur::tests::test_tenengrad_method ... ok
[INFO] [stdout] test blur::tests::test_blur_detection ... ok
[INFO] [stdout] test blockiness_detector::tests::test_too_small_frame_returns_error ... ok
[INFO] [stdout] test audio_quality::tests::test_click_detector_detects_impulse ... ok
[INFO] [stdout] test audio_quality::tests::test_click_detector_no_clicks_in_sine ... ok
[INFO] [stdout] test blur::tests::test_laplacian_method ... ok
[INFO] [stdout] test blockiness_detector::tests::test_flat_frame_no_blockiness ... ok
[INFO] [stdout] test blur_detector::tests::test_grade_labels_non_empty ... ok
[INFO] [stdout] test blur_detector::tests::test_too_small_frame_returns_error ... ok
[INFO] [stdout] test blur_detector::tests::test_sharpness_grade_thresholds ... ok
[INFO] [stdout] test ab_compare::tests::test_ab_empty_candidates ... ok
[INFO] [stdout] test brisque::tests::test_aggd_fitting ... ok
[INFO] [stdout] test blur_detector::tests::test_brisque_lite_method_only ... ok
[INFO] [stdout] test brisque::tests::test_feature_extraction ... ok
[INFO] [stdout] test budget::tests::test_allocate_all_zero_gives_uniform ... ok
[INFO] [stdout] test budget::tests::test_allocate_bounded_no_underflow ... ok
[INFO] [stdout] test budget::tests::test_allocate_empty_returns_empty ... ok
[INFO] [stdout] test budget::tests::test_allocate_equal_complexity_uniform ... ok
[INFO] [stdout] test budget::tests::test_allocate_negative_complexity_treated_as_zero ... ok
[INFO] [stdout] test budget::tests::test_allocate_negative_total_clamped ... ok
[INFO] [stdout] test budget::tests::test_allocate_proportional_two_scenes ... ok
[INFO] [stdout] test budget::tests::test_allocate_single_scene_gets_full_budget ... ok
[INFO] [stdout] test budget::tests::test_allocate_sums_to_total ... ok
[INFO] [stdout] test budget::tests::test_total_accessor ... ok
[INFO] [stdout] test ciede2000::tests::test_black_vs_white ... ok
[INFO] [stdout] test ciede2000::tests::test_classification ... ok
[INFO] [stdout] test ciede2000::tests::test_frame_delta_e_map_dimension_mismatch ... ok
[INFO] [stdout] test ciede2000::tests::test_frame_mean_delta_e_identical ... ok
[INFO] [stdout] test ciede2000::tests::test_identical_colors ... ok
[INFO] [stdout] test ciede2000::tests::test_known_pair_from_sharma_2005 ... ok
[INFO] [stdout] test ciede2000::tests::test_lab_chroma_and_hue ... ok
[INFO] [stdout] test ciede2000::tests::test_mean_delta_e ... ok
[INFO] [stdout] test brisque::tests::test_pairwise_products ... ok
[INFO] [stdout] test ciede2000::tests::test_mean_delta_e_length_mismatch ... ok
[INFO] [stdout] test ciede2000::tests::test_srgb_to_lab ... ok
[INFO] [stdout] test ciede2000::tests::test_symmetric ... ok
[INFO] [stdout] test ciede2000::tests::test_textile_params ... ok
[INFO] [stdout] test codec_quality::tests::test_av1_is_lossy ... ok
[INFO] [stdout] test codec_quality::tests::test_av1_lower_bitrate_than_h264 ... ok
[INFO] [stdout] test codec_quality::tests::test_av1_range_max ... ok
[INFO] [stdout] test codec_quality::tests::test_blockiness_not_severe_at_threshold ... ok
[INFO] [stdout] test codec_quality::tests::test_blockiness_not_severe_below_threshold ... ok
[INFO] [stdout] test codec_quality::tests::test_blockiness_severe_above_threshold ... ok
[INFO] [stdout] test codec_quality::tests::test_broadcast_acceptable_good_h264 ... ok
[INFO] [stdout] test codec_quality::tests::test_broadcast_acceptable_prores ... ok
[INFO] [stdout] test codec_quality::tests::test_broadcast_unacceptable_high_qp ... ok
[INFO] [stdout] test codec_quality::tests::test_broadcast_unacceptable_low_bitrate ... ok
[INFO] [stdout] test codec_quality::tests::test_broadcast_unacceptable_severe_blocking ... ok
[INFO] [stdout] test codec_quality::tests::test_crf_acceptable_at_midpoint ... ok
[INFO] [stdout] test codec_quality::tests::test_crf_acceptable_low_value ... ok
[INFO] [stdout] test codec_quality::tests::test_crf_unacceptable_high_value ... ok
[INFO] [stdout] test codec_quality::tests::test_h264_is_lossy ... ok
[INFO] [stdout] test codec_quality::tests::test_h264_range ... ok
[INFO] [stdout] test codec_quality::tests::test_prores_higher_bitrate_than_h264 ... ok
[INFO] [stdout] test codec_quality::tests::test_prores_is_lossy ... ok
[INFO] [stdout] test codec_quality::tests::test_typical_bitrate_h264_scales_with_resolution ... ok
[INFO] [stdout] test color_banding::tests::test_band_count_empty_row ... ok
[INFO] [stdout] test color_banding::tests::test_band_count_single_flat_row ... ok
[INFO] [stdout] test color_banding::tests::test_band_count_stepped_row ... ok
[INFO] [stdout] test ciede2000::tests::test_mean_delta_e_empty ... ok
[INFO] [stdout] test blur::tests::test_sharp_vs_blurry ... ok
[INFO] [stdout] test color_banding::tests::test_banding_empty_frame_zero ... ok
[INFO] [stdout] test color_banding::tests::test_banding_flat_frame_score ... ok
[INFO] [stdout] test color_banding::tests::test_banding_score_in_range ... ok
[INFO] [stdout] test color_banding::tests::test_banding_severity_ordering ... ok
[INFO] [stdout] test color_banding::tests::test_banding_score_step_gradient_higher_than_linear ... ok
[INFO] [stdout] test color_banding::tests::test_banding_severity_classification ... ok
[INFO] [stdout] test color_banding::tests::test_report_luma_only ... ok
[INFO] [stdout] test color_banding::tests::test_report_overall_score_weights ... ok
[INFO] [stdout] test color_banding::tests::test_report_ycbcr ... ok
[INFO] [stdout] test blur_detector::tests::test_custom_weights ... ok
[INFO] [stdout] test blur_detector::tests::test_tenengrad_method_only ... ok
[INFO] [stdout] test color_banding::tests::test_smoothness_flat_row_zero ... ok
[INFO] [stdout] test blur_detector::tests::test_uniform_frame_scores_zero ... ok
[INFO] [stdout] test color_banding::tests::test_mean_band_count_linear_gradient ... ok
[INFO] [stdout] test color_banding::tests::test_config_new ... ok
[INFO] [stdout] test blur_detector::tests::test_detect_returns_quality_score_with_components ... ok
[INFO] [stdout] test color_banding::tests::test_smoothness_stepped_row_high ... ok
[INFO] [stdout] test color_fidelity::tests::test_config_defaults ... ok
[INFO] [stdout] test color_banding::tests::test_smoothness_short_row_zero ... ok
[INFO] [stdout] test color_fidelity::tests::test_analyze_rgb_identical ... ok
[INFO] [stdout] test color_fidelity::tests::test_different_luma_reduces_score ... ok
[INFO] [stdout] test color_fidelity::tests::test_max_delta_e ... ok
[INFO] [stdout] test color_fidelity::tests::test_rating_thresholds ... ok
[INFO] [stdout] test color_fidelity::tests::test_identical_frames_perfect_score ... ok
[INFO] [stdout] test color_fidelity::tests::test_config_builder ... ok
[INFO] [stdout] test color_fidelity::tests::test_rgb_to_ycbcr_black ... ok
[INFO] [stdout] test color_fidelity::tests::test_rgb_to_ycbcr_white ... ok
[INFO] [stdout] test color_fidelity::tests::test_different_chroma_reduces_score ... ok
[INFO] [stdout] test color_fidelity::tests::test_empty_planes ... ok
[INFO] [stdout] test compression_artifact::tests::test_mb_scorer_block_frame_high ... ok
[INFO] [stdout] test compression_artifact::tests::test_mosquito_too_small_frame ... ok
[INFO] [stdout] test color_fidelity::tests::test_hue_shift_zero_for_identical ... ok
[INFO] [stdout] test compression_artifact::tests::test_mosquito_with_params ... ok
[INFO] [stdout] test blur_detector::tests::test_checkerboard_is_sharper_than_gradient ... ok
[INFO] [stdout] test compression_artifact::tests::test_report_flat_frame_near_zero ... ok
[INFO] [stdout] test compression_artifact::tests::test_ringing_flat_frame_zero ... ok
[INFO] [stdout] test compression_artifact::tests::test_mosquito_flat_frame_no_noise ... ok
[INFO] [stdout] test compression_artifact::tests::test_ringing_score_in_range ... ok
[INFO] [stdout] test compression_artifact::tests::test_mb_scorer_flat_frame_zero ... ok
[INFO] [stdout] test compression_artifacts::tests::test_banding_flat_frame ... ok
[INFO] [stdout] test compression_artifacts::tests::test_banding_gradient_frame ... ok
[INFO] [stdout] test compression_artifacts::tests::test_banding_small_frame ... ok
[INFO] [stdout] test compression_artifact::tests::test_mosquito_score_in_range ... ok
[INFO] [stdout] test compression_artifacts::tests::test_blockiness_flat_frame ... ok
[INFO] [stdout] test compression_artifacts::tests::test_blockiness_range ... ok
[INFO] [stdout] test compression_artifacts::tests::test_blockiness_small_frame ... ok
[INFO] [stdout] test compression_artifacts::tests::test_compression_suite_max_score ... ok
[INFO] [stdout] test compression_artifact::tests::test_report_weights_sum_to_one ... ok
[INFO] [stdout] test compression_artifact::tests::test_ringing_frame_too_small ... ok
[INFO] [stdout] test compression_artifacts::tests::test_compression_suite_severity_moderate ... ok
[INFO] [stdout] test compression_artifacts::tests::test_compression_suite_weights_sum_to_one ... ok
[INFO] [stdout] test compression_artifacts::tests::test_compression_suite_zero_score ... ok
[INFO] [stdout] test compression_artifacts::tests::test_ringing_range ... ok
[INFO] [stdout] test compression_artifact::tests::test_report_overall_score_in_range ... ok
[INFO] [stdout] test compression_artifact::tests::test_mb_scorer_frame_too_small ... ok
[INFO] [stdout] test compression_artifacts::tests::test_blockiness_score_severity ... ok
[INFO] [stdout] test compression_artifacts::tests::test_ringing_small_frame ... ok
[INFO] [stdout] test compression_artifacts::tests::test_severity_ordering ... ok
[INFO] [stdout] test compression_artifacts::tests::test_severity_from_score ... ok
[INFO] [stdout] test confidence::tests::test_ci_90_narrower_than_99 ... ok
[INFO] [stdout] test confidence::tests::test_ci_basic ... ok
[INFO] [stdout] test confidence::tests::test_ci_contains ... ok
[INFO] [stdout] test confidence::tests::test_ci_identical_values_zero_width ... ok
[INFO] [stdout] test confidence::tests::test_ci_large_sample_uses_z ... ok
[INFO] [stdout] test confidence::tests::test_ci_empty_returns_none ... ok
[INFO] [stdout] test confidence::tests::test_ci_narrows_with_more_samples ... ok
[INFO] [stdout] test blur_detector::tests::test_laplacian_method_only ... ok
[INFO] [stdout] test compression_artifacts::tests::test_severity_max_acceptable_score ... ok
[INFO] [stdout] test compression_artifacts::tests::test_compression_suite_overall_score ... ok
[INFO] [stdout] test color_fidelity::tests::test_saturation_ratio_identical ... ok
[INFO] [stdout] test confidence::tests::test_ci_single_value_returns_none ... ok
[INFO] [stdout] test compression_artifacts::tests::test_ringing_flat_frame ... ok
[INFO] [stdout] test confidence::tests::test_confidence_level_labels ... ok
[INFO] [stdout] test confidence::tests::test_ci_small_sample_uses_t ... ok
[INFO] [stdout] test confidence::tests::test_convenience_function ... ok
[INFO] [stdout] test confidence::tests::test_min_samples_for_margin ... ok
[INFO] [stdout] test confidence::tests::test_confidence_level_alpha ... ok
[INFO] [stdout] test confidence::tests::test_reliability_rating_poor ... ok
[INFO] [stdout] test confidence::tests::test_relative_margin ... ok
[INFO] [stdout] test confidence::tests::test_relative_margin_zero_mean ... ok
[INFO] [stdout] test confidence::tests::test_t_critical_large_df_falls_back_to_z ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_clipped_whites ... ok
[INFO] [stdout] test confidence::tests::test_t_critical_table ... ok
[INFO] [stdout] test confidence::tests::test_ci_summary_format ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_full_range_high_score ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_contrast_ratio ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_histogram_uniform ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_crushed_blacks ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_is_low_contrast_false ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_is_low_contrast_true ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_legal_range_ratio_none_legal ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_luma_statistics_empty ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_luma_statistics_uniform ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_legal_range_empty ... ok
[INFO] [stdout] test edge_quality::tests::test_count_edge_pixels_gradient ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_uniform_low_score ... ok
[INFO] [stdout] test edge_quality::tests::test_count_edge_pixels_flat ... ok
[INFO] [stdout] test edge_quality::tests::test_flat_frame_zero_gradient ... ok
[INFO] [stdout] test confidence::tests::test_ci_two_values ... ok
[INFO] [stdout] test confidence::tests::test_ci_width ... ok
[INFO] [stdout] test edge_quality::tests::test_mean_empty ... ok
[INFO] [stdout] test confidence::tests::test_compute_multi ... ok
[INFO] [stdout] test confidence::tests::test_min_samples_edge_cases ... ok
[INFO] [stdout] test edge_quality::tests::test_flat_vs_gradient ... ok
[INFO] [stdout] test confidence::tests::test_reliability_rating_excellent ... ok
[INFO] [stdout] test edge_quality::tests::test_identical_perfect_score ... ok
[INFO] [stdout] test edge_quality::tests::test_mean_values ... ok
[INFO] [stdout] test edge_quality::tests::test_small_frame_no_panic ... ok
[INFO] [stdout] test edge_quality::tests::test_pearson_identical ... ok
[INFO] [stdout] test edge_quality::tests::test_region_scores_present ... ok
[INFO] [stdout] test dynamic_range_quality::tests::test_legal_range_ratio_all_legal ... ok
[INFO] [stdout] test flicker_score::tests::test_normalize_constant ... ok
[INFO] [stdout] test edge_quality::tests::test_gradient_frame_nonzero ... ok
[INFO] [stdout] test flicker_score::tests::test_oscillating_luminance_high_flicker ... ok
[INFO] [stdout] test flicker_score::tests::test_constant_luminance_no_flicker ... ok
[INFO] [stdout] test flicker_score::tests::test_count_flicker_events_none ... ok
[INFO] [stdout] test flicker_score::tests::test_deltas_length ... ok
[INFO] [stdout] test flicker_score::tests::test_count_flicker_events_some ... ok
[INFO] [stdout] test flicker_score::tests::test_rolling_flicker_short_input ... ok
[INFO] [stdout] test flicker_score::tests::test_rolling_flicker_length ... ok
[INFO] [stdout] test flicker_score::tests::test_single_frame_returns_none ... ok
[INFO] [stdout] test flicker_score::tests::test_score_clamped ... ok
[INFO] [stdout] test fsim::tests::test_calc_gradient_magnitude ... ok
[INFO] [stdout] test flicker_score::tests::test_mean_luminance_empty ... ok
[INFO] [stdout] test flicker_score::tests::test_mean_luminance_uniform ... ok
[INFO] [stdout] test edge_quality::tests::test_pearson_opposite ... ok
[INFO] [stdout] test flicker_score::tests::test_normalize_luminance ... ok
[INFO] [stdout] test fsim::tests::test_fsim_dimension_mismatch_error ... ok
[INFO] [stdout] test brisque::tests::test_mscn_computation ... ok
[INFO] [stdout] test fsim::tests::test_gradient_magnitude_pythagorean ... ok
[INFO] [stdout] test fsim::tests::test_gradient_magnitude_zero_inputs ... ok
[INFO] [stdout] test brisque::tests::test_brisque_assessment ... ok
[INFO] [stdout] test ab_compare::tests::test_ab_winner_loser ... ok
[INFO] [stdout] test ab_compare::tests::test_ab_compare_two_candidates ... ok
[INFO] [stdout] test fsim::tests::test_scharr_gradient_edge_response ... ok
[INFO] [stdout] test fsim::tests::test_scharr_gradient_length ... ok
[INFO] [stdout] test ab_compare::tests::test_ab_report_summary_nonempty ... ok
[INFO] [stdout] test batch::tests::test_batch_assessment ... ok
[INFO] [stdout] test fsim::tests::test_scharr_gradient_uniform_is_zero ... ok
[INFO] [stdout] test golden_tests::tests::golden_psnr_diff_1 ... ok
[INFO] [stdout] test golden_tests::tests::golden_psnr_identical_returns_high_value ... ok
[INFO] [stdout] test golden_tests::tests::golden_region_psnr_matches_full_for_uniform ... ok
[INFO] [stdout] test golden_tests::tests::golden_psnr_known_mse ... ok
[INFO] [stdout] test golden_tests::tests::golden_psnr_uniform_diff_10 ... ok
[INFO] [stdout] test golden_tests::tests::golden_region_ssim_identical_region_is_one ... ok
[INFO] [stdout] test ab_compare::tests::test_composite_score_range ... ok
[INFO] [stdout] test golden_tests::tests::golden_vif_distorted_less_than_identical ... ok
[INFO] [stdout] test golden_tests::tests::golden_vif_identical_frames_returns_one ... ok
[INFO] [stdout] test golden_tests::tests::golden_ssim_max_difference_low ... ok
[INFO] [stdout] test fsim::tests::test_phase_congruency_output_length ... ok
[INFO] [stdout] test fsim::tests::test_calc_phase_congruency_length ... ok
[INFO] [stdout] test golden_tests::tests::golden_vmaf_components_present ... ok
[INFO] [stdout] test hdr_quality::tests::all_white_frame_pq ... ok
[INFO] [stdout] test hdr_quality::tests::compare_mismatch_returns_error ... ok
[INFO] [stdout] test golden_tests::tests::golden_ssim_uniform_frames_analytical ... ok
[INFO] [stdout] test hdr_quality::tests::dynamic_range_stops_plausible ... ok
[INFO] [stdout] test hdr_quality::tests::empty_frame_returns_error ... ok
[INFO] [stdout] test hdr_quality::tests::highlight_clipping_detection ... ok
[INFO] [stdout] test hdr_quality::tests::hlg_peak_nits_used ... ok
[INFO] [stdout] test hdr_quality::tests::dimension_mismatch_returns_error ... ok
[INFO] [stdout] test hdr_quality::tests::invalid_pixel_nan_returns_error ... ok
[INFO] [stdout] test hdr_quality::tests::shadow_clipping_detection ... ok
[INFO] [stdout] test hdr_quality::tests::zeroed_distorted_poor_fidelity ... ok
[INFO] [stdout] test histogram_quality::tests::test_clipping_dark ... ok
[INFO] [stdout] test hdr_quality::tests::identical_frames_perfect_fidelity ... ok
[INFO] [stdout] test histogram_quality::tests::test_contrast_constant ... ok
[INFO] [stdout] test fsim::tests::test_fsim_components_contain_y ... ok
[INFO] [stdout] test histogram_quality::tests::test_dynamic_range ... ok
[INFO] [stdout] test golden_tests::tests::golden_vmaf_in_range ... ok
[INFO] [stdout] test histogram_quality::tests::test_exposure_dark ... ok
[INFO] [stdout] test histogram_quality::tests::test_histogram_empty ... ok
[INFO] [stdout] test histogram_quality::tests::test_histogram_from_data ... ok
[INFO] [stdout] test histogram_quality::tests::test_mean_constant ... ok
[INFO] [stdout] test histogram_quality::tests::test_mean_uniform ... ok
[INFO] [stdout] test histogram_quality::tests::test_median ... ok
[INFO] [stdout] test histogram_quality::tests::test_min_max_value ... ok
[INFO] [stdout] test histogram_quality::tests::test_percentile ... ok
[INFO] [stdout] test histogram_quality::tests::test_std_dev_constant ... ok
[INFO] [stdout] test histogram_quality::tests::test_std_dev_uniform ... ok
[INFO] [stdout] test hdr_quality::tests::all_black_frame_pq ... ok
[INFO] [stdout] test golden_tests::tests::golden_ssim_identical_frames ... ok
[INFO] [stdout] test histogram_quality::tests::test_clipping_normal ... ok
[INFO] [stdout] test histogram_quality::tests::test_exposure_bright ... ok
[INFO] [stdout] test histogram_quality::tests::test_exposure_normal ... ok
[INFO] [stdout] test lpips::tests::test_dimension_mismatch ... ok
[INFO] [stdout] test lpips::tests::test_frame_too_small ... ok
[INFO] [stdout] test lpips::tests::test_patch_map_max ... ok
[INFO] [stdout] test lpips::tests::test_identical_frames_zero_distance ... ok
[INFO] [stdout] test golden_tests::tests::golden_vmaf_identical_frames_high ... ok
[INFO] [stdout] test metrics::tests::test_aggregated_metrics ... ok
[INFO] [stdout] test metrics::tests::test_comparison_report ... ok
[INFO] [stdout] test metrics::tests::test_pooling_methods ... ok
[INFO] [stdout] test motion_compensated::tests::test_block_size_too_large ... ok
[INFO] [stdout] test motion_compensated::tests::test_coherence_random_field ... ok
[INFO] [stdout] test motion_compensated::tests::test_coherence_uniform_field ... ok
[INFO] [stdout] test lpips::tests::test_patch_mode ... ok
[INFO] [stdout] test lpips::tests::test_symmetric ... ok
[INFO] [stdout] test motion_compensated::tests::test_dimension_mismatch ... ok
[INFO] [stdout] test motion_compensated::tests::test_grid_dimensions ... ok
[INFO] [stdout] test lpips::tests::test_custom_weights ... ok
[INFO] [stdout] test motion_compensated::tests::test_identical_frames_zero_motion ... ok
[INFO] [stdout] test motion_compensated::tests::test_motion_vector_basics ... ok
[INFO] [stdout] test lpips::tests::test_scale_distances_populated ... ok
[INFO] [stdout] test motion_compensated::tests::test_full_search_strategy ... ok
[INFO] [stdout] test msssim::tests::test_downsampling ... ok
[INFO] [stdout] test lpips::tests::test_different_frames_positive_distance ... ok
[INFO] [stdout] test motion_compensated::tests::test_shifted_frame_detects_motion ... ok
[INFO] [stdout] test msssim::tests::test_msssim_small_image ... ok
[INFO] [stdout] test niqe::tests::test_feature_extraction ... ok
[INFO] [stdout] test motion_compensated::tests::test_mc_improves_on_raw_for_shifted_content ... ok
[INFO] [stdout] test niqe::tests::test_mscn_computation ... ok
[INFO] [stdout] test niqe::tests::test_niqe_assessment ... ok
[INFO] [stdout] test noise::tests::test_clean_vs_noisy ... ok
[INFO] [stdout] test noise::tests::test_spatial_method ... ok
[INFO] [stdout] test noise::tests::test_spatial_noise ... ok
[INFO] [stdout] test noise::tests::test_temporal_method ... ok
[INFO] [stdout] test noise::tests::test_temporal_noise ... ok
[INFO] [stdout] test niqe::tests::test_niqe_different_qualities ... ok
[INFO] [stdout] test peaq_like::tests::test_bandwidth_detection_silence ... ok
[INFO] [stdout] test noise::tests::test_noise_estimation ... ok
[INFO] [stdout] test lpips::tests::test_structured_vs_noisy_distance ... ok
[INFO] [stdout] test msssim::tests::test_msssim_identical_frames ... ok
[INFO] [stdout] test msssim::tests::test_custom_scales ... ok
[INFO] [stdout] test msssim::tests::test_msssim_different_frames ... ok
[INFO] [stdout] test fsim::tests::test_phase_congruency_uniform_low ... ok
[INFO] [stdout] test peaq_like::tests::test_config_default ... ok
[INFO] [stdout] test peaq_like::tests::test_config_new ... ok
[INFO] [stdout] test peaq_like::tests::test_empty_ref_returns_zero ... ok
[INFO] [stdout] test peaq_like::tests::test_empty_test_returns_zero ... ok
[INFO] [stdout] test peaq_like::tests::test_bark_band_energies_count ... ok
[INFO] [stdout] test peaq_like::tests::test_extended_empty_signals ... ok
[INFO] [stdout] test peaq_like::tests::test_bandwidth_silence_is_zero ... ok
[INFO] [stdout] test peaq_like::tests::test_hz_to_bark_1000hz ... ok
[INFO] [stdout] test peaq_like::tests::test_hz_to_bark_monotonic ... ok
[INFO] [stdout] test peaq_like::tests::test_hz_to_bark_zero ... ok
[INFO] [stdout] test fsim::tests::test_compute_fsim_free_fn_identical ... ok
[INFO] [stdout] test fsim::tests::test_fsim_custom_params ... ok
[INFO] [stdout] test peaq_like::tests::test_bandwidth_in_range ... ok
[INFO] [stdout] test peaq_like::tests::test_loudness_disturbance_identical_zero ... ok
[INFO] [stdout] test peaq_like::tests::test_loudness_disturbance_increases_with_error ... ok
[INFO] [stdout] test peaq_like::tests::test_masking_thresholds_non_negative ... ok
[INFO] [stdout] test peaq_like::tests::test_masking_thresholds_silence ... ok
[INFO] [stdout] test peaq_like::tests::test_movs_to_odg_range ... ok
[INFO] [stdout] test peaq_like::tests::test_nmr_empty ... ok
[INFO] [stdout] test peaq_like::tests::test_nmr_identical_spectra ... ok
[INFO] [stdout] test peaq_like::tests::test_nmr_total_range ... ok
[INFO] [stdout] test peaq_like::tests::test_noise_loudness_identical_is_zero ... ok
[INFO] [stdout] test peaq_like::tests::test_noise_loudness_inverted_large ... ok
[INFO] [stdout] test fsim::tests::test_fsim_identical_frames_near_one ... ok
[INFO] [stdout] test fsim::tests::test_compute_fsim_free_fn_range ... ok
[INFO] [stdout] test fsim::tests::test_fsim_range_valid ... ok
[INFO] [stdout] test peaq_like::tests::test_odg_to_mov_clamps ... ok
[INFO] [stdout] test peaq_like::tests::test_odg_to_mov_mid ... ok
[INFO] [stdout] test fsim::tests::test_phase_congruency_edge_higher_than_uniform ... ok
[INFO] [stdout] test peaq_like::tests::test_odg_to_mov_imperceptible ... ok
[INFO] [stdout] test perceptual::tests::test_colorfulness_colourful_vs_grey ... ok
[INFO] [stdout] test perceptual::tests::test_colorfulness_empty ... ok
[INFO] [stdout] test perceptual::tests::test_colorfulness_grey ... ok
[INFO] [stdout] test perceptual::tests::test_colorfulness_saturated_red ... ok
[INFO] [stdout] test peaq_like::tests::test_odg_to_mov_very_annoying ... ok
[INFO] [stdout] test perceptual::tests::test_csf_peak ... ok
[INFO] [stdout] test perceptual::tests::test_csf_zero_frequency ... ok
[INFO] [stdout] test perceptual::tests::test_jnd_dark_vs_bright ... ok
[INFO] [stdout] test perceptual::tests::test_csf_high_frequency_rolloff ... ok
[INFO] [stdout] test perceptual::tests::test_phash_different ... ok
[INFO] [stdout] test perceptual::tests::test_phash_hamming_distance_symmetry ... ok
[INFO] [stdout] test perceptual::tests::test_phash_identical ... ok
[INFO] [stdout] test perceptual::tests::test_jnd_positive ... ok
[INFO] [stdout] test perceptual::tests::test_saliency_flat_frame ... ok
[INFO] [stdout] test perceptual::tests::test_saliency_empty_frame ... ok
[INFO] [stdout] test perceptual::tests::test_saliency_range ... ok
[INFO] [stdout] test perceptual::tests::test_weighted_psnr_identical ... ok
[INFO] [stdout] test perceptual::tests::test_weighted_psnr_empty ... ok
[INFO] [stdout] test perceptual::tests::test_weighted_psnr_positive ... ok
[INFO] [stdout] test perceptual_model::tests::test_contrast_masking_high_contrast_reduces_weight ... ok
[INFO] [stdout] test perceptual_model::tests::test_contrast_masking_no_contrast ... ok
[INFO] [stdout] test perceptual_model::tests::test_csf_barten_peak_near_5cpd ... ok
[INFO] [stdout] test perceptual_model::tests::test_csf_flat_is_unity ... ok
[INFO] [stdout] test perceptual_model::tests::test_csf_mannos_sakrison_positive ... ok
[INFO] [stdout] test perceptual_model::tests::test_csf_mannos_sakrison_zero_freq ... ok
[INFO] [stdout] test perceptual_model::tests::test_csf_temporal_decreases ... ok
[INFO] [stdout] test perceptual_model::tests::test_csf_temporal_zero_freq ... ok
[INFO] [stdout] test perceptual_model::tests::test_csf_temporal_at_critical_fusion ... ok
[INFO] [stdout] test perceptual_model::tests::test_jnd_is_visible ... ok
[INFO] [stdout] test perceptual_model::tests::test_jnd_threshold_default ... ok
[INFO] [stdout] test peaq_like::tests::test_bandwidth_sine_reasonable ... ok
[INFO] [stdout] test perceptual_model::tests::test_perceptual_distortion_map_mean ... ok
[INFO] [stdout] test perceptual_model::tests::test_perceptual_distortion_map_new ... ok
[INFO] [stdout] test perceptual_model::tests::test_perceptual_quality_score_perfect ... ok
[INFO] [stdout] test psnr::tests::test_extract_plane_roi_basic ... ok
[INFO] [stdout] test perceptual_model::tests::test_perceptual_distortion_map_get_set ... ok
[INFO] [stdout] test psnr::tests::test_mse_calculation ... ok
[INFO] [stdout] test psnr::tests::test_psnr_custom_weights ... ok
[INFO] [stdout] test psnr::tests::test_psnr_formula ... ok
[INFO] [stdout] test psnr::tests::test_psnr_identical_frames ... ok
[INFO] [stdout] test perceptual_model::tests::test_jnd_masking_increases_threshold ... ok
[INFO] [stdout] test psnr::tests::test_psnr_region_identical ... ok
[INFO] [stdout] test psnr::tests::test_psnr_region_smaller_than_full ... ok
[INFO] [stdout] test psnr::tests::test_psnr_different_frames ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_bd_rate_better_curve_is_negative ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_bd_rate_insufficient_points ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_bitrate_for_quality_exact ... ok
[INFO] [stdout] test psnr::tests::test_psnr_region_oob_errors ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_bitrate_for_quality_insufficient_points ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_bd_rate_identical_curves_is_zero ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_bitrate_for_quality_interpolated ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_curve_point_efficiency ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_curve_builder_constructs_correctly ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_curve_sorted_by_bitrate ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_bitrate_for_quality_out_of_range ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_duplicate_bitrate_returns_error ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_empty_curve_returns_error ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_diminishing_returns_returns_some_for_diminishing_curve ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_most_efficient_point_is_lowest_bitrate ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_quality_at_exact_bitrate_point ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_diminishing_returns_threshold_zero_returns_none_or_first ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_quality_clamps_above_max_bitrate ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_quality_at_midpoint_interpolated ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_quality_clamps_below_min_bitrate ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_segment_slopes_count ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_segment_slopes_insufficient_points ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_single_point_curve_valid ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_all_one_fails ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_all_pass ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_any_none_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_any_one_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_at_least_fails ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_at_least_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_at_least_zero_always_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_empty_all_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_failed_sub_gates ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_gate_count ... ok
[INFO] [stdout] test quality_bitrate_curve::tests::test_segment_slopes_are_non_negative_for_monotone_curve ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_mode_accessor ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_empty_any_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_passes_convenience ... ok
[INFO] [stdout] test quality_gate::tests::test_empty_gate_passes_anything ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_all_pass ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_missing_metric_treated_as_zero ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_one_fail ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_passes_convenience ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_result_failures_list ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_threshold_count ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_broadcast_fails_psnr ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_broadcast_fails_psnr_drop ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_broadcast_fails_ssim ... ok
[INFO] [stdout] test quality_gate::tests::test_composite_summary_format ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_broadcast_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_result_pass_count ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_name ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_custom_vmaf ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_preview_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_preview_fails_ssim ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_multiple_violations ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_result_gate_name ... ok
[INFO] [stdout] test quality_gate::tests::test_threshold_at_least_fails ... ok
[INFO] [stdout] test quality_gate::tests::test_threshold_at_least_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_threshold_at_most_fails ... ok
[INFO] [stdout] test quality_gate::tests::test_threshold_at_most_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_pipeline_gate_streaming_passes ... ok
[INFO] [stdout] test quality_gate::tests::test_threshold_with_description ... ok
[INFO] [stdout] test quality_heatmap::tests::best_and_worst_region_detection ... ok
[INFO] [stdout] test quality_heatmap::tests::dimension_mismatch_error ... ok
[INFO] [stdout] test quality_heatmap::tests::empty_image_returns_error ... ok
[INFO] [stdout] test quality_heatmap::tests::fully_distorted_image_all_poor ... ok
[INFO] [stdout] test quality_heatmap::tests::grid_has_correct_region_count ... ok
[INFO] [stdout] test quality_gate::tests::test_threshold_both_bounds ... ok
[INFO] [stdout] test quality_heatmap::tests::identical_images_all_excellent ... ok
[INFO] [stdout] test quality_gate::tests::test_quality_gate_result_is_pass ... ok
[INFO] [stdout] test quality_heatmap::tests::image_smaller_than_grid_error ... ok
[INFO] [stdout] test quality_heatmap::tests::regions_below_threshold_filters_correctly ... ok
[INFO] [stdout] test quality_heatmap::tests::single_block_grid ... ok
[INFO] [stdout] test quality_heatmap::tests::zero_grid_size_error ... ok
[INFO] [stdout] test quality_history::tests::test_anomaly_detection ... ok
[INFO] [stdout] test quality_history::tests::test_empty_history_returns_defaults ... ok
[INFO] [stdout] test quality_history::tests::test_r_squared_perfect_fit ... ok
[INFO] [stdout] test quality_history::tests::test_latest_observation ... ok
[INFO] [stdout] test quality_heatmap::tests::psnr_infinite_for_identical_blocks ... ok
[INFO] [stdout] test quality_history::tests::test_scene_cut_finalises_stats ... ok
[INFO] [stdout] test quality_history::tests::test_trend_degrading ... ok
[INFO] [stdout] test quality_history::tests::test_trend_improving ... ok
[INFO] [stdout] test quality_history::tests::test_trend_stable ... ok
[INFO] [stdout] test quality_history::tests::test_window_eviction ... ok
[INFO] [stdout] test quality_preset::tests::test_custom_preset ... ok
[INFO] [stdout] test quality_preset::tests::test_list_builtin_presets ... ok
[INFO] [stdout] test quality_preset::tests::test_pool_strategy_empty ... ok
[INFO] [stdout] test quality_preset::tests::test_pool_strategy_harmonic ... ok
[INFO] [stdout] test quality_preset::tests::test_pool_strategy_mean ... ok
[INFO] [stdout] test quality_preset::tests::test_pool_strategy_min ... ok
[INFO] [stdout] test quality_preset::tests::test_preset_broadcast ... ok
[INFO] [stdout] test quality_preset::tests::test_preset_evaluate_all_pass ... ok
[INFO] [stdout] test quality_preset::tests::test_preset_evaluate_fail ... ok
[INFO] [stdout] test quality_preset::tests::test_preset_required_metric_count ... ok
[INFO] [stdout] test quality_preset::tests::test_threshold_error_above ... ok
[INFO] [stdout] test quality_preset::tests::test_threshold_error_below ... ok
[INFO] [stdout] test quality_preset::tests::test_threshold_pass ... ok
[INFO] [stdout] test quality_preset::tests::test_threshold_warn_below ... ok
[INFO] [stdout] test quality_report::tests::test_export_csv_writes_file ... ok
[INFO] [stdout] test quality_history::tests::test_rolling_stats_single_observation ... ok
[INFO] [stdout] test quality_report::tests::test_issues_to_csv ... ok
[INFO] [stdout] test quality_report::tests::test_issues_to_csv_escapes_commas ... ok
[INFO] [stdout] test quality_report::tests::test_metric_to_csv_missing_metric ... ok
[INFO] [stdout] test quality_report::tests::test_quality_issue_builder ... ok
[INFO] [stdout] test quality_report::tests::test_report_add_frame_metrics ... ok
[INFO] [stdout] test quality_report::tests::test_report_compute_summaries ... ok
[INFO] [stdout] test quality_report::tests::test_report_issue_counts ... ok
[INFO] [stdout] test quality_report::tests::test_report_text_summary ... ok
[INFO] [stdout] test quality_report::tests::test_report_verdict_conditional ... ok
[INFO] [stdout] test quality_report::tests::test_report_verdict_fail ... ok
[INFO] [stdout] test quality_report::tests::test_report_verdict_pass ... ok
[INFO] [stdout] test quality_report::tests::test_report_worst_best_frame ... ok
[INFO] [stdout] test quality_report::tests::test_severity_ordering ... ok
[INFO] [stdout] test quality_report::tests::test_summarize_median_even ... ok
[INFO] [stdout] test quality_report::tests::test_summarize_median_odd ... ok
[INFO] [stdout] test quality_report::tests::test_summarize_values_basic ... ok
[INFO] [stdout] test quality_report::tests::test_summarize_values_empty ... ok
[INFO] [stdout] test quality_report::tests::test_to_csv_empty_report ... ok
[INFO] [stdout] test quality_report::tests::test_to_csv_per_frame_only ... ok
[INFO] [stdout] test quality_report::tests::test_to_csv_summaries_sorted ... ok
[INFO] [stdout] test quality_report::tests::test_to_csv_with_summaries ... ok
[INFO] [stdout] test realtime_monitor::tests::test_alert_sample_index ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_clear_alerts ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_config_ema_clamped ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_ema_tracks_recent ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_large_window_stress ... ok
[INFO] [stdout] test quality_report::tests::test_metric_to_csv ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_min_max_latest ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_push_and_mean ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_missing_metric_returns_none ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_single_sample ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_sliding_window_evicts ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_reset ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_snapshot ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_snapshot_all ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_threshold_alert ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_tracked_metrics ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_stddev ... ok
[INFO] [stdout] test quality_history::tests::test_reset_clears_state ... ok
[INFO] [stdout] test realtime_quality::gate_tests::test_gate_at_boundary ... ok
[INFO] [stdout] test realtime_monitor::tests::test_snapshot_missing_metric ... ok
[INFO] [stdout] test realtime_monitor::tests::test_monitor_window_size_one ... ok
[INFO] [stdout] test realtime_quality::gate_tests::test_gate_threshold_accessor ... ok
[INFO] [stdout] test realtime_quality::tests::test_alert_generated_on_ssim_drop ... ok
[INFO] [stdout] test realtime_quality::tests::test_alert_generated_on_vmaf_drop ... ok
[INFO] [stdout] test realtime_quality::tests::test_default_config_via_trait ... ok
[INFO] [stdout] test realtime_quality::tests::test_mean_computed_correctly ... ok
[INFO] [stdout] test realtime_quality::gate_tests::test_gate_rejects_below_threshold ... ok
[INFO] [stdout] test realtime_quality::tests::test_no_alerts_without_drops ... ok
[INFO] [stdout] test realtime_quality::tests::test_no_snapshot_between_intervals ... ok
[INFO] [stdout] test realtime_quality::tests::test_push_frame_returns_snapshot_at_interval ... ok
[INFO] [stdout] test realtime_quality::tests::test_reset_clears_state ... ok
[INFO] [stdout] test realtime_quality::tests::test_snapshot_contains_window_min_vmaf ... ok
[INFO] [stdout] test realtime_quality::tests::test_strict_config_has_higher_thresholds ... ok
[INFO] [stdout] test realtime_quality::tests::test_trend_degrading ... ok
[INFO] [stdout] test realtime_quality::tests::test_trend_improving ... ok
[INFO] [stdout] test realtime_quality::tests::test_window_bounded ... ok
[INFO] [stdout] test reference::tests::test_add_and_get_frame ... ok
[INFO] [stdout] test reference::tests::test_buffer_overflow ... ok
[INFO] [stdout] test reference::tests::test_clear ... ok
[INFO] [stdout] test reference::tests::test_compute_mad ... ok
[INFO] [stdout] test reference::tests::test_find_best_match ... ok
[INFO] [stdout] test reference::tests::test_frame_at_offset ... ok
[INFO] [stdout] test reference_free::tests::test_description_not_empty ... ok
[INFO] [stdout] test reference_free::tests::test_grade_acceptable ... ok
[INFO] [stdout] test reference_free::tests::test_grade_excellent ... ok
[INFO] [stdout] test reference_free::tests::test_grade_frame_excellent_for_perfect ... ok
[INFO] [stdout] test reference_free::tests::test_grade_frame_poor_for_bad_input ... ok
[INFO] [stdout] test reference_free::tests::test_grade_good ... ok
[INFO] [stdout] test reference_free::tests::test_grade_poor ... ok
[INFO] [stdout] test reference_free::tests::test_grade_unacceptable ... ok
[INFO] [stdout] test reference_free::tests::test_is_acceptable_at_boundary ... ok
[INFO] [stdout] test reference_free::tests::test_is_acceptable_false_when_above_max ... ok
[INFO] [stdout] test reference_free::tests::test_is_acceptable_true_when_below_max ... ok
[INFO] [stdout] test reference_free::tests::test_new_stores_fields ... ok
[INFO] [stdout] test realtime_quality::gate_tests::test_gate_passes_above_threshold ... ok
[INFO] [stdout] test reference_free::tests::test_overall_score_perfect_is_zero ... ok
[INFO] [stdout] test reference_free::tests::test_overall_score_bounded_above ... ok
[INFO] [stdout] test region_quality::tests::test_grid_1x1_equals_full_frame ... ok
[INFO] [stdout] test region_quality::tests::test_grid_2x2_returns_four_regions ... ok
[INFO] [stdout] test reference_free::tests::test_niqe_clamped_at_100 ... ok
[INFO] [stdout] test region_quality::tests::test_region_different_pixels_lower_psnr ... ok
[INFO] [stdout] test region_quality::tests::test_region_identical_full_frame_high_psnr ... ok
[INFO] [stdout] test region_quality::tests::test_region_identical_full_frame_ssim_is_one ... ok
[INFO] [stdout] test region_quality::tests::test_region_out_of_bounds_returns_none ... ok
[INFO] [stdout] test reference_free::tests::test_overall_score_positive ... ok
[INFO] [stdout] test region_quality::tests::test_grid_cells_are_non_overlapping ... ok
[INFO] [stdout] test region_quality::tests::test_region_uniform_mse_zero_psnr_high ... ok
[INFO] [stdout] test scene_quality::tests::test_add_increases_window_count ... ok
[INFO] [stdout] test scene_quality::tests::test_degraded_windows_all_above_threshold ... ok
[INFO] [stdout] test region_quality::tests::test_region_sub_region_at_origin ... ok
[INFO] [stdout] test scene_quality::tests::test_degraded_windows_none_below_threshold ... ok
[INFO] [stdout] test region_quality::tests::test_region_zero_width_returns_none ... ok
[INFO] [stdout] test scene_quality::tests::test_duration_multi_frame ... ok
[INFO] [stdout] test scene_quality::tests::test_degraded_windows_partial ... ok
[INFO] [stdout] test scene_quality::tests::test_empty_timeline_overall_mean ... ok
[INFO] [stdout] test scene_quality::tests::test_empty_timeline_find_worst_is_none ... ok
[INFO] [stdout] test scene_quality::tests::test_duration_single_frame ... ok
[INFO] [stdout] test fsim::tests::test_fsim_uniform_identical_near_one ... ok
[INFO] [stdout] test scene_quality::tests::test_find_worst_window_multiple ... ok
[INFO] [stdout] test scene_quality::tests::test_find_worst_window_single ... ok
[INFO] [stdout] test scene_quality::tests::test_is_not_degraded_below_threshold ... ok
[INFO] [stdout] test scene_quality::tests::test_overall_mean_multiple_windows ... ok
[INFO] [stdout] test scene_quality::tests::test_is_degraded_above_threshold ... ok
[INFO] [stdout] test scene_quality::tests::test_overall_mean_single_window ... ok
[INFO] [stdout] test scene_quality::tests::test_score_range_positive ... ok
[INFO] [stdout] test scene_quality::tests::test_is_not_degraded_at_threshold ... ok
[INFO] [stdout] test scene_quality::tests::test_score_range_zero_when_uniform ... ok
[INFO] [stdout] test sharpness_score::tests::test_analyzer_with_config ... ok
[INFO] [stdout] test sharpness_score::tests::test_compare_sharpness_same ... ok
[INFO] [stdout] test sharpness_score::tests::test_config_default ... ok
[INFO] [stdout] test sharpness_score::tests::test_config_builder ... ok
[INFO] [stdout] test sharpness_score::tests::test_edge_image_sharp ... ok
[INFO] [stdout] test sharpness_score::tests::test_flat_image_not_sharp ... ok
[INFO] [stdout] test sharpness_score::tests::test_compare_sharpness_flat_vs_edge ... ok
[INFO] [stdout] test sharpness_score::tests::test_normalized_score_clamped ... ok
[INFO] [stdout] test sharpness_score::tests::test_rating_categories ... ok
[INFO] [stdout] test sharpness_score::tests::test_tenengrad_positive_for_edges ... ok
[INFO] [stdout] test sharpness_score::tests::test_tiny_image ... ok
[INFO] [stdout] test spatial_quality::tests::test_edge_sharpness_flat_image ... ok
[INFO] [stdout] test spatial_quality::tests::test_edge_sharpness_high_contrast_image ... ok
[INFO] [stdout] test spatial_quality::tests::test_edge_sharpness_too_small ... ok
[INFO] [stdout] test spatial_quality::tests::test_ringing_detector_flat_image ... ok
[INFO] [stdout] test spatial_quality::tests::test_ringing_detector_index_in_range ... ok
[INFO] [stdout] test spatial_quality::tests::test_ringing_detector_too_small ... ok
[INFO] [stdout] test spatial_quality::tests::test_spatial_information_checkerboard_uniform_gradient ... ok
[INFO] [stdout] test spatial_quality::tests::test_spatial_information_flat_is_low ... ok
[INFO] [stdout] test spatial_quality::tests::test_spatial_information_too_small ... ok
[INFO] [stdout] test spatial_quality::tests::test_spatial_quality_summary_flat ... ok
[INFO] [stdout] test spatial_quality::tests::test_std_dev_empty ... ok
[INFO] [stdout] test spatial_quality::tests::test_std_dev_uniform ... ok
[INFO] [stdout] test ssim::tests::test_gaussian_window ... ok
[INFO] [stdout] test ssim::tests::test_ssim_custom_window ... ok
[INFO] [stdout] test sharpness_score::tests::test_gradient_image ... ok
[INFO] [stdout] test spatial_quality::tests::test_spatial_quality_summary_checkerboard ... ok
[INFO] [stdout] test ssim::tests::test_ssim_identical_frames ... ok
[INFO] [stdout] test peaq_like::tests::test_compute_movs_identical ... ok
[INFO] [stdout] test ssim::tests::test_ssim_region_mismatched_dims_errors ... ok
[INFO] [stdout] test ssim::tests::test_ssim_region_oob_errors ... ok
[INFO] [stdout] test ssim_simd::tests::test_gaussian_kernel_cache_sum_to_one ... ok
[INFO] [stdout] test ssim_simd::tests::test_gaussian_kernel_center_is_largest ... ok
[INFO] [stdout] test ssim::tests::test_ssim_region_has_chroma_components ... ok
[INFO] [stdout] test ssim::tests::test_ssim_region_identical ... ok
[INFO] [stdout] test ssim::tests::test_ssim_range ... ok
[INFO] [stdout] test ssim_simd::tests::test_simd_ssim_dimension_mismatch_errors ... ok
[INFO] [stdout] test ssim_simd::tests::test_simd_ssim_different_frames_lower ... ok
[INFO] [stdout] test ssim_simd::tests::test_simd_ssim_chroma_components_present ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_empty_report ... ok
[INFO] [stdout] test ssim::tests::test_ssim_different_frames ... ok
[INFO] [stdout] test ssim_simd::tests::test_simd_ssim_identical_frames ... ok
[INFO] [stdout] test ssim_simd::tests::test_simd_kernel_cache_reuse ... ok
[INFO] [stdout] test ssim_simd::tests::test_simd_vs_scalar_close ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_multiple_frames_stats ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_single_identical_frame ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_smoothed_ssim_length ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_vmaf_estimate_in_range ... ok
[INFO] [stdout] test temporal_quality::tests::test_flickering_is_acceptable_threshold ... ok
[INFO] [stdout] test temporal_quality::tests::test_flickering_large_variance ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_worst_best_frame ... ok
[INFO] [stdout] test temporal_quality::tests::test_flickering_single_frame ... ok
[INFO] [stdout] test temporal_quality::tests::test_flickering_stable_sequence ... ok
[INFO] [stdout] test temporal_quality::tests::test_frame_rate_dropped ... ok
[INFO] [stdout] test temporal_quality::tests::test_frame_rate_empty ... ok
[INFO] [stdout] test temporal_quality::tests::test_frame_rate_perfect ... ok
[INFO] [stdout] test temporal_quality::tests::test_frame_rate_single_ts ... ok
[INFO] [stdout] test temporal_quality::tests::test_motion_blur_detector_flat_frame ... ok
[INFO] [stdout] test temporal_quality::tests::test_motion_blur_detector_sharp_frame ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_psnr_percentile_5th_below_median ... ok
[INFO] [stdout] test temporal_quality::tests::test_motion_blur_detector_small_frame ... ok
[INFO] [stdout] test temporal_quality::tests::test_motion_blur_score_empty ... ok
[INFO] [stdout] test temporal_quality::tests::test_motion_blur_score_from_frame_scores ... ok
[INFO] [stdout] test temporal_quality::tests::test_motion_blur_score_grade ... ok
[INFO] [stdout] test temporal_quality::tests::test_moving_average_window_full ... ok
[INFO] [stdout] test temporal_quality::tests::test_moving_average_window_one ... ok
[INFO] [stdout] test temporal_quality::tests::test_percentile_edge_cases ... ok
[INFO] [stdout] test temporal_quality::tests::test_quality_stats_empty ... ok
[INFO] [stdout] test temporal_quality::tests::test_quality_stats_from_values ... ok
[INFO] [stdout] test temporal_quality::tests::test_scene_pooler_empty ... ok
[INFO] [stdout] test temporal_quality::tests::test_scene_pooler_reset ... ok
[INFO] [stdout] test temporal_quality::tests::test_scene_pooler_single_scene_no_cuts ... ok
[INFO] [stdout] test temporal_quality::tests::test_scene_pooler_two_scenes ... ok
[INFO] [stdout] test temporal_quality::tests::test_scene_segment_stats_from_empty ... ok
[INFO] [stdout] test temporal_quality::tests::test_temporal_quality_report_construction ... ok
[INFO] [stdout] test temporal_quality::tests::test_temporal_quality_report_high_quality ... ok
[INFO] [stdout] test temporal_stable::tests::test_constant_scores_stability_is_one ... ok
[INFO] [stdout] test temporal_stable::tests::test_empty_stability_is_one ... ok
[INFO] [stdout] test temporal_stable::tests::test_gate_boundary_exactly_at_threshold ... ok
[INFO] [stdout] test temporal_stable::tests::test_gate_passes_above_threshold ... ok
[INFO] [stdout] test temporal_stable::tests::test_gate_rejects_below_threshold ... ok
[INFO] [stdout] test temporal_stable::tests::test_gate_threshold_accessor ... ok
[INFO] [stdout] test temporal_stable::tests::test_high_variance_lower_stability ... ok
[INFO] [stdout] test temporal_stable::tests::test_low_variance_high_stability ... ok
[INFO] [stdout] test temporal_stable::tests::test_mean_is_correct ... ok
[INFO] [stdout] test temporal_stable::tests::test_min_max ... ok
[INFO] [stdout] test temporal_stable::tests::test_reset_clears_scores ... ok
[INFO] [stdout] test temporal_quality::tests::test_flickering_max_delta ... ok
[INFO] [stdout] test temporal_stable::tests::test_single_score_stability_is_one ... ok
[INFO] [stdout] test temporal_stable::tests::test_stability_clamped_to_zero_minimum ... ok
[INFO] [stdout] test vif::tests::test_plane_to_f64 ... ok
[INFO] [stdout] test vif::tests::test_vif_different_frames ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_smoothed_psnr_length ... ok
[INFO] [stdout] test vif::tests::test_vif_identical_frames ... ok
[INFO] [stdout] test vmaf::tests::test_detail_computation ... ok
[INFO] [stdout] test vmaf::tests::test_score_fusion ... ok
[INFO] [stdout] test vif::tests::test_downsample ... ok
[INFO] [stdout] test fsim::tests::test_fsim_different_content_less_than_identical ... ok
[INFO] [stdout] test vmaf::tests::test_spatial_information ... ok
[INFO] [stdout] test vmaf_like::tests::test_adm_identical_is_one ... ok
[INFO] [stdout] test vmaf_like::tests::test_adm_inverted_frame_low ... ok
[INFO] [stdout] test vmaf_like::tests::test_adm_range ... ok
[INFO] [stdout] test temporal_quality::tests::test_scene_pooler_via_analyzer ... ok
[INFO] [stdout] test vmaf_like::tests::test_bitrate_curve_fit_insufficient ... ok
[INFO] [stdout] test vmaf_like::tests::test_bitrate_curve_fit_two_points ... ok
[INFO] [stdout] test vmaf_like::tests::test_bitrate_curve_monotonic ... ok
[INFO] [stdout] test vmaf_like::tests::test_bitrate_for_quality ... ok
[INFO] [stdout] test vmaf_like::tests::test_config_default ... ok
[INFO] [stdout] test vmaf_like::tests::test_config_new ... ok
[INFO] [stdout] test vmaf_like::tests::test_custom_model_weights ... ok
[INFO] [stdout] test vmaf_like::tests::test_bitrate_curve_predict_clamps ... ok
[INFO] [stdout] test vmaf::tests::test_detail_loss ... ok
[INFO] [stdout] test vmaf_like::tests::test_different_models_give_different_scores ... ok
[INFO] [stdout] test vmaf::tests::test_vmaf_calculation ... ok
[INFO] [stdout] test vmaf_like::tests::test_dlm_flat_ref_is_one ... ok
[INFO] [stdout] test vmaf_like::tests::test_dlm_range ... ok
[INFO] [stdout] test vmaf_like::tests::test_dlm_identical_is_one ... ok
[INFO] [stdout] test vmaf_like::tests::test_features_struct ... ok
[INFO] [stdout] test vmaf_like::tests::test_four_k_model_weights ... ok
[INFO] [stdout] test vmaf_like::tests::test_frame_vmaf_result_fields ... ok
[INFO] [stdout] test vmaf_like::tests::test_hdtv_model_weights ... ok
[INFO] [stdout] test vmaf_like::tests::test_empty_input_returns_zero ... ok
[INFO] [stdout] test vmaf_like::tests::test_model_weights_default_is_hdtv ... ok
[INFO] [stdout] test vmaf_like::tests::test_motion_compensated_empty ... ok
[INFO] [stdout] test vmaf_like::tests::test_motion_compensated_score_static ... ok
[INFO] [stdout] test vmaf_like::tests::test_motion_compensated_score_weights_low_motion ... ok
[INFO] [stdout] test vmaf_like::tests::test_per_frame_empty ... ok
[INFO] [stdout] test vmaf_like::tests::test_per_frame_single_frame ... ok
[INFO] [stdout] test vmaf_like::tests::test_phone_model_weights ... ok
[INFO] [stdout] test vmaf_like::tests::test_per_frame_motion_detection ... ok
[INFO] [stdout] test vmaf_like::tests::test_pooling_arithmetic_mean ... ok
[INFO] [stdout] test vmaf_like::tests::test_pool_scores_via_vmaf ... ok
[INFO] [stdout] test vmaf_like::tests::test_pooling_harmonic_mean_penalises_low ... ok
[INFO] [stdout] test vmaf_like::tests::test_pooling_percentile ... ok
[INFO] [stdout] test vmaf_like::tests::test_score_from_features_uses_model_weights ... ok
[INFO] [stdout] test vmaf_like::tests::test_pooling_empty_returns_zero ... ok
[INFO] [stdout] test vmaf_like::tests::test_svm_score_perfect_features ... ok
[INFO] [stdout] test vmaf_like::tests::test_svm_score_zero_features ... ok
[INFO] [stdout] test vmaf_like::tests::test_identical_frames_high_score ... ok
[INFO] [stdout] test vmaf_like::tests::test_score_in_range ... ok
[INFO] [stdout] test vmaf_like::tests::test_temporal_flag_affects_score ... ok
[INFO] [stdout] test vmaf_like::tests::test_vif_range ... ok
[INFO] [stdout] test vmaf_like::tests::test_zero_dimension_returns_zero ... ok
[INFO] [stdout] test vmaf_score::tests::test_broadcast_quality ... ok
[INFO] [stdout] test vmaf_score::tests::test_empty_tracker ... ok
[INFO] [stdout] test vmaf_like::tests::test_vif_identical_is_one ... ok
[INFO] [stdout] test vmaf_like::tests::test_vif_uniform_reference ... ok
[INFO] [stdout] test vmaf_score::tests::test_fraction_below ... ok
[INFO] [stdout] test vmaf_score::tests::test_harmonic_mean_lower_than_arithmetic ... ok
[INFO] [stdout] test vmaf_score::tests::test_frame_count ... ok
[INFO] [stdout] test vmaf_score::tests::test_min_max ... ok
[INFO] [stdout] test vmaf_score::tests::test_percentile_0_is_min ... ok
[INFO] [stdout] test vmaf_score::tests::test_percentile_100_is_max ... ok
[INFO] [stdout] test vmaf_score::tests::test_percentile_50 ... ok
[INFO] [stdout] test vmaf_score::tests::test_mean ... ok
[INFO] [stdout] test vmaf_score::tests::test_std_dev_uniform ... ok
[INFO] [stdout] test vmaf_score::tests::test_vmaf_model_max_score_phone ... ok
[INFO] [stdout] test vmaf_score::tests::test_vmaf_model_name ... ok
[INFO] [stdout] test vmaf_score::tests::test_vmaf_score_clamped ... ok
[INFO] [stdout] test vmaf_score::tests::test_worst_frame ... ok
[INFO] [stdout] test vmaf_score::tests::test_fraction_below_empty ... ok
[INFO] [stdout] test vmaf::tests::test_vmaf_different_frames ... ok
[INFO] [stdout] test temporal_quality::tests::test_analyzer_quality_drops_detection ... ok
[INFO] [stdout] test vmaf_like::tests::test_distorted_lower_than_identical ... ok
[INFO] [stdout] test peaq_like::tests::test_odg_always_in_range ... ok
[INFO] [stdout] test peaq_like::tests::test_bandwidth_not_limited_full_spectrum ... ok
[INFO] [stdout] test peaq_like::tests::test_bandwidth_limited_lowpass ... ok
[INFO] [stdout] test peaq_like::tests::test_identical_silence_odg_zero ... ok
[INFO] [stdout] test peaq_like::tests::test_stereo_config_identical ... ok
[INFO] [stdout] test peaq_like::tests::test_inverted_signal_very_annoying ... ok
[INFO] [stdout] test peaq_like::tests::test_noise_vs_sine_low_odg ... ok
[INFO] [stdout] test peaq_like::tests::test_identical_signals_odg_zero ... ok
[INFO] [stdout] test peaq_like::tests::test_extended_distorted_signal ... ok
[INFO] [stdout] test peaq_like::tests::test_extended_identical_signals ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 838 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.24s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests oximedia_quality
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test src/compression_artifact.rs - compression_artifact (line 17) ... ok
[INFO] [stdout] test src/lib.rs - (line 26) ... ok
[INFO] [stdout] test src/budget.rs - budget::QualityBudget (line 30) ... ok
[INFO] [stdout] test src/realtime_quality.rs - realtime_quality::RealtimeQualityGate (line 546) ... ok
[INFO] [stdout] test src/motion_compensated.rs - motion_compensated (line 17) ... ok
[INFO] [stdout] test src/quality_gate.rs - quality_gate::CompositeQualityGate (line 421) ... ok
[INFO] [stdout] test src/temporal_quality.rs - temporal_quality::SceneAwarePooler (line 658) ... ok
[INFO] [stdout] test src/temporal_stable.rs - temporal_stable::QualityStabilityAnalyzer (line 29) ... ok
[INFO] [stdout] test src/lpips.rs - lpips (line 20) ... ok
[INFO] [stdout] test src/confidence.rs - confidence (line 22) ... ok
[INFO] [stdout] test src/realtime_monitor.rs - realtime_monitor (line 9) ... ok
[INFO] [stdout] test src/temporal_quality.rs - temporal_quality::TemporalQualityAnalyzer (line 407) ... ok
[INFO] [stdout] test src/color_banding.rs - color_banding (line 19) ... ok
[INFO] [stdout] test src/audio_quality.rs - audio_quality (line 8) ... ok
[INFO] [stdout] test src/realtime_quality.rs - realtime_quality (line 10) ... ok
[INFO] [stdout] test src/ciede2000.rs - ciede2000 (line 16) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.65s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8a35fef1459c30822be925c21823ffa36348e5d556eaa95702e754ebb543e7c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a35fef1459c30822be925c21823ffa36348e5d556eaa95702e754ebb543e7c1", kill_on_drop: false }`
[INFO] [stdout] 8a35fef1459c30822be925c21823ffa36348e5d556eaa95702e754ebb543e7c1
