[INFO] fetching crate oximedia-scaling 0.1.2... [INFO] testing oximedia-scaling-0.1.2 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate oximedia-scaling 0.1.2 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate oximedia-scaling 0.1.2 [INFO] finished tweaking crates.io crate oximedia-scaling 0.1.2 [INFO] tweaked toml for crates.io crate oximedia-scaling 0.1.2 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-scaling 0.1.2 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-scaling 0.1.2 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-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6c2804ebd582e0dff1be4b0b15f3384d91baa6b701c4b8a4404e55ab38ed3fc7 [INFO] running `Command { std: "docker" "start" "-a" "6c2804ebd582e0dff1be4b0b15f3384d91baa6b701c4b8a4404e55ab38ed3fc7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6c2804ebd582e0dff1be4b0b15f3384d91baa6b701c4b8a4404e55ab38ed3fc7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6c2804ebd582e0dff1be4b0b15f3384d91baa6b701c4b8a4404e55ab38ed3fc7", kill_on_drop: false }` [INFO] [stdout] 6c2804ebd582e0dff1be4b0b15f3384d91baa6b701c4b8a4404e55ab38ed3fc7 [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=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] 9ea11ca24c3f9cfc93c726ed4a154d6072359d95d797703b8916deca5b8190ae [INFO] running `Command { std: "docker" "start" "-a" "9ea11ca24c3f9cfc93c726ed4a154d6072359d95d797703b8916deca5b8190ae", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling scirs2-core v0.3.3 [INFO] [stderr] Compiling safe_arch v1.0.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling wide v1.2.0 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling oxiarc-core v0.2.4 [INFO] [stderr] Compiling rand_distr v0.6.0 [INFO] [stderr] Compiling oxiblas-core v0.2.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling oxiarc-zstd v0.2.4 [INFO] [stderr] Compiling oxiarc-lz4 v0.2.4 [INFO] [stderr] Compiling oxiblas-matrix v0.2.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling oximedia-core v0.1.2 [INFO] [stderr] Compiling ndarray v0.17.2 [INFO] [stderr] Compiling oxiblas-blas v0.2.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling oxiblas-lapack v0.2.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand_chacha v0.10.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand_distr v0.5.1 [INFO] [stderr] Compiling ndarray-rand v0.16.0 [INFO] [stderr] Compiling oxiblas-ndarray v0.2.1 [INFO] [stderr] Compiling oximedia-scaling v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s [INFO] running `Command { std: "docker" "inspect" "9ea11ca24c3f9cfc93c726ed4a154d6072359d95d797703b8916deca5b8190ae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9ea11ca24c3f9cfc93c726ed4a154d6072359d95d797703b8916deca5b8190ae", kill_on_drop: false }` [INFO] [stdout] 9ea11ca24c3f9cfc93c726ed4a154d6072359d95d797703b8916deca5b8190ae [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=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] 4c746964f5b2e7fa1b3ea7815225b885c6ad8558ff7bad90633edc12d9e0a019 [INFO] running `Command { std: "docker" "start" "-a" "4c746964f5b2e7fa1b3ea7815225b885c6ad8558ff7bad90633edc12d9e0a019", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-core v0.1.2 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling oximedia-scaling v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 10.38s [INFO] running `Command { std: "docker" "inspect" "4c746964f5b2e7fa1b3ea7815225b885c6ad8558ff7bad90633edc12d9e0a019", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4c746964f5b2e7fa1b3ea7815225b885c6ad8558ff7bad90633edc12d9e0a019", kill_on_drop: false }` [INFO] [stdout] 4c746964f5b2e7fa1b3ea7815225b885c6ad8558ff7bad90633edc12d9e0a019 [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=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] cc7f4a5128bb68e92e3f7ed47ce39777652406585d7f7110d114f8c5b17b0ac2 [INFO] running `Command { std: "docker" "start" "-a" "cc7f4a5128bb68e92e3f7ed47ce39777652406585d7f7110d114f8c5b17b0ac2", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_scaling-962048b04210e40b) [INFO] [stdout] [INFO] [stdout] running 616 tests [INFO] [stdout] test adaptive_scaling::tests::test_adaptive_scaler_empty ... ok [INFO] [stdout] test adaptive_scaling::tests::test_adaptive_scaler_no_reduction ... ok [INFO] [stdout] test adaptive_scaling::tests::test_carve_to_width_no_op_when_wider ... ok [INFO] [stdout] test adaptive_scaling::tests::test_compute_energy_gradient ... ok [INFO] [stdout] test adaptive_scaling::tests::test_carve_to_width ... ok [INFO] [stdout] test adaptive_scaling::tests::test_compute_energy_uniform ... ok [INFO] [stdout] test adaptive_scaling::tests::test_find_vertical_seam_valid_columns ... ok [INFO] [stdout] test adaptive_scaling::tests::test_pillarbox_detect_left_bar ... ok [INFO] [stdout] test adaptive_scaling::tests::test_pillarbox_detect_no_bars ... ok [INFO] [stdout] test adaptive_scaling::tests::test_pillarbox_remove ... ok [INFO] [stdout] test adaptive_scaling::tests::test_remove_seam_reduces_width ... ok [INFO] [stdout] test aspect_preserve::tests::test_contain_no_upscale_large_source_does_scale ... ok [INFO] [stdout] test aspect_preserve::tests::test_contain_4x3_into_16x9_pillarbox ... ok [INFO] [stdout] test aspect_preserve::tests::test_contain_no_upscale_small_source ... ok [INFO] [stdout] test adaptive_scaling::tests::test_find_vertical_seam_length ... ok [INFO] [stdout] test aspect_preserve::tests::test_contain_same_aspect_no_padding ... ok [INFO] [stdout] test aspect_preserve::tests::test_contain_square_source_into_landscape ... ok [INFO] [stdout] test aspect_preserve::tests::test_frame_dimensions_always_equal_target ... ok [INFO] [stdout] test aspect_preserve::tests::test_output_geometry_has_padding_false ... ok [INFO] [stdout] test aspect_preserve::tests::test_cover_fills_frame ... ok [INFO] [stdout] test aspect_preserve::tests::test_pad_x_and_pad_y_accessors ... ok [INFO] [stdout] test aspect_preserve::tests::test_contain_wider_source_letterboxes ... ok [INFO] [stdout] test aspect_preserve::tests::test_scaled_size_convenience ... ok [INFO] [stdout] test aspect_preserve::tests::test_output_geometry_has_padding_true ... ok [INFO] [stdout] test aspect_preserve::tests::test_stretch_returns_exact_target ... ok [INFO] [stdout] test aspect_ratio::tests::test_aspect_ratio_converter_fit ... ok [INFO] [stdout] test aspect_ratio::tests::test_aspect_ratio_21_9_widescreen ... ok [INFO] [stdout] test aspect_preserve::tests::test_fitmode_display ... ok [INFO] [stdout] test aspect_ratio::tests::test_aspect_ratio_reduce ... ok [INFO] [stdout] test aspect_preserve::tests::test_zero_source_returns_zero_scaled ... ok [INFO] [stdout] test aspect_ratio::tests::test_gcd ... ok [INFO] [stdout] test aspect_ratio::tests::test_is_widescreen_16_9 ... ok [INFO] [stdout] test aspect_ratio::tests::test_is_widescreen_1_1 ... ok [INFO] [stdout] test aspect_ratio::tests::test_is_widescreen_4_3 ... ok [INFO] [stdout] test aspect_ratio::tests::test_aspect_ratio_to_float ... ok [INFO] [stdout] test aspect_ratio::tests::test_aspect_ratio_9_16_not_widescreen ... ok [INFO] [stdout] test aspect_ratio::tests::test_aspect_ratio_converter_stretch ... ok [INFO] [stdout] test aspect_ratio::tests::test_letterbox_apply_size ... ok [INFO] [stdout] test aspect_ratio::tests::test_scale_mode_fit_wider_source ... ok [INFO] [stdout] test aspect_ratio::tests::test_pillarbox_apply_size ... ok [INFO] [stdout] test aspect_ratio::tests::test_scale_mode_stretch ... ok [INFO] [stdout] test batch_scale::tests::test_batch_config_builder ... ok [INFO] [stdout] test batch_scale::tests::test_batch_config_min_parallel ... ok [INFO] [stdout] test batch_scale::tests::test_batch_item_failure ... ok [INFO] [stdout] test batch_scale::tests::test_batch_item_lifecycle ... ok [INFO] [stdout] test batch_scale::tests::test_batch_summary ... ok [INFO] [stdout] test batch_scale::tests::test_batch_job_process_with_failure ... ok [INFO] [stdout] test batch_scale::tests::test_batch_job_process_all_success ... ok [INFO] [stdout] test batch_scale::tests::test_error_policy_display ... ok [INFO] [stdout] test batch_scale::tests::test_batch_summary_display ... ok [INFO] [stdout] test batch_scale::tests::test_item_status_display ... ok [INFO] [stdout] test batch_scale::tests::test_progress_percent ... ok [INFO] [stdout] test batch_scale::tests::test_progress_empty ... ok [INFO] [stdout] test batch_scale::tests::test_progress_tracker ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_resize_channels_independent ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_resize_downscale_2x ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_resize_single_pixel ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_resize_returns_correct_size ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_resize_same_size ... ok [INFO] [stdout] test bicubic::tests::test_cubic_weight_at_two ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_resize_uniform_image ... ok [INFO] [stdout] test bicubic::tests::test_cubic_weight_at_zero ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_sample_exact_pixel ... ok [INFO] [stdout] test bicubic::tests::test_cubic_weight_continuous_at_one ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_411_quarter_width ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_resize_zero_dimension_returns_empty ... ok [INFO] [stdout] test bicubic::tests::test_cubic_weight_symmetric ... ok [INFO] [stdout] test bicubic::tests::test_bicubic_sample_clamped_oob ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_444_no_subsampling ... ok [INFO] [stdout] test chroma_scale::tests::test_align_to_subsampling ... ok [INFO] [stdout] test batch_scale::tests::test_batch_summary_all_success ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_height_420 ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_height_422_full ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_location_offsets ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_odd_dimension_rounds_up ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_ratio_420 ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_width_422 ... ok [INFO] [stdout] test chroma_scale::tests::test_scaled_dims_420_aligned ... ok [INFO] [stdout] test chroma_scale::tests::test_scaled_dims_420_needs_alignment ... ok [INFO] [stdout] test chroma_scale::tests::test_scaled_dims_444_no_alignment ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_ratio_422 ... ok [INFO] [stdout] test chroma_scale::tests::test_subsampling_display ... ok [INFO] [stdout] test chroma_scale::tests::test_total_samples_420 ... ok [INFO] [stdout] test chroma_scale::tests::test_chroma_width_420 ... ok [INFO] [stdout] test chroma_scale::tests::test_total_samples_444 ... ok [INFO] [stdout] test content_aware_scale::tests::test_compute_gradient_energy ... ok [INFO] [stdout] test content_aware_scale::tests::test_config_builder ... ok [INFO] [stdout] test content_aware_scale::tests::test_content_aware_scaler_seam_counts ... ok [INFO] [stdout] test content_aware_scale::tests::test_energy_map_from_data ... ok [INFO] [stdout] test content_aware_scale::tests::test_energy_map_set_get ... ok [INFO] [stdout] test content_aware_scale::tests::test_energy_function_display ... ok [INFO] [stdout] test content_aware_scale::tests::test_energy_map_new ... ok [INFO] [stdout] test content_aware_scale::tests::test_find_vertical_seam ... ok [INFO] [stdout] test content_aware_scale::tests::test_energy_map_out_of_bounds ... ok [INFO] [stdout] test content_aware_scale::tests::test_forward_energy_cumulative_basic ... ok [INFO] [stdout] test content_aware_scale::tests::test_energy_map_from_data_invalid ... ok [INFO] [stdout] test content_aware_scale::tests::test_forward_energy_seam_has_valid_connectivity ... ok [INFO] [stdout] test content_aware_scale::tests::test_remove_vertical_seam_rgb ... ok [INFO] [stdout] test content_aware_scale::tests::test_scale_rgb_forward_energy_reduces_height ... ok [INFO] [stdout] test content_aware_scale::tests::test_forward_energy_seam_finds_low_cost_path ... ok [INFO] [stdout] test content_aware_scale::tests::test_scale_rgb_forward_energy_reduces_width ... ok [INFO] [stdout] test content_aware_scale::tests::test_forward_vs_backward_energy_different_seams ... ok [INFO] [stdout] test content_aware_scale::tests::test_rgb_to_luma_basic ... ok [INFO] [stdout] test content_aware_scale::tests::test_scale_rgb_invalid_input ... ok [INFO] [stdout] test content_aware_scale::tests::test_scale_rgb_no_change_when_target_larger ... ok [INFO] [stdout] test content_aware_scale::tests::test_scale_rgb_reduces_height ... ok [INFO] [stdout] test content_aware_scale::tests::test_scale_rgb_forward_energy_both_axes ... ok [INFO] [stdout] test content_aware_scale::tests::test_scale_rgb_reduces_width ... ok [INFO] [stdout] test content_aware_scale::tests::test_seam_direction_display ... ok [INFO] [stdout] test content_aware_scale::tests::test_seam_empty ... ok [INFO] [stdout] test crop::tests::test_apply_to_dimensions_out_of_bounds ... ok [INFO] [stdout] test crop::tests::test_apply_to_dimensions_valid ... ok [INFO] [stdout] test crop::tests::test_centered_crop ... ok [INFO] [stdout] test crop::tests::test_compute_saliency_uniform ... ok [INFO] [stdout] test crop::tests::test_crop_rect_area ... ok [INFO] [stdout] test crop::tests::test_centered_crop_too_large ... ok [INFO] [stdout] test crop::tests::test_crop_rect_dimensions ... ok [INFO] [stdout] test crop::tests::test_crop_rect_is_valid_true ... ok [INFO] [stdout] test crop::tests::test_crop_rect_is_valid_zero_height ... ok [INFO] [stdout] test content_aware_scale::tests::test_seam_new ... ok [INFO] [stdout] test crop::tests::test_fits_in_false ... ok [INFO] [stdout] test content_aware_scale::tests::test_energy_map_statistics ... ok [INFO] [stdout] test crop::tests::test_crop_rect_is_valid_zero_width ... ok [INFO] [stdout] test content_aware_scale::tests::test_transpose_rgb_roundtrip ... ok [INFO] [stdout] test crop::tests::test_crop_mode_preserves_aspect_ratio ... ok [INFO] [stdout] test content_aware_scale::tests::test_forward_energy_edge_preservation ... ok [INFO] [stdout] test crop::tests::test_fits_in_true ... ok [INFO] [stdout] test crop::tests::test_smart_crop_exact_size ... ok [INFO] [stdout] test crop::tests::test_smart_crop_clamps_to_source ... ok [INFO] [stdout] test crop_scale::tests::test_center_crop_16_9_to_9_16 ... ok [INFO] [stdout] test crop_scale::tests::test_center_crop_same_aspect ... ok [INFO] [stdout] test crop_scale::tests::test_crop_rect_area ... ok [INFO] [stdout] test crop_scale::tests::test_crop_rect_fits ... ok [INFO] [stdout] test crop_scale::tests::test_crop_rect_right_bottom ... ok [INFO] [stdout] test crop_scale::tests::test_crop_rect_zero_height ... ok [INFO] [stdout] test crop_scale::tests::test_crop_scale_nearest_downscale ... ok [INFO] [stdout] test crop_scale::tests::test_crop_scale_nearest_identity ... ok [INFO] [stdout] test crop_scale::tests::test_crop_strategy_display ... ok [INFO] [stdout] test crop_scale::tests::test_manual_crop ... ok [INFO] [stdout] test crop_scale::tests::test_params_builder ... ok [INFO] [stdout] test crop_scale::tests::test_rule_of_thirds_crop ... ok [INFO] [stdout] test deinterlace::tests::test_config_is_temporal_false ... ok [INFO] [stdout] test deinterlace::tests::test_config_is_temporal_true ... ok [INFO] [stdout] test deinterlace::tests::test_field_order_variants ... ok [INFO] [stdout] test crop::tests::test_smart_crop_prefers_high_saliency_region ... ok [INFO] [stdout] test crop_scale::tests::test_crop_rect_aspect_ratio ... ok [INFO] [stdout] test crop_scale::tests::test_scale_factors ... ok [INFO] [stdout] test crop_scale::tests::test_crop_rect_clamp ... ok [INFO] [stdout] test deinterlace::tests::test_frame_rate_multiplier_blend ... ok [INFO] [stdout] test deinterlace::tests::test_frame_rate_multiplier_bob ... ok [INFO] [stdout] test deinterlace::tests::test_frame_rate_multiplier_field_drop ... ok [INFO] [stdout] test deinterlace::tests::test_frame_rate_multiplier_yadif ... ok [INFO] [stdout] test deinterlace::tests::test_output_fps_blend ... ok [INFO] [stdout] test deinterlace::tests::test_not_progressive_passthrough ... ok [INFO] [stdout] test deinterlace::tests::test_process_field_blend ... ok [INFO] [stdout] test deinterlace::tests::test_process_field_field_drop ... ok [INFO] [stdout] test deinterlace::tests::test_process_field_progressive_passthrough ... ok [INFO] [stdout] test deinterlace::tests::test_progressive_passthrough ... ok [INFO] [stdout] test deinterlace::tests::test_output_fps_bob ... ok [INFO] [stdout] test ewa_resample::tests::catrom_mitchell_at_zero_is_one ... ok [INFO] [stdout] test ewa_resample::tests::ewa_filter_catrom_same_as_mitchell_0_half ... ok [INFO] [stdout] test ewa_resample::tests::ewa_filter_gaussian_support_radius ... ok [INFO] [stdout] test ewa_resample::tests::ewa_filter_lanczos_support_radius ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_2x_downscale_monotone_ramp ... ok [INFO] [stdout] test ewa_resample::tests::ewa_filter_mitchell_evaluate_at_zero ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_identity_size ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_lanczos_upscale_preserves_range ... ok [INFO] [stdout] test crop::tests::test_smart_crop_uniform_image_returns_valid_rect ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_single_pixel_src ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_uniform_image_stays_uniform ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_2x_upscale_size ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_clamp_negatives_flag ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_empty_returns_empty ... ok [INFO] [stdout] test ewa_resample::tests::lanczos_kernel_at_zero_is_one ... ok [INFO] [stdout] test ewa_resample::tests::mitchell_filter_at_zero_is_one_for_standard_b_c ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_2x_downscale_size ... ok [INFO] [stdout] test ewa_resample::tests::lanczos_kernel_zero_outside_support ... ok [INFO] [stdout] test ewa_resample::tests::mitchell_filter_continuous_at_knot_one ... ok [INFO] [stdout] test ewa_resample::tests::mitchell_filter_symmetry ... ok [INFO] [stdout] test ewa_resample::tests::lanczos_kernel_at_boundary_is_zero ... ok [INFO] [stdout] test ewa_resample::tests::ewa_resample_gaussian_smooth ... ok [INFO] [stdout] test ewa_resample::tests::sinc_at_zero_is_one ... ok [INFO] [stdout] test ewa_resample::tests::sinc_is_symmetric ... ok [INFO] [stdout] test ewa_resample::tests::mitchell_filter_zero_outside_support ... ok [INFO] [stdout] test ewa_resample::tests::sinc_at_integers_is_zero ... ok [INFO] [stdout] test ewa_resample::tests::sinc_near_zero_smooth ... ok [INFO] [stdout] test ewa_resample::tests::sinc_value_at_half ... ok [INFO] [stdout] test field_scale::tests::test_config_builder ... ok [INFO] [stdout] test field_scale::tests::test_config_is_interlaced ... ok [INFO] [stdout] test field_scale::tests::test_field_height ... ok [INFO] [stdout] test field_scale::tests::test_field_order_display ... ok [INFO] [stdout] test field_scale::tests::test_field_scale_interlaced_roundtrip_size ... ok [INFO] [stdout] test field_scale::tests::test_field_scale_progressive ... ok [INFO] [stdout] test field_scale::tests::test_interleave_fields ... ok [INFO] [stdout] test field_scale::tests::test_field_scale_upscale_interlaced ... ok [INFO] [stdout] test field_scale::tests::test_roundtrip_separate_interleave ... ok [INFO] [stdout] test field_scale::tests::test_scale_field_downscale ... ok [INFO] [stdout] test field_scale::tests::test_scale_field_identity ... ok [INFO] [stdout] test field_scale::tests::test_scale_field_upscale ... ok [INFO] [stdout] test field_scale::tests::test_separate_fields ... ok [INFO] [stdout] test half_pixel::tests::bilinear_interp_exact_pixel ... ok [INFO] [stdout] test half_pixel::tests::bilinear_interp_clamped_oob ... ok [INFO] [stdout] test half_pixel::tests::bilinear_interp_midpoint ... ok [INFO] [stdout] test half_pixel::tests::bilinear_interp_zero_dimensions ... ok [INFO] [stdout] test half_pixel::tests::center_mode_2x_upscale ... ok [INFO] [stdout] test half_pixel::tests::cubic_interp_at_integer_pixel ... ok [INFO] [stdout] test half_pixel::tests::cubic_interp_uniform_image ... ok [INFO] [stdout] test half_pixel::tests::edge_mode_last_pixel_is_src_last ... ok [INFO] [stdout] test half_pixel::tests::edge_vs_center_differ_at_nonzero_pixel ... ok [INFO] [stdout] test half_pixel::tests::legacy_mode_zero_maps_to_zero ... ok [INFO] [stdout] test half_pixel::tests::scale_kernel_center_vs_legacy_differ ... ok [INFO] [stdout] test half_pixel::tests::edge_mode_first_pixel_is_zero ... ok [INFO] [stdout] test half_pixel::tests::scale_kernel_downscale_output_size ... ok [INFO] [stdout] test half_pixel::tests::scale_kernel_edge_mode_endpoints ... ok [INFO] [stdout] test half_pixel::tests::scale_kernel_output_size_bilinear_center ... ok [INFO] [stdout] test half_pixel::tests::scale_kernel_output_size_cubic_edge ... ok [INFO] [stdout] test half_pixel::tests::scale_kernel_uniform_image_stays_uniform ... ok [INFO] [stdout] test lanczos::tests::test_configurable_lanczos_all_sizes_produce_output ... ok [INFO] [stdout] test half_pixel::tests::scale_kernel_empty_returns_empty ... ok [INFO] [stdout] test lanczos::tests::test_from_window_size ... ok [INFO] [stdout] test half_pixel::tests::center_mode_first_pixel_near_zero ... ok [INFO] [stdout] test lanczos::tests::test_kernel_new ... ok [INFO] [stdout] test lanczos::tests::test_kernel_default_a ... ok [INFO] [stdout] test lanczos::tests::test_kernel_support_varies_with_window_size ... ok [INFO] [stdout] test lanczos::tests::test_kernel_symmetry ... ok [INFO] [stdout] test lanczos::tests::test_kernel_value_outside_support ... ok [INFO] [stdout] test lanczos::tests::test_resample_1d_downsample ... ok [INFO] [stdout] test lanczos::tests::test_kernel_value_at_boundary ... ok [INFO] [stdout] test lanczos::tests::test_resample_1d_empty_src ... ok [INFO] [stdout] test lanczos::tests::test_larger_window_gives_sharper_result ... ok [INFO] [stdout] test half_pixel::tests::center_vs_legacy_differ_at_nonzero_pixel ... ok [INFO] [stdout] test lanczos::tests::test_resample_1d_identity ... ok [INFO] [stdout] test lanczos::tests::test_kernel_value_at_zero ... ok [INFO] [stdout] test lanczos::tests::test_resample_1d_upsample ... ok [INFO] [stdout] test lanczos::tests::test_resampler_new ... ok [INFO] [stdout] test lanczos::tests::test_scale_image_empty ... ok [INFO] [stdout] test lanczos::tests::test_scale_image_size ... ok [INFO] [stdout] test lanczos::tests::test_scale_image_values_in_range ... ok [INFO] [stdout] test lanczos::tests::test_resampler_with_kernel ... ok [INFO] [stdout] test lanczos::tests::test_resample_1d_with_different_windows ... ok [INFO] [stdout] test lanczos::tests::test_window_size_a_values ... ok [INFO] [stdout] test lanczos::tests::test_resample_1d_zero_dst ... ok [INFO] [stdout] test lanczos::tests::test_window_size_display ... ok [INFO] [stdout] test nearest_neighbor::tests::test_config_new ... ok [INFO] [stdout] test lanczos::tests::test_window_size_descriptions ... ok [INFO] [stdout] test nearest_neighbor::tests::test_effective_dimensions_integer_3x ... ok [INFO] [stdout] test nearest_neighbor::tests::test_effective_dimensions_integer_snap_to_1x ... ok [INFO] [stdout] test nearest_neighbor::tests::test_config_display ... ok [INFO] [stdout] test nearest_neighbor::tests::test_identity_scale ... ok [INFO] [stdout] test lanczos::tests::test_window_size_all ... ok [INFO] [stdout] test nearest_neighbor::tests::test_config_pixel_art ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_gray_downscale ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_gray_invalid ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_integer_1x ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_integer_2x ... ok [INFO] [stdout] test nearest_neighbor::tests::test_effective_dimensions_arbitrary ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_integer_0x ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_gray_2x ... ok [INFO] [stdout] test nearest_neighbor::tests::test_pixel_art_mode_preserves_exact_pixels ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_integer_rgb_2x ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_integer_rgb_invalid ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_integer_zero_dims ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_rgb_invalid_buffer ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_rgb_upscale ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_rgba ... ok [INFO] [stdout] test nearest_neighbor::tests::test_scale_rgba_invalid ... ok [INFO] [stdout] test nearest_neighbor::tests::test_with_integer_only_builder ... ok [INFO] [stdout] test pad::tests::test_letterbox_exact_fit ... ok [INFO] [stdout] test pad::tests::test_letterbox_too_large ... ok [INFO] [stdout] test nearest_neighbor::tests::test_effective_dimensions_integer_2x ... ok [INFO] [stdout] test pad::tests::test_letterbox_valid ... ok [INFO] [stdout] test pad::tests::test_output_dimensions ... ok [INFO] [stdout] test pad::tests::test_pad_color_white ... ok [INFO] [stdout] test pad::tests::test_pad_mode_variants_exist ... ok [INFO] [stdout] test pad::tests::test_symmetric_padding ... ok [INFO] [stdout] test pad::tests::test_pad_color_black ... ok [INFO] [stdout] test pad::tests::test_total_vertical ... ok [INFO] [stdout] test pad::tests::test_total_horizontal ... ok [INFO] [stdout] test pad::tests::test_uniform_padding ... ok [INFO] [stdout] test pad::tests::test_with_color ... ok [INFO] [stdout] test pad_scale::tests::test_active_size_letterbox ... ok [INFO] [stdout] test pad_scale::tests::test_active_size_pillarbox ... ok [INFO] [stdout] test pad_scale::tests::test_active_size_same_aspect ... ok [INFO] [stdout] test nearest_neighbor::tests::test_effective_dimensions_zero_source ... ok [INFO] [stdout] test pad_scale::tests::test_active_size_with_margin ... ok [INFO] [stdout] test pad_scale::tests::test_compose_padded_center_pixel ... ok [INFO] [stdout] test pad_scale::tests::test_compose_padded_output_size ... ok [INFO] [stdout] test pad_scale::tests::test_config_builder ... ok [INFO] [stdout] test pad_scale::tests::test_fill_pad_frame ... ok [INFO] [stdout] test pad_scale::tests::test_pad_amounts_display ... ok [INFO] [stdout] test pad_scale::tests::test_pad_color_roundtrip_u32 ... ok [INFO] [stdout] test pad_scale::tests::test_pad_color_transparent ... ok [INFO] [stdout] test pad_scale::tests::test_pad_color_black ... ok [INFO] [stdout] test pad_scale::tests::test_padding_center_aligned ... ok [INFO] [stdout] test pad_scale::tests::test_padding_left_aligned ... ok [INFO] [stdout] test pad_scale::tests::test_pad_amounts_zero ... ok [INFO] [stdout] test pad_scale::tests::test_zero_source_size ... ok [INFO] [stdout] test perceptual_sharpening::tests::adaptive_output_finite ... ok [INFO] [stdout] test perceptual_sharpening::tests::cas_output_finite ... ok [INFO] [stdout] test perceptual_sharpening::tests::adaptive_sharpens_smooth_region ... ok [INFO] [stdout] test perceptual_sharpening::tests::cas_sharpness_clamped_to_unit ... ok [INFO] [stdout] test perceptual_sharpening::tests::adaptive_uniform_unchanged ... ok [INFO] [stdout] test perceptual_sharpening::tests::cas_returns_same_size ... ok [INFO] [stdout] test perceptual_sharpening::tests::cas_uniform_image_nearly_unchanged ... ok [INFO] [stdout] test perceptual_sharpening::tests::cas_empty_returns_empty ... ok [INFO] [stdout] test perceptual_sharpening::tests::gaussian_blur_1d_empty ... ok [INFO] [stdout] test perceptual_sharpening::tests::gaussian_blur_1d_reduces_peak ... ok [INFO] [stdout] test perceptual_sharpening::tests::gaussian_blur_1d_zero_width ... ok [INFO] [stdout] test perceptual_sharpening::tests::gaussian_blur_1d_uniform_image_unchanged ... ok [INFO] [stdout] test perceptual_sharpening::tests::local_laplacian_border_clamping ... ok [INFO] [stdout] test perceptual_sharpening::tests::sharpen_dispatch_cas ... ok [INFO] [stdout] test perceptual_sharpening::tests::sharpen_dispatch_high_freq_boost ... ok [INFO] [stdout] test perceptual_sharpening::tests::local_laplacian_spike_positive ... ok [INFO] [stdout] test perceptual_sharpening::tests::sharpen_high_freq_boost_increases_contrast ... ok [INFO] [stdout] test perceptual_sharpening::tests::sharpen_dispatch_adaptive ... ok [INFO] [stdout] test perceptual_sharpening::tests::unsharp_mask_empty_returns_empty ... ok [INFO] [stdout] test perceptual_sharpening::tests::sharpen_dispatch_unsharp ... ok [INFO] [stdout] test perceptual_sharpening::tests::unsharp_mask_threshold_suppresses_noise ... ok [INFO] [stdout] test perceptual_sharpening::tests::local_laplacian_uniform_image_zero ... ok [INFO] [stdout] test quality_metric::tests::test_mae_empty ... ok [INFO] [stdout] test quality_metric::tests::test_mae_identical ... ok [INFO] [stdout] test quality_metric::tests::test_mse_different ... ok [INFO] [stdout] test quality_metric::tests::test_mse_empty ... ok [INFO] [stdout] test perceptual_sharpening::tests::unsharp_mask_sharpens_edge ... ok [INFO] [stdout] test quality_metric::tests::test_max_error ... ok [INFO] [stdout] test quality_metric::tests::test_mse_identical ... ok [INFO] [stdout] test perceptual_sharpening::tests::unsharp_mask_uniform_unchanged ... ok [INFO] [stdout] test quality_metric::tests::test_full_report_length ... ok [INFO] [stdout] test quality_metric::tests::test_mae_known_value ... ok [INFO] [stdout] test quality_metric::tests::test_passes_quality_gate_false ... ok [INFO] [stdout] test quality_metric::tests::test_sharpness_edge ... ok [INFO] [stdout] test quality_metric::tests::test_passes_quality_gate_true ... ok [INFO] [stdout] test quality_metric::tests::test_psnr_different ... ok [INFO] [stdout] test quality_metric::tests::test_quality_score_display ... ok [INFO] [stdout] test quality_metric::tests::test_sharpness_too_small ... ok [INFO] [stdout] test quality_metric::tests::test_sharpness_flat ... ok [INFO] [stdout] test quality_metrics::tests::test_empty_buffers ... ok [INFO] [stdout] test quality_metrics::tests::test_full_report_has_all_metrics ... ok [INFO] [stdout] test quality_metrics::tests::test_mae_known_value ... ok [INFO] [stdout] test quality_metrics::tests::test_mae_identical ... ok [INFO] [stdout] test quality_metrics::tests::test_metric_kind_display ... ok [INFO] [stdout] test quality_metrics::tests::test_histogram_uniform ... ok [INFO] [stdout] test quality_metric::tests::test_psnr_identical ... ok [INFO] [stdout] test quality_metrics::tests::test_histogram_correlation_identical ... ok [INFO] [stdout] test quality_metrics::tests::test_mse_identical ... ok [INFO] [stdout] test quality_metrics::tests::test_psnr_identical ... ok [INFO] [stdout] test quality_metrics::tests::test_quality_score_display ... ok [INFO] [stdout] test quality_metrics::tests::test_psnr_not_identical ... ok [INFO] [stdout] test quality_metrics::tests::test_quality_score_is_good ... ok [INFO] [stdout] test quality_metrics::tests::test_report_summary ... ok [INFO] [stdout] test quality_metrics::tests::test_ssim_different ... ok [INFO] [stdout] test quality_metrics::tests::test_ssim_identical ... ok [INFO] [stdout] test quality_metrics::tests::test_report_all_good ... ok [INFO] [stdout] test quality_metrics::tests::test_mse_known_value ... ok [INFO] [stdout] test resampler::tests::test_filter_evaluate_bilinear_edge ... ok [INFO] [stdout] test resampler::tests::test_filter_evaluate_bilinear_center ... ok [INFO] [stdout] test resampler::tests::test_filter_support_lanczos3 ... ok [INFO] [stdout] test resampler::tests::test_filter_evaluate_lanczos3_center ... ok [INFO] [stdout] test resampler::tests::test_filter_evaluate_lanczos3_outside ... ok [INFO] [stdout] test resampler::tests::test_lanczos5_support ... ok [INFO] [stdout] test resampler::tests::test_nearest_filter ... ok [INFO] [stdout] test resampler::tests::test_filter_support_nearest ... ok [INFO] [stdout] test resampler::tests::test_mitchell_netravali_center ... ok [INFO] [stdout] test resampler::tests::test_resize_empty_returns_empty ... ok [INFO] [stdout] test resampler::tests::test_resize_downscale_2x ... ok [INFO] [stdout] test resampler::tests::test_resize_horizontal_identity ... ok [INFO] [stdout] test resampler::tests::test_filter_support_bilinear ... ok [INFO] [stdout] test resampler::tests::test_resize_same_size ... ok [INFO] [stdout] test resampler::tests::test_resize_vertical_identity ... ok [INFO] [stdout] test resampler::tests::test_sinc_at_zero ... ok [INFO] [stdout] test resolution_ladder::tests::test_abr_ladder_av1 ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_animation_content ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_output_dimensions_even ... ok [INFO] [stdout] test resampler::tests::test_resize_upscale_2x ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_low_bitrate_reduces_resolution ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_psnr_increases_with_bitrate ... ok [INFO] [stdout] test resampler::tests::test_spline16_center ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_empty_bitrates ... ok [INFO] [stdout] test resolution_ladder::tests::test_abr_ladder_h264 ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_vmaf_increases_with_bitrate ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_zero_dimensions ... ok [INFO] [stdout] test resolution_ladder::tests::test_content_difficulty_clamped ... ok [INFO] [stdout] test resolution_ladder::tests::test_content_difficulty_max_is_one ... ok [INFO] [stdout] test resolution_ladder::tests::test_content_difficulty_motion_dominant ... ok [INFO] [stdout] test resolution_ladder::tests::test_content_difficulty_zero_is_zero ... ok [INFO] [stdout] test resolution_ladder::tests::test_ladder_add_sorted ... ok [INFO] [stdout] test resolution_ladder::tests::test_normalize_to_mod_exact ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_returns_rungs_for_1080p ... ok [INFO] [stdout] test resolution_ladder::tests::test_normalize_to_mod_rounding ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_sports_content ... ok [INFO] [stdout] test resolution_ladder::tests::test_ladder_above ... ok [INFO] [stdout] test resolution_ladder::tests::test_compute_optimal_ladder_vmaf_at_least_50 ... ok [INFO] [stdout] test resolution_ladder::tests::test_ladder_nearest ... ok [INFO] [stdout] test resolution_ladder::tests::test_ladder_below ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_custom_heights ... ok [INFO] [stdout] test resolution_ladder::tests::test_normalize_to_mod_zero_modulus ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_empty_bitrates ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_basic ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_filtered ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_high_complexity_needs_more_bits ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_higher_bitrate_better_quality ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_vif_ssim_in_range ... ok [INFO] [stdout] test resolution_ladder::tests::test_perceptual_ladder_sorts_bitrates ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_zero_dimensions ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_even_dimensions ... ok [INFO] [stdout] test resolution_ladder::tests::test_quality_target_archival ... ok [INFO] [stdout] test resolution_ladder::tests::test_quality_target_default ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_ladder_respects_source_resolution ... ok [INFO] [stdout] test resolution_ladder::tests::test_perceptual_ladder_struct_compute ... ok [INFO] [stdout] test resolution_ladder::tests::test_per_title_rung_bits_per_pixel_positive ... ok [INFO] [stdout] test resolution_ladder::tests::test_quality_target_mobile ... ok [INFO] [stdout] test resolution_ladder::tests::test_resolution_aspect_ratio ... ok [INFO] [stdout] test resolution_ladder::tests::test_quality_target_premium ... ok [INFO] [stdout] test resolution_ladder::tests::test_resolution_ordering ... ok [INFO] [stdout] test resolution_ladder::tests::test_resolution_megapixels ... ok [INFO] [stdout] test resolution_ladder::tests::test_resolution_pixels ... ok [INFO] [stdout] test resolution_ladder::tests::test_rung_selector_best_quality_is_highest_vmaf ... ok [INFO] [stdout] test resolution_ladder::tests::test_rung_selector_none_below_min_bitrate ... ok [INFO] [stdout] test roi_scale::tests::test_config_scale_factors ... ok [INFO] [stdout] test roi_scale::tests::test_interpolate_roi_start ... ok [INFO] [stdout] test roi_scale::tests::test_interpolate_roi_end ... ok [INFO] [stdout] test resolution_ladder::tests::test_rung_selector_select_within_bandwidth ... ok [INFO] [stdout] test roi_scale::tests::test_roi_aspect_ratio ... ok [INFO] [stdout] test roi_scale::tests::test_roi_center ... ok [INFO] [stdout] test roi_scale::tests::test_interpolate_roi_mid ... ok [INFO] [stdout] test roi_scale::tests::test_roi_display ... ok [INFO] [stdout] test roi_scale::tests::test_roi_fits_in ... ok [INFO] [stdout] test roi_scale::tests::test_roi_clamp_to ... ok [INFO] [stdout] test roi_scale::tests::test_roi_rect_creation ... ok [INFO] [stdout] test roi_scale::tests::test_roi_right_bottom ... ok [INFO] [stdout] test roi_scale::tests::test_roi_scale_combined ... ok [INFO] [stdout] test roi_scale::tests::test_extract_roi ... ok [INFO] [stdout] test roi_scale::tests::test_roi_area ... ok [INFO] [stdout] test roi_scale::tests::test_scale_identity ... ok [INFO] [stdout] test scale_config::tests::test_default_config_is_valid ... ok [INFO] [stdout] test scale_config::tests::test_aspect_ratio ... ok [INFO] [stdout] test scale_config::tests::test_invalid_bicubic_b ... ok [INFO] [stdout] test scale_config::tests::test_builder_parallel_false ... ok [INFO] [stdout] test scale_config::tests::test_config_error_display ... ok [INFO] [stdout] test scale_config::tests::test_hd_1080p_preset ... ok [INFO] [stdout] test scale_config::tests::test_algorithm_display ... ok [INFO] [stdout] test scale_config::tests::test_invalid_lanczos_lobes ... ok [INFO] [stdout] test scale_config::tests::test_multiple_errors_accumulate ... ok [INFO] [stdout] test scale_config::tests::test_pixel_count ... ok [INFO] [stdout] test scale_config::tests::test_zero_height_rejected ... ok [INFO] [stdout] test scale_config::tests::test_invalid_sharpen_amount ... ok [INFO] [stdout] test scale_config::tests::test_valid_lanczos_lobes_boundary ... ok [INFO] [stdout] test scale_config::tests::test_zero_width_rejected ... ok [INFO] [stdout] test scale_config::tests::test_thumbnail_preset ... ok [INFO] [stdout] test scale_config::tests::test_uhd_4k_preset ... ok [INFO] [stdout] test scale_config::tests::test_sharpen_max_boundary_is_valid ... ok [INFO] [stdout] test scale_filter::tests::test_apply_horizontal_output_dimensions ... ok [INFO] [stdout] test scale_filter::tests::test_bilinear_identity_scale ... ok [INFO] [stdout] test scale_filter::tests::test_apply_vertical_flat_image ... ok [INFO] [stdout] test scale_filter::tests::test_box_filter_downscale_even ... ok [INFO] [stdout] test scale_filter::tests::test_box_filter_upscale_falls_back_to_nn ... ok [INFO] [stdout] test scale_filter::tests::test_filter_tap_new ... ok [INFO] [stdout] test scale_filter::tests::test_kernel_apply_clamps_negative_index ... ok [INFO] [stdout] test scale_filter::tests::test_bilinear_output_size ... ok [INFO] [stdout] test scale_filter::tests::test_apply_horizontal_flat_image ... ok [INFO] [stdout] test scale_filter::tests::test_kernel_apply_identity ... ok [INFO] [stdout] test scale_filter::tests::test_kernel_apply_clamps_out_of_bounds ... ok [INFO] [stdout] test scale_filter::tests::test_apply_vertical_output_dimensions ... ok [INFO] [stdout] test scale_filter::tests::test_kernel_weight_sum_normalised ... ok [INFO] [stdout] test scale_filter::tests::test_nearest_neighbour_output_size ... ok [INFO] [stdout] test scale_filter::tests::test_nearest_neighbour_single_tap_per_output ... ok [INFO] [stdout] test scale_pipeline::tests::test_crop_then_scale ... ok [INFO] [stdout] test scale_pipeline::tests::test_invalid_sharpen_strength ... ok [INFO] [stdout] test scale_pipeline::tests::test_multiple_errors_accumulate ... ok [INFO] [stdout] test scale_pipeline::tests::test_pad_stage ... ok [INFO] [stdout] test scale_pipeline::tests::test_pipeline_stage_display ... ok [INFO] [stdout] test scale_pipeline::tests::test_pipeline_error_display ... ok [INFO] [stdout] test scale_pipeline::tests::test_source_dims ... ok [INFO] [stdout] test scale_pipeline::tests::test_simple_scale_output_dims ... ok [INFO] [stdout] test scale_pipeline::tests::test_empty_pipeline_invalid ... ok [INFO] [stdout] test scale_pipeline::tests::test_crop_exceeds_source ... ok [INFO] [stdout] test scale_pipeline::tests::test_zero_crop_dims ... ok [INFO] [stdout] test scale_pipeline::tests::test_simple_scale_is_valid ... ok [INFO] [stdout] test scale_pipeline::tests::test_stages_accessor ... ok [INFO] [stdout] test seam_carve::tests::error_insufficient_buffer ... ok [INFO] [stdout] test seam_carve::tests::config_builder ... ok [INFO] [stdout] test seam_carve::tests::error_invalid_dimensions_zero_src ... ok [INFO] [stdout] test seam_carve::tests::error_invalid_dimensions_zero_target ... ok [INFO] [stdout] test scale_pipeline::tests::test_valid_sharpen_strength ... ok [INFO] [stdout] test scale_pipeline::tests::test_summary_string ... ok [INFO] [stdout] test scale_pipeline::tests::test_stage_count ... ok [INFO] [stdout] test scale_pipeline::tests::test_zero_target_width ... ok [INFO] [stdout] test seam_carve::tests::error_target_exceeds_source_height ... ok [INFO] [stdout] test seam_carve::tests::error_target_exceeds_source_width ... ok [INFO] [stdout] test seam_carve::tests::gradient_energy_on_solid_image_removes_any_seam ... ok [INFO] [stdout] test seam_carve::tests::identity_no_seams_removed ... ok [INFO] [stdout] test seam_carve::tests::gradient_energy_flat_image_is_zero ... ok [INFO] [stdout] test seam_carve::tests::error_unsupported_channels ... ok [INFO] [stdout] test seam_carve::tests::protect_mask_prevents_column_removal ... ok [INFO] [stdout] test seam_carve::tests::find_vertical_seam_prefers_minimum_energy ... ok [INFO] [stdout] test seam_carve::tests::reduce_both_dimensions ... ok [INFO] [stdout] test seam_carve::tests::reduce_height_by_one_gray ... ok [INFO] [stdout] test seam_carve::tests::forward_energy_reduces_width ... ok [INFO] [stdout] test seam_carve::tests::forward_energy_flat_image_is_zero ... ok [INFO] [stdout] test seam_carve::tests::reduce_width_by_one_gray ... ok [INFO] [stdout] test seam_carve::tests::reduce_width_by_two_rgb ... ok [INFO] [stdout] test seam_carve::tests::remove_mask_prefers_masked_column ... ok [INFO] [stdout] test seam_carve::tests::reduce_width_rgba ... ok [INFO] [stdout] test seam_carve::tests::to_grayscale_rgb ... ok [INFO] [stdout] test seam_carve::tests::remove_vertical_seam_correct_size ... ok [INFO] [stdout] test sharpness_scale::tests::test_config_defaults ... ok [INFO] [stdout] test sharpness_scale::tests::test_box_blur_uniform ... ok [INFO] [stdout] test seam_carve::tests::to_grayscale_single_channel ... ok [INFO] [stdout] test sharpness_scale::tests::test_config_builder ... ok [INFO] [stdout] test seam_carve::tests::transpose_roundtrip ... ok [INFO] [stdout] test sharpness_scale::tests::test_adaptive_below_threshold ... ok [INFO] [stdout] test sharpness_scale::tests::test_config_strength_clamped ... ok [INFO] [stdout] test sharpness_scale::tests::test_sharpen_dispatch_adaptive ... ok [INFO] [stdout] test sharpness_scale::tests::test_sharpen_dispatch_laplacian ... ok [INFO] [stdout] test sharpness_scale::tests::test_laplacian_uniform ... ok [INFO] [stdout] test sharpness_scale::tests::test_is_upscale ... ok [INFO] [stdout] test sharpness_scale::tests::test_sharpness_metric_uniform ... ok [INFO] [stdout] test sharpness_scale::tests::test_sharpness_metric_edge ... ok [INFO] [stdout] test sharpness_scale::tests::test_sharpen_method_display ... ok [INFO] [stdout] test sharpness_scale::tests::test_sharpen_dispatch_usm ... ok [INFO] [stdout] test sharpness_scale::tests::test_unsharp_mask_zero_strength ... ok [INFO] [stdout] test simd_interp::tests::test_bilinear_resize_identity ... ok [INFO] [stdout] test simd_interp::tests::test_bilinear_resize_downscale ... ok [INFO] [stdout] test simd_interp::tests::test_bilinear_simd_matches_scalar ... ok [INFO] [stdout] test simd_interp::tests::test_bilinear_resize_zero_dim ... ok [INFO] [stdout] test simd_interp::tests::test_horizontal_convolve_box3 ... ok [INFO] [stdout] test simd_interp::tests::test_separable_filter_pass_empty ... ok [INFO] [stdout] test simd_interp::tests::test_separable_filter_pass_average2 ... ok [INFO] [stdout] test simd_interp::tests::test_separable_filter_pass_identity ... ok [INFO] [stdout] test simd_interp::tests::test_separable_filter_pass_scalar_matches_avx2 ... ok [INFO] [stdout] test simd_interp::tests::test_horizontal_convolve_identity ... ok [INFO] [stdout] test super_res::tests::test_upscale_bicubic_uniform_color_preserved ... ok [INFO] [stdout] test super_res::tests::test_upscale_bicubic_zero_dimensions_returns_empty ... ok [INFO] [stdout] test super_res::tests::test_scale_factor_4x ... ok [INFO] [stdout] test simd_interp::tests::test_horizontal_convolve_simd_matches_scalar ... ok [INFO] [stdout] test simd_interp::tests::test_bilinear_resize_upscale ... ok [INFO] [stdout] test simd_interp::tests::test_horizontal_convolve_empty ... ok [INFO] [stdout] test super_res::tests::test_upscale_bicubic_dimensions ... ok [INFO] [stdout] test super_res::tests::test_upscale_with_zero_strength_matches_bicubic ... ok [INFO] [stdout] test super_resolution::tests::test_bicubic_sharp_output_size_4x ... ok [INFO] [stdout] test super_resolution::tests::test_bicubic_sharp_output_size_2x ... ok [INFO] [stdout] test super_res::tests::test_upscale_with_sharpening_dimensions ... ok [INFO] [stdout] test super_resolution::tests::test_edge_preserving_upscale_empty ... ok [INFO] [stdout] test super_resolution::tests::test_dimension_mismatch_returns_error ... ok [INFO] [stdout] test super_resolution::tests::test_catmull_rom_at_zero ... ok [INFO] [stdout] test super_resolution::tests::test_bicubic_sharp_values_in_range ... ok [INFO] [stdout] test super_resolution::tests::test_edge_preserving_upscale_uniform ... ok [INFO] [stdout] test super_resolution::tests::test_bicubic_upscale_size ... ok [INFO] [stdout] test super_resolution::tests::test_edsr_output_size_2x ... ok [INFO] [stdout] test super_resolution::tests::test_edsr_preserves_edge_contrast ... ok [INFO] [stdout] test super_resolution::tests::test_edge_preserving_upscale_output_size ... ok [INFO] [stdout] test super_resolution::tests::test_frequency_upscaler_empty ... ok [INFO] [stdout] test super_resolution::tests::test_empty_input_returns_error ... ok [INFO] [stdout] test super_resolution::tests::test_frequency_upscaler_output_size ... ok [INFO] [stdout] test super_resolution::tests::test_lanczos3_weight_at_zero_is_one ... ok [INFO] [stdout] test super_resolution::tests::test_lanczos3_sharp_output_size_2x ... ok [INFO] [stdout] test super_resolution::tests::test_scale_factor_one_is_identity ... ok [INFO] [stdout] test super_resolution::tests::test_lanczos3_sharp_values_in_range ... ok [INFO] [stdout] test super_resolution::tests::test_sobel_edges_uniform_image ... ok [INFO] [stdout] test super_resolution::tests::test_lanczos3_weight_at_boundary_is_zero ... ok [INFO] [stdout] test super_resolution::tests::test_sr_quality_estimate_perfect ... ok [INFO] [stdout] test super_resolution::tests::test_sobel_edges_step_edge ... ok [INFO] [stdout] test super_resolution::tests::test_super_res_config_default ... ok [INFO] [stdout] test super_resolution::tests::test_uniform_input_produces_uniform_output_bicubic ... ok [INFO] [stdout] test super_resolution::tests::test_sr_config_default ... ok [INFO] [stdout] test super_resolution::tests::test_zero_scale_factor_returns_error ... ok [INFO] [stdout] test super_resolution::tests::test_uniform_input_produces_uniform_output_edsr ... ok [INFO] [stdout] test tests::test_calculate_dimensions_square_par_same_as_no_par ... ok [INFO] [stdout] test tests::test_calculate_dimensions_stretch ... ok [INFO] [stdout] test tests::test_calculate_dimensions_letterbox ... ok [INFO] [stdout] test tests::test_calculate_dimensions_ntsc_par_correction ... ok [INFO] [stdout] test tests::test_calculate_dimensions_with_par_override ... ok [INFO] [stdout] test tests::test_calculate_dimensions_stretch_ignores_par ... ok [INFO] [stdout] test tests::test_par_ntsc_4_3 ... ok [INFO] [stdout] test tests::test_calculate_dimensions_wide_par_correction ... ok [INFO] [stdout] test tests::test_par_square_default ... ok [INFO] [stdout] test tests::test_par_display ... ok [INFO] [stdout] test tests::test_par_pal_16_9 ... ok [INFO] [stdout] test tests::test_scaler_creation ... ok [INFO] [stdout] test tests::test_par_zero_den_clamped ... ok [INFO] [stdout] test tests::test_scaling_mode_nearest_neighbor ... ok [INFO] [stdout] test tests::test_scaling_params_creation ... ok [INFO] [stdout] test thumbnail::tests::test_fit_dimensions_landscape ... ok [INFO] [stdout] test thumbnail::tests::test_fit_dimensions_portrait ... ok [INFO] [stdout] test thumbnail::tests::test_fit_dimensions_zero_source ... ok [INFO] [stdout] test thumbnail::tests::test_fit_dimensions_square_source ... ok [INFO] [stdout] test thumbnail::tests::test_generate_thumbnail_empty_input ... ok [INFO] [stdout] test tests::test_scaling_mode_display ... ok [INFO] [stdout] test thumbnail::tests::test_generate_thumbnail_basic ... ok [INFO] [stdout] test thumbnail::tests::test_generate_thumbnail_correct_size ... ok [INFO] [stdout] test thumbnail::tests::test_fit_dimensions_no_upscale ... ok [INFO] [stdout] test tests::test_scaling_mode_with_builder ... ok [INFO] [stdout] test thumbnail::tests::test_result_aspect_ratio ... ok [INFO] [stdout] test thumbnail::tests::test_result_aspect_ratio_zero_height ... ok [INFO] [stdout] test thumbnail::tests::test_result_pixel_count ... ok [INFO] [stdout] test thumbnail::tests::test_spec_default ... ok [INFO] [stdout] test thumbnail::tests::test_spec_from_long_edge ... ok [INFO] [stdout] test tile::tests::test_grid_new ... ok [INFO] [stdout] test thumbnail::tests::test_spec_new ... ok [INFO] [stdout] test tile::tests::test_grid_tile_at ... ok [INFO] [stdout] test tile::tests::test_grid_tile_count ... ok [INFO] [stdout] test tile::tests::test_grid_tile_count_non_divisible ... ok [INFO] [stdout] test tile::tests::test_grid_tile_for_pixel_found ... ok [INFO] [stdout] test tile::tests::test_grid_tile_for_pixel_out_of_range ... ok [INFO] [stdout] test thumbnail::tests::test_generate_thumbnail_preserves_aspect ... ok [INFO] [stdout] test tile::tests::test_tile_area_large ... ok [INFO] [stdout] test tile::tests::test_tile_contains_inside ... ok [INFO] [stdout] test tile::tests::test_grid_zero_size_image ... ok [INFO] [stdout] test tile::tests::test_tile_contains_bottom_right ... ok [INFO] [stderr] Doc-tests oximedia_scaling [INFO] [stdout] test tile::tests::test_tile_contains_outside ... ok [INFO] [stdout] test tile::tests::test_tile_new ... ok [INFO] [stdout] test tile::tests::test_tile_overlaps_adjacent_no_overlap ... ok [INFO] [stdout] test tile::tests::test_tile_area ... ok [INFO] [stdout] test tile::tests::test_tile_overlaps_disjoint ... ok [INFO] [stdout] test tile::tests::test_tile_overlaps_self ... ok [INFO] [stdout] test tile::tests::test_tile_overlaps_true ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 616 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test src/aspect_preserve.rs - aspect_preserve::AspectPreserver (line 79) ... ok [INFO] [stdout] test src/scale_filter.rs - scale_filter::ScaleFilter (line 73) ... ok [INFO] [stdout] test src/scale_pipeline.rs - scale_pipeline::ScalePipeline (line 117) ... ok [INFO] [stdout] test src/super_resolution.rs - super_resolution::SuperResolutionEngine (line 431) ... ok [INFO] [stdout] test src/chroma_scale.rs - chroma_scale::ChromaScaler (line 123) ... ok [INFO] [stdout] test src/quality_metric.rs - quality_metric::ScaleQualityMetrics (line 52) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.54s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "cc7f4a5128bb68e92e3f7ed47ce39777652406585d7f7110d114f8c5b17b0ac2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cc7f4a5128bb68e92e3f7ed47ce39777652406585d7f7110d114f8c5b17b0ac2", kill_on_drop: false }` [INFO] [stdout] cc7f4a5128bb68e92e3f7ed47ce39777652406585d7f7110d114f8c5b17b0ac2