[INFO] fetching crate oximedia-image 0.1.3... [INFO] testing oximedia-image-0.1.3 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate oximedia-image 0.1.3 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate oximedia-image 0.1.3 [INFO] finished tweaking crates.io crate oximedia-image 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-image 0.1.3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-image 0.1.3 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-image 0.1.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6270a47adf34a7fd91276a5b1f0e19349d9a511267ef9edb05ae4056265e5328 [INFO] running `Command { std: "docker" "start" "-a" "6270a47adf34a7fd91276a5b1f0e19349d9a511267ef9edb05ae4056265e5328", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6270a47adf34a7fd91276a5b1f0e19349d9a511267ef9edb05ae4056265e5328", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6270a47adf34a7fd91276a5b1f0e19349d9a511267ef9edb05ae4056265e5328", kill_on_drop: false }` [INFO] [stdout] 6270a47adf34a7fd91276a5b1f0e19349d9a511267ef9edb05ae4056265e5328 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f1594edf09fd5c9082e258779b417476a1659a691030ee5b6c8c2b5d88dca598 [INFO] running `Command { std: "docker" "start" "-a" "f1594edf09fd5c9082e258779b417476a1659a691030ee5b6c8c2b5d88dca598", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling zune-core v0.5.1 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling oxiarc-core v0.2.6 [INFO] [stderr] Compiling zune-jpeg v0.5.15 [INFO] [stderr] Compiling oxiarc-deflate v0.2.6 [INFO] [stderr] Compiling fax v0.2.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling oximedia-core v0.1.3 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling tiff v0.11.3 [INFO] [stderr] Compiling oximedia-image v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.56s [INFO] running `Command { std: "docker" "inspect" "f1594edf09fd5c9082e258779b417476a1659a691030ee5b6c8c2b5d88dca598", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1594edf09fd5c9082e258779b417476a1659a691030ee5b6c8c2b5d88dca598", kill_on_drop: false }` [INFO] [stdout] f1594edf09fd5c9082e258779b417476a1659a691030ee5b6c8c2b5d88dca598 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 533acc1865640801662e0164aecf23649d81fed89d815eb976609625ab76f360 [INFO] running `Command { std: "docker" "start" "-a" "533acc1865640801662e0164aecf23649d81fed89d815eb976609625ab76f360", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.185 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling oximedia-core v0.1.3 [INFO] [stderr] Compiling oximedia-image v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 20.37s [INFO] running `Command { std: "docker" "inspect" "533acc1865640801662e0164aecf23649d81fed89d815eb976609625ab76f360", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "533acc1865640801662e0164aecf23649d81fed89d815eb976609625ab76f360", kill_on_drop: false }` [INFO] [stdout] 533acc1865640801662e0164aecf23649d81fed89d815eb976609625ab76f360 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 843b23ce0cecc8ea08074e3cb350fca9c851108d3875e468920ecc6bbe0605e1 [INFO] running `Command { std: "docker" "start" "-a" "843b23ce0cecc8ea08074e3cb350fca9c851108d3875e468920ecc6bbe0605e1", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_image-bb9d6a83b45ac988) [INFO] [stdout] [INFO] [stdout] running 1225 tests [INFO] [stdout] test adaptive_threshold::tests::test_niblack_invalid_dimensions ... ok [INFO] [stdout] test adaptive_threshold::tests::test_local_mean_only_binary_values ... ok [INFO] [stdout] test adaptive_threshold::tests::test_otsu_empty_returns_zero ... ok [INFO] [stdout] test adaptive_threshold::tests::test_niblack_output_length ... ok [INFO] [stdout] test adaptive_threshold::tests::test_otsu_uniform_image ... ok [INFO] [stdout] test adaptive_threshold::tests::test_otsu_binarize_only_zero_and_255 ... ok [INFO] [stdout] test adaptive_threshold::tests::test_otsu_binarize_output_length ... ok [INFO] [stdout] test adaptive_threshold::tests::test_triangle_binarize_output_length ... ok [INFO] [stdout] test adaptive_threshold::tests::test_triangle_non_zero ... ok [INFO] [stdout] test adaptive_threshold::tests::test_triangle_uniform_returns_same_value ... ok [INFO] [stdout] test advanced_morphology::tests::test_circle_radius_0 ... ok [INFO] [stdout] test advanced_morphology::tests::test_close_fills_isolated_dark_pixel ... ok [INFO] [stdout] test advanced_morphology::tests::test_connected_components_single_blob ... ok [INFO] [stdout] test adaptive_threshold::tests::test_niblack_only_binary_values ... ok [INFO] [stdout] test advanced_morphology::tests::test_black_hat_uniform_image_is_zero ... ok [INFO] [stdout] test advanced_morphology::tests::test_connected_components_empty ... ok [INFO] [stdout] test adaptive_threshold::tests::test_histogram_correct_counts ... ok [INFO] [stdout] test advanced_morphology::tests::test_connected_components_two_blobs ... ok [INFO] [stdout] test advanced_morphology::tests::test_connected_components_connected_row ... ok [INFO] [stdout] test advanced_morphology::tests::test_cross_arm_length_1 ... ok [INFO] [stdout] test advanced_morphology::tests::test_dilate_uniform_image ... ok [INFO] [stdout] test advanced_morphology::tests::test_circle_radius_1 ... ok [INFO] [stdout] test advanced_morphology::tests::test_erode_uniform_image ... ok [INFO] [stdout] test advanced_morphology::tests::test_gradient_uniform_image_is_zero ... ok [INFO] [stdout] test adaptive_threshold::tests::test_otsu_bimodal ... ok [INFO] [stdout] test adaptive_threshold::tests::test_local_mean_invalid_dimensions ... ok [INFO] [stdout] test adaptive_threshold::tests::test_triangle_binarize_only_zero_and_255 ... ok [INFO] [stdout] test advanced_morphology::tests::test_dilate_single_bright_pixel ... ok [INFO] [stdout] test advanced_morphology::tests::test_erode_single_dark_pixel ... ok [INFO] [stdout] test adaptive_threshold::tests::test_niblack_uniform_positive_k ... ok [INFO] [stdout] test advanced_morphology::tests::test_hit_or_miss_basic ... ok [INFO] [stdout] test advanced_morphology::tests::test_line_horizontal ... ok [INFO] [stdout] test advanced_morphology::tests::test_open_removes_isolated_bright_pixel ... ok [INFO] [stdout] test advanced_morphology::tests::test_rectangle_all_active ... ok [INFO] [stdout] test adaptive_threshold::tests::test_local_mean_zero_width_error ... ok [INFO] [stdout] test advanced_morphology::tests::test_circle_radius_2_centre_active ... ok [INFO] [stdout] test alpha_composite::tests::test_clear_is_transparent ... ok [INFO] [stdout] test alpha_composite::tests::test_composite_inplace_matches_composite ... ok [INFO] [stdout] test alpha_composite::tests::test_in_op_transparent_dst_gives_transparent ... ok [INFO] [stdout] test alpha_composite::tests::test_operator_names ... ok [INFO] [stdout] test alpha_composite::tests::test_multi_pixel_composite ... ok [INFO] [stdout] test alpha_composite::tests::test_over_transparent_src_shows_dst ... ok [INFO] [stdout] test alpha_composite::tests::test_source_op ... ok [INFO] [stdout] test alpha_composite::tests::test_premultiply_unpremultiply_roundtrip ... ok [INFO] [stdout] test alpha_composite::tests::test_xor_opaque_over_opaque ... ok [INFO] [stdout] test alpha_composite::tests::test_destination_op ... ok [INFO] [stdout] test alpha_composite::tests::test_over_opaque_src_hides_dst ... ok [INFO] [stdout] test bilateral::tests::default_config_fields ... ok [INFO] [stdout] test bilateral::tests::fine_config_sets_explicit_radius ... ok [INFO] [stdout] test bilateral::tests::large_sigma_range_behaves_like_gaussian_blur ... ok [INFO] [stdout] test bilateral::tests::new_config_radius_formula ... ok [INFO] [stdout] test bilateral::tests::bilateral_filter_uniform_image_unchanged ... ok [INFO] [stdout] test bilateral::tests::bilateral_filter_returns_correct_length ... ok [INFO] [stdout] test bilateral::tests::edge_preservation_high_contrast ... ok [INFO] [stdout] test alpha_composite::tests::test_invalid_buffer_size_returns_error ... ok [INFO] [stdout] test alpha_composite::tests::test_gamma_correct_composite_no_panic ... ok [INFO] [stdout] test alpha_composite::tests::test_out_op ... ok [INFO] [stdout] test bilateral::tests::wrong_dst_size_returns_err ... ok [INFO] [stdout] test bilateral::tests::rgba_alpha_channel_unchanged ... ok [INFO] [stdout] test bilateral::tests::rgba_wrong_buffer_size_returns_err ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_zero_sigma_unchanged ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_f32_invalid_length_returns_error ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_f32_output_length ... ok [INFO] [stdout] test bilateral::tests::bilateral_filter_all_values_in_range ... ok [INFO] [stdout] test bilateral::tests::uniform_image_unchanged_with_tight_range ... ok [INFO] [stdout] test bilateral::tests::wrong_src_size_returns_err ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_f32_uniform_unchanged ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_multichannel_uniform_unchanged ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_u8_invalid_dimensions_returns_error ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_multichannel_zero_channels_returns_error ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_multichannel_output_length ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_u8_output_length ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_u8_preserves_step_edge ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_u8_uniform_image_unchanged ... ok [INFO] [stdout] test bilateral_filter::tests::test_apply_u8_zero_width_returns_error ... ok [INFO] [stdout] test bilateral_filter::tests::test_gaussian_tables_range_decreases ... ok [INFO] [stdout] test bilateral_filter::tests::test_gaussian_tables_range_zero_delta_is_one ... ok [INFO] [stdout] test bilateral_filter::tests::test_params_default_radius ... ok [INFO] [stdout] test blend_mode::tests::test_blend_layer_solid_dimensions ... ok [INFO] [stdout] test blend_mode::tests::test_blend_onto_normal_full_alpha ... ok [INFO] [stdout] test bilateral_filter::tests::test_params_small_sigma ... ok [INFO] [stdout] test blend_mode::tests::test_multiply_darkens ... ok [INFO] [stdout] test blend_mode::tests::test_multiply_identity_with_one ... ok [INFO] [stdout] test blend_mode::tests::test_apply_clamps_output ... ok [INFO] [stdout] test blend_mode::tests::test_hard_light_is_overlay_with_swapped_args ... ok [INFO] [stdout] test blend_mode::tests::test_normal_returns_src ... ok [INFO] [stdout] test blend_mode::tests::test_overlay_bright_dst ... ok [INFO] [stdout] test blend_mode::tests::test_screen_lightens ... ok [INFO] [stdout] test blend_mode::tests::test_overlay_dark_dst ... ok [INFO] [stdout] test blend_mode::tests::test_soft_light_mid_values ... ok [INFO] [stdout] test blend_mode::tests::test_stack_empty_flatten_returns_none ... ok [INFO] [stdout] test blend_mode::tests::test_stack_single_layer_flatten ... ok [INFO] [stdout] test canny::tests::test_direction_histogram_bin_count ... ok [INFO] [stdout] test canny::tests::test_canny_uniform_image_no_edges ... ok [INFO] [stdout] test blend_mode::tests::test_blend_mode_label ... ok [INFO] [stdout] test canny::tests::test_canny_vertical_edge_detected ... ok [INFO] [stdout] test canny::tests::test_gaussian_blur_reduces_edge_sharpness ... ok [INFO] [stdout] test canny::tests::test_gaussian_kernel_sums_to_one ... ok [INFO] [stdout] test canny::tests::test_gray_f32_construction ... ok [INFO] [stdout] test canny::tests::test_gray_f32_from_data_size_mismatch ... ok [INFO] [stdout] test canny::tests::test_radius_sigma_roundtrip ... ok [INFO] [stdout] test channel_ops::tests::test_channel_id_display ... ok [INFO] [stdout] test canny::tests::test_sobel_gradient_detects_vertical_edge ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_no_panic_small ... ok [INFO] [stdout] test channel_ops::tests::test_channel_stats ... ok [INFO] [stdout] test channel_ops::tests::test_channel_descriptor_rgb ... ok [INFO] [stdout] test channel_ops::tests::test_extract_channel ... ok [INFO] [stdout] test channel_ops::tests::test_extract_channel_error ... ok [INFO] [stdout] test channel_ops::tests::test_fill_channel ... ok [INFO] [stdout] test channel_ops::tests::test_insert_channel ... ok [INFO] [stdout] test channel_ops::tests::test_premultiply_alpha ... ok [INFO] [stdout] test channel_ops::tests::test_deinterleave_and_interleave ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_alpha_preserved ... ok [INFO] [stdout] test channel_ops::tests::test_swap_channels ... ok [INFO] [stdout] test channel_ops::tests::test_unpremultiply_alpha ... ok [INFO] [stdout] test color_adjust::tests::test_bc_brightness_decrease ... ok [INFO] [stdout] test color_adjust::tests::test_bc_brightness_increase ... ok [INFO] [stdout] test color_adjust::tests::test_bc_clamp_lower ... ok [INFO] [stdout] test color_adjust::tests::test_bc_clamp_upper ... ok [INFO] [stdout] test color_adjust::tests::test_bc_contrast_increase ... ok [INFO] [stdout] test color_adjust::tests::test_bc_default_identity ... ok [INFO] [stdout] test color_adjust::tests::test_gamma_1_identity ... ok [INFO] [stdout] test color_adjust::tests::test_gamma_brightens ... ok [INFO] [stdout] test color_adjust::tests::test_gamma_darkens ... ok [INFO] [stdout] test color_adjust::tests::test_gamma_endpoints_preserved ... ok [INFO] [stdout] test color_adjust::tests::test_grade_clamped_range ... ok [INFO] [stdout] test color_adjust::tests::test_grade_default_identity ... ok [INFO] [stdout] test channel_ops::tests::test_unpremultiply_zero_alpha ... ok [INFO] [stdout] test color_adjust::tests::test_grade_highlights_push ... ok [INFO] [stdout] test channel_ops::tests::test_channel_descriptor_rgba ... ok [INFO] [stdout] test channel_ops::tests::test_channel_layout_display ... ok [INFO] [stdout] test color_adjust::tests::test_grade_shadows_lift ... ok [INFO] [stdout] test color_adjust::tests::test_hsl_shift_hue_wrap_positive ... ok [INFO] [stdout] test color_adjust::tests::test_hsl_shift_hue_no_wrap ... ok [INFO] [stdout] test color_adjust::tests::test_hsl_zero_shift ... ok [INFO] [stdout] test color_adjust::tests::test_hsl_shift_hue_wrap_negative ... ok [INFO] [stdout] test color_balance::tests::test_balance_accessor ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_smooths_noise ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_gray ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_preserves_sharp_edge ... ok [INFO] [stdout] test bilateral::tests::test_bilateral_uniform_unchanged ... ok [INFO] [stdout] test color_balance::tests::test_default_apply_is_identity_approx ... ok [INFO] [stdout] test color_balance::tests::test_highlight_weight_bright_is_high ... ok [INFO] [stdout] test color_balance::tests::test_midtone_weight_peaks_at_mid ... ok [INFO] [stdout] test color_balance::tests::test_output_clamped_to_unit ... ok [INFO] [stdout] test color_balance::tests::test_set_and_get_range ... ok [INFO] [stdout] test color_balance::tests::test_no_shift_returns_same_pixel ... ok [INFO] [stdout] test color_balance::tests::test_process_no_adjustment_preserves_values ... ok [INFO] [stdout] test color_balance::tests::test_process_skips_less_than_3_channels ... ok [INFO] [stdout] test color_balance::tests::test_shadow_weight_bright_is_low ... ok [INFO] [stdout] test color_lut::tests::test_apply_to_image_data_planar_fails ... ok [INFO] [stdout] test color_lut::tests::test_apply_to_buffer_f32_identity ... ok [INFO] [stdout] test color_balance::tests::test_red_shift_increases_red ... ok [INFO] [stdout] test color_lut::tests::test_apply_to_frame_preserves_dimensions ... ok [INFO] [stdout] test color_balance::tests::test_shadow_weight_dark_is_high ... ok [INFO] [stdout] test color_lut::tests::test_cube_format_has_header ... ok [INFO] [stdout] test color_lut::tests::test_cube_parser_missing_size ... ok [INFO] [stdout] test color_lut::tests::test_cube_parser_wrong_count ... ok [INFO] [stdout] test color_lut::tests::test_apply_to_buffer_u8_identity ... ok [INFO] [stdout] test color_lut::tests::test_lut_1d_apply_identity ... ok [INFO] [stdout] test color_lut::tests::test_identity_lut_size ... ok [INFO] [stdout] test color_balance::tests::test_color_range_all_variants_weight_clamped ... ok [INFO] [stdout] test color_lut::tests::test_identity_lut_lookup_corners ... ok [INFO] [stdout] test color_lut::tests::test_lut_1d_gamma ... ok [INFO] [stdout] test color_lut::tests::test_gamma_lut_midpoint ... ok [INFO] [stdout] test color_lut::tests::test_cube_parser_identity_roundtrip ... ok [INFO] [stdout] test color_adjust::tests::test_apply_brightness_contrast_slice ... ok [INFO] [stdout] test color_lut::tests::test_lut_1d_identity_passthrough ... ok [INFO] [stdout] test color_quantize::tests::test_floyd_steinberg_dither_indices ... ok [INFO] [stdout] test color_quantize::tests::test_median_cut_palette_size ... ok [INFO] [stdout] test color_quantize::tests::test_kmeans_palette_size ... ok [INFO] [stdout] test color_quantize::tests::test_nearest_color ... ok [INFO] [stdout] test color_lut::tests::test_trilinear_output_in_range ... ok [INFO] [stdout] test color_lut::tests::test_lut_chain_apply_to_buffer ... ok [INFO] [stdout] test color_lut::tests::test_lut_chain_identity ... ok [INFO] [stdout] test color_lut::tests::test_lut_validate_wrong_size ... ok [INFO] [stdout] test color_lut::tests::test_sepia_lut_changes_values ... ok [INFO] [stdout] test color_lut::tests::test_identity_lut_passthrough ... ok [INFO] [stdout] test color_quantize::tests::test_quantize_empty_input ... ok [INFO] [stdout] test color_quantize::tests::test_map_to_palette_coverage ... ok [INFO] [stdout] test color_quantize::tests::test_octree_palette_size ... ok [INFO] [stdout] test color_quantize::tests::test_rgb_color_new_clamps ... ok [INFO] [stdout] test color_quantize::tests::test_rgb_color_round_trip_u8 ... ok [INFO] [stdout] test color_quantize::tests::test_quantize_high_level_median_cut ... ok [INFO] [stdout] test color_science::tests::test_color_primaries_p3_d65 ... ok [INFO] [stdout] test color_science::tests::test_delta_e_1976_nonzero ... ok [INFO] [stdout] test color_quantize::tests::test_quantize_with_dither ... ok [INFO] [stdout] test color_science::tests::test_delta_e_1976_zero ... ok [INFO] [stdout] test color_science::tests::test_delta_e_2000_approximately_correct ... ok [INFO] [stdout] test color_science::tests::test_lab_f_above_delta_cubed ... ok [INFO] [stdout] test color_science::tests::test_color_primaries_aces_ap1 ... ok [INFO] [stdout] test color_science::tests::test_color_primaries_bt2020 ... ok [INFO] [stdout] test color_science::tests::test_color_primaries_bt709 ... ok [INFO] [stdout] test color_science::tests::test_color_primaries_aces_ap0 ... ok [INFO] [stdout] test color_science::tests::test_lab_f_below_delta_cubed ... ok [INFO] [stdout] test color_science::tests::test_rgb_to_xyz_bt709_white ... ok [INFO] [stdout] test color_quantize::tests::test_quantize_kmeans ... ok [INFO] [stdout] test content_aware_resize::tests::test_carving_image_from_u8 ... ok [INFO] [stdout] test color_science::tests::test_bradford_d65_to_d50 ... ok [INFO] [stdout] test content_aware_resize::tests::test_cumulative_energy_vertical_shape ... ok [INFO] [stdout] test content_aware_resize::tests::test_carving_image_to_u8_roundtrip ... ok [INFO] [stdout] test content_aware_resize::tests::test_energy_checkerboard_nonzero ... ok [INFO] [stdout] test content_aware_resize::tests::test_carving_image_from_u8_bad_size ... ok [INFO] [stdout] test content_aware_resize::tests::test_energy_map_size ... ok [INFO] [stdout] test color_science::tests::test_xyz_to_lab_d65 ... ok [INFO] [stdout] test content_aware_resize::tests::test_cumulative_energy_vertical_increases ... ok [INFO] [stdout] test content_aware_resize::tests::test_energy_to_u8_all_zeros ... ok [INFO] [stdout] test content_aware_resize::tests::test_energy_to_u8_range ... ok [INFO] [stdout] test color_science::tests::test_bradford_matrix_identity ... ok [INFO] [stdout] test content_aware_resize::tests::test_find_vertical_seam_returns_correct_length ... ok [INFO] [stdout] test content_aware_resize::tests::test_energy_uniform_image ... ok [INFO] [stdout] test content_aware_resize::tests::test_forward_energy_size ... ok [INFO] [stdout] test content_aware_resize::tests::test_highlight_seam_sets_red ... ok [INFO] [stdout] test content_aware_resize::tests::test_find_horizontal_seam_returns_correct_length ... ok [INFO] [stdout] test content_aware_resize::tests::test_luma_grayscale ... ok [INFO] [stdout] test color_science::tests::test_delta_e_2000_zero ... ok [INFO] [stdout] test content_aware_resize::tests::test_luma_rgb ... ok [INFO] [stdout] test content_aware_resize::tests::test_remove_horizontal_seam_reduces_height ... ok [INFO] [stdout] test content_aware_resize::tests::test_seam_carver_enlarge_rejected ... ok [INFO] [stdout] test content_aware_resize::tests::test_remove_vertical_seam_reduces_width ... ok [INFO] [stdout] test content_aware_resize::tests::test_seam_carver_no_resize ... ok [INFO] [stdout] test content_aware_resize::tests::test_seam_carver_reduce_height ... ok [INFO] [stdout] test content_aware_resize::tests::test_seam_carver_reduce_width ... ok [INFO] [stdout] test content_aware_resize::tests::test_trace_vertical_seam_length ... ok [INFO] [stdout] test content_aware_resize::tests::test_seam_carver_data_integrity ... ok [INFO] [stdout] test content_aware_resize::tests::test_trace_vertical_seam_valid_coords ... ok [INFO] [stdout] test convolution::tests::apply_to_pixel_border_zero ... ok [INFO] [stdout] test convolution::tests::border_mode_reflect_coord_positive ... ok [INFO] [stdout] test convolution::tests::box_blur_kernel_normalised ... ok [INFO] [stdout] test convolution::tests::apply_to_pixel_identity ... ok [INFO] [stdout] test convolution::tests::border_mode_copy ... ok [INFO] [stdout] test convolution::tests::convolve_identity_filter ... ok [INFO] [stdout] test convolution::tests::edge_detect_kernel_sum_zero ... ok [INFO] [stdout] test convolution::tests::convolve_uniform_blur ... ok [INFO] [stdout] test convolution::tests::kernel2d_weight_sum_identity ... ok [INFO] [stdout] test convolution::tests::gaussian_kernel_normalised ... ok [INFO] [stdout] test convolution::tests::kernel_size_area ... ok [INFO] [stdout] test convolution::tests::kernel_size_side ... ok [INFO] [stdout] test convolution::tests::separable_convolve_identity_like ... ok [INFO] [stdout] test convolution::tests::separable_box_blur_uniform_image ... ok [INFO] [stdout] test convolution::tests::separable_gaussian_custom_sigma ... ok [INFO] [stdout] test convolution::tests::separable_gaussian_matches_2d_gaussian ... ok [INFO] [stdout] test convolution::tests::convolve_clamp_border ... ok [INFO] [stdout] test convolution::tests::separable_reflect_border ... ok [INFO] [stdout] test convolution::tests::separable_large_kernel_performance ... ok [INFO] [stdout] test convolution::tests::sharpen_kernel_center ... ok [INFO] [stdout] test crop_region::tests::test_auto_crop_all_same ... ok [INFO] [stdout] test convolution::tests::separable_kernel_to_2d ... ok [INFO] [stdout] test convolution::tests::separable_kernel_radius ... ok [INFO] [stdout] test crop_region::tests::test_auto_crop_bounds ... ok [INFO] [stdout] test crop_region::tests::test_crop_multichannel ... ok [INFO] [stdout] test crop_region::tests::test_pad_constant ... ok [INFO] [stdout] test crop_region::tests::test_clip_to_image ... ok [INFO] [stdout] test crop_region::tests::test_pad_replicate ... ok [INFO] [stdout] test crop_region::tests::test_center_crop ... ok [INFO] [stdout] test crop_region::tests::test_rect_basic ... ok [INFO] [stdout] test crop_region::tests::test_crop_f32 ... ok [INFO] [stdout] test crop_region::tests::test_rect_contains ... ok [INFO] [stdout] test crop_region::tests::test_rect_display ... ok [INFO] [stdout] test crop_region::tests::test_rect_empty ... ok [INFO] [stdout] test crop_region::tests::test_rect_expand ... ok [INFO] [stdout] test crop_region::tests::test_rect_intersect ... ok [INFO] [stdout] test dct_block::tests::dct8x8_dc_only_block ... ok [INFO] [stdout] test dct_block::tests::jpeg_luma_qt_all_positive ... ok [INFO] [stdout] test dct_block::tests::jpeg_pipeline_roundtrip ... ok [INFO] [stdout] test dct_block::tests::dct_idct_roundtrip_ramp ... ok [INFO] [stdout] test dct_block::tests::dct_idct_roundtrip_flat ... ok [INFO] [stdout] test dct_block::tests::quantize_zero_table_entry_safe ... ok [INFO] [stdout] test dct_block::tests::dct8x8_zero_block ... ok [INFO] [stdout] test dct_block::tests::quantize_zeroes_small_coefficients ... ok [INFO] [stdout] test dct_block::tests::quantize_dequantize_unity_table ... ok [INFO] [stdout] test depth_map::tests::test_depth_map_at_zero_zero ... ok [INFO] [stdout] test depth_map::tests::test_depth_stats_compute_basic ... ok [INFO] [stdout] test depth_map::tests::test_depth_stats_empty_returns_none ... ok [INFO] [stdout] test depth_map::tests::test_depth_map_at ... ok [INFO] [stdout] test depth_map::tests::test_depth_stats_std_dev_uniform ... ok [INFO] [stdout] test depth_map::tests::test_fusion_average_basic ... ok [INFO] [stdout] test depth_map::tests::test_fusion_average_empty_returns_none ... ok [INFO] [stdout] test depth_map::tests::test_fusion_average_single_map ... ok [INFO] [stdout] test depth_map::tests::test_invert_uniform ... ok [INFO] [stdout] test depth_map::tests::test_normalize_midpoint ... ok [INFO] [stdout] test depth_map::tests::test_normalize_range_is_zero_to_one ... ok [INFO] [stdout] test depth_map::tests::test_invert_swaps_min_max ... ok [INFO] [stdout] test depth_map::tests::test_point_cloud_z_equals_depth ... ok [INFO] [stdout] test depth_map::tests::test_point_cloud_zero_depth_skipped ... ok [INFO] [stdout] test depth_map::tests::test_normalize_uniform_all_zero ... ok [INFO] [stdout] test depth_map::tests::test_point_cloud_length ... ok [INFO] [stdout] test depth_map::tests::test_fusion_average_mismatched_dims_returns_none ... ok [INFO] [stdout] test dither_engine::tests::test_bayer_matrix_2x2 ... ok [INFO] [stdout] test dither_engine::tests::test_bayer_matrix_4x4 ... ok [INFO] [stdout] test dither_engine::tests::test_dither_none ... ok [INFO] [stdout] test dither_engine::tests::test_blue_noise_dither ... ok [INFO] [stdout] test dither_engine::tests::test_dither_config_default ... ok [INFO] [stdout] test dither_engine::tests::test_dither_config_validation ... ok [INFO] [stdout] test dither_engine::tests::test_blue_noise_hash_range ... ok [INFO] [stdout] test dither_engine::tests::test_dither_method_display ... ok [INFO] [stdout] test dither_engine::tests::test_floyd_steinberg_basic ... ok [INFO] [stdout] test dither_engine::tests::test_ordered_bayer_dither ... ok [INFO] [stdout] test dither_engine::tests::test_jjn_dither ... ok [INFO] [stdout] test dng::tests::test_bit_unpacking_10bit ... ignored [INFO] [stdout] test dng::tests::test_bit_unpacking_12bit ... ignored [INFO] [stdout] test dng::tests::test_bit_unpacking_14bit ... ignored [INFO] [stdout] test dng::tests::test_bit_unpacking_16bit ... ignored [INFO] [stdout] test dng::tests::test_bit_unpacking_8bit ... ignored [INFO] [stdout] test dng::tests::test_cfa_pattern_color_indices ... ignored [INFO] [stdout] test dng::tests::test_cfa_pattern_parsing ... ignored [INFO] [stdout] test dng::tests::test_color_matrix_identity ... ignored [INFO] [stdout] test dng::tests::test_color_matrix_transform ... ignored [INFO] [stdout] test dng::tests::test_default_metadata ... ignored [INFO] [stdout] test dng::tests::test_demosaic_bilinear_bggr ... ignored [INFO] [stdout] test dng::tests::test_demosaic_bilinear_rggb ... ignored [INFO] [stdout] test dng::tests::test_demosaic_edge_handling ... ignored [INFO] [stdout] test dng::tests::test_dng_compression_conversion ... ignored [INFO] [stdout] test dng::tests::test_dng_detection_garbage ... ignored [INFO] [stdout] test dng::tests::test_dng_detection_invalid_tiff ... ignored [INFO] [stdout] test dng::tests::test_dng_detection_valid ... ignored [INFO] [stdout] test dng::tests::test_dng_read_from_constructed_data ... ignored [INFO] [stdout] test dng::tests::test_dng_to_image_frame_demosaiced ... ignored [INFO] [stdout] test dng::tests::test_dng_to_image_frame_raw ... ignored [INFO] [stdout] test dng::tests::test_ifd_parsing ... ignored [INFO] [stdout] test dng::tests::test_image_frame_to_dng ... ignored [INFO] [stdout] test dng::tests::test_metadata_only_read ... ignored [INFO] [stdout] test dng::tests::test_round_trip_write_read ... ignored [INFO] [stdout] test dng::tests::test_tiff_header_parsing_be ... ignored [INFO] [stdout] test dng::tests::test_tiff_header_parsing_le ... ignored [INFO] [stdout] test dng::tests::test_white_balance_application ... ignored [INFO] [stdout] test dng::tests::test_white_balance_neutral_identity ... ignored [INFO] [stdout] test dng::tests::test_write_from_rgb ... ignored [INFO] [stdout] test dither_engine::tests::test_dither_stats ... ok [INFO] [stdout] test dither_engine::tests::test_strength_clamping ... ok [INFO] [stdout] test dpx::tests::test_pack_10bit_all_zeros ... ok [INFO] [stdout] test dpx::tests::test_determine_packing_method ... ok [INFO] [stdout] test dpx::tests::test_pack_10bit_all_max ... ok [INFO] [stdout] test dither_engine::tests::test_stucki_dither ... ok [INFO] [stdout] test dpx::tests::test_pack_10bit_method_a_bit_layout ... ok [INFO] [stdout] test dpx::tests::test_pack_10bit_method_b_bit_layout ... ok [INFO] [stdout] test dpx::tests::test_pack_10bit_partial_word ... ok [INFO] [stdout] test dpx::tests::test_pack_unpack_10bit_little_endian ... ok [INFO] [stdout] test dpx::tests::test_pack_unpack_10bit_method_a_roundtrip ... ok [INFO] [stdout] test dpx::tests::test_pack_unpack_10bit_method_b_roundtrip ... ok [INFO] [stdout] test dpx::tests::test_packing_method_default ... ok [INFO] [stdout] test dpx_packed::tests::test_endian_word_read_write ... ok [INFO] [stdout] test dpx_packed::tests::test_10bit_clamp ... ok [INFO] [stdout] test dpx_packed::tests::test_f32_normalized_round_trip ... ok [INFO] [stdout] test dpx_packed::tests::test_generic_dispatch ... ok [INFO] [stdout] test dpx::tests::test_pack_unpack_10bit_multiple_words ... ok [INFO] [stdout] test dpx_packed::tests::test_method_a_bit_layout ... ok [INFO] [stdout] test dpx_packed::tests::test_method_a_pack_unpack ... ok [INFO] [stdout] test dpx_packed::tests::test_method_b_bit_layout ... ok [INFO] [stdout] test dpx_packed::tests::test_method_b_pack_unpack ... ok [INFO] [stdout] test dpx_packed::tests::test_packed_image_encode_decode_all ... ok [INFO] [stdout] test dpx_packed::tests::test_packed_image_from_bytes_too_short ... ok [INFO] [stdout] test dpx_packed::tests::test_packed_image_out_of_bounds ... ok [INFO] [stdout] test dpx_packed::tests::test_packed_image_round_trip ... ok [INFO] [stdout] test dpx_packed::tests::test_read_word_insufficient_data ... ok [INFO] [stdout] test dpx_packed::tests::test_scanline_bytes_round_trip ... ok [INFO] [stdout] test dpx_packed::tests::test_scanline_get_set_pixel ... ok [INFO] [stdout] test dpx_packed::tests::test_scanline_out_of_bounds ... ok [INFO] [stdout] test dpx_packed::tests::test_scanline_round_trip ... ok [INFO] [stdout] test edge_detect::tests::test_edge_density ... ok [INFO] [stdout] test edge_detect::tests::test_edge_stats ... ok [INFO] [stdout] test edge_detect::tests::test_gray_image_from_data ... ok [INFO] [stdout] test edge_detect::tests::test_gray_image_new ... ok [INFO] [stdout] test dct_block::tests::idct8x8_zero_block ... ok [INFO] [stdout] test edge_detect::tests::test_gray_image_clamped_access ... ok [INFO] [stdout] test edge_detect::tests::test_edge_config_builder ... ok [INFO] [stdout] test edge_detect::tests::test_laplacian_edge_detection ... ok [INFO] [stdout] test edge_detect::tests::test_hysteresis_threshold ... ok [INFO] [stdout] test edge_detect::tests::test_non_maximum_suppression ... ok [INFO] [stdout] test edge_detect::tests::test_roberts_cross_edge_detection ... ok [INFO] [stdout] test edge_detect::tests::test_uniform_image_no_edges ... ok [INFO] [stdout] test edge_detect::tests::test_sobel_edge_detection ... ok [INFO] [stdout] test exif_parser::tests::test_exif_data_focal_length ... ok [INFO] [stdout] test exif_parser::tests::test_exif_data_get_by_code ... ok [INFO] [stdout] test edge_detect::tests::test_prewitt_edge_detection ... ok [INFO] [stdout] test exif_parser::tests::test_exif_data_iter_count ... ok [INFO] [stdout] test edge_detect::tests::test_scharr_edge_detection ... ok [INFO] [stdout] test exif_parser::tests::test_exif_parser_empty_data_returns_empty ... ok [INFO] [stdout] test exif_parser::tests::test_exif_data_make_and_model ... ok [INFO] [stdout] test exif_parser::tests::test_exif_data_len ... ok [INFO] [stdout] test exif_parser::tests::test_exif_parser_wrong_magic_returns_empty ... ok [INFO] [stdout] test exif_parser::tests::test_exif_tag_round_trip_code ... ok [INFO] [stdout] test exif_parser::tests::test_exif_value_ascii_as_str ... ok [INFO] [stdout] test exif_parser::tests::test_exif_tag_from_code_known ... ok [INFO] [stdout] test exif_parser::tests::test_exif_value_rational_div_zero ... ok [INFO] [stdout] test exif_parser::tests::test_exif_value_u16_as_f64 ... ok [INFO] [stdout] test exif_parser::tests::test_exif_value_rational_as_f64 ... ok [INFO] [stdout] test exif_parser::tests::test_exif_tag_from_code_unknown ... ok [INFO] [stdout] test exr::tests::test_channel_type_bytes ... ok [INFO] [stdout] test exr::tests::test_determine_format_luminance ... ok [INFO] [stdout] test exr::tests::test_channel_type_from_u32 ... ok [INFO] [stdout] test exr::tests::test_determine_format_empty ... ok [INFO] [stdout] test exr::tests::test_determine_format_rgba ... ok [INFO] [stdout] test exr::tests::test_exr_layer_add_attribute ... ok [INFO] [stdout] test exr::tests::test_exr_layer_extract_channel ... ok [INFO] [stdout] test exr::tests::test_exr_layer_creation ... ok [INFO] [stdout] test exr::tests::test_exr_layer_data_window ... ok [INFO] [stdout] test exr::tests::test_line_order_from_u8 ... ok [INFO] [stdout] test exr::tests::test_multi_layer_exr_creation ... ok [INFO] [stdout] test exr::tests::test_multi_layer_exr_multiple_layers ... ok [INFO] [stdout] test exr::tests::test_multi_layer_from_frame ... ok [INFO] [stdout] test exr::tests::test_f16_f32_roundtrip ... ok [INFO] [stdout] test exr::tests::test_multi_layer_to_frame ... ok [INFO] [stdout] test exr::tests::test_multi_layer_to_frame_empty ... ok [INFO] [stdout] test film_grain::tests::test_chroma_weaker_than_luma_by_default ... ok [INFO] [stdout] test film_grain::tests::test_ar_grain_field_near_zero_mean ... ok [INFO] [stdout] test film_grain::tests::test_full_color_correlation ... ok [INFO] [stdout] test film_grain::tests::test_deterministic_without_temporal_variation ... ok [INFO] [stdout] test film_grain::tests::test_grain_size_affects_spatial_correlation ... ok [INFO] [stdout] test film_grain::tests::test_gray8_applies_grain ... ok [INFO] [stdout] test exr::tests::test_multi_layer_write_read_roundtrip ... ok [INFO] [stdout] test film_grain::tests::test_gray8_values_in_range ... ok [INFO] [stdout] test film_grain::tests::test_invalid_dimensions_rejected ... ok [INFO] [stdout] test film_grain::tests::test_rgb8_applies_grain ... ok [INFO] [stdout] test film_grain::tests::test_ycbcr_planar_applies_grain ... ok [INFO] [stdout] test film_grain::tests::test_zero_intensity_no_change ... ok [INFO] [stdout] test filter::tests::test_box_blur_output_length ... ok [INFO] [stdout] test filter::tests::test_box_blur_radius_zero ... ok [INFO] [stdout] test film_grain::tests::test_wrong_plane_count_rejected ... ok [INFO] [stdout] test film_grain::tests::test_temporal_variation_differs_across_frames ... ok [INFO] [stdout] test filter::tests::test_convolution_identity ... ok [INFO] [stdout] test filter::tests::test_convolution_output_length ... ok [INFO] [stdout] test adaptive_threshold::tests::test_local_mean_output_length ... ok [INFO] [stdout] test advanced_morphology::tests::test_top_hat_uniform_image_is_zero ... ok [INFO] [stdout] test filter::tests::test_box_blur_uniform ... ok [INFO] [stdout] test filter::tests::test_convolution_uniform_image_unchanged ... ok [INFO] [stdout] test filter::tests::test_gaussian_kernel_all_positive ... ok [INFO] [stdout] test filter::tests::test_gaussian_kernel_5x5_sums_to_one ... ok [INFO] [stdout] test filter::tests::test_gaussian_kernel_center_is_max ... ok [INFO] [stdout] test filter::tests::test_gaussian_kernel_length ... ok [INFO] [stdout] test filter::tests::test_kernel_half_size ... ok [INFO] [stdout] test filter::tests::test_kernel_size_values ... ok [INFO] [stdout] test blend_mode::tests::test_stack_len_and_is_empty ... ok [INFO] [stdout] test filter::tests::test_sharpen_output_length ... ok [INFO] [stdout] test canny::tests::test_canny_stats_populated ... ok [INFO] [stdout] test color_lut::tests::test_lut_validate_ok ... ok [INFO] [stdout] test crop_region::tests::test_rect_union ... ok [INFO] [stdout] test dither_engine::tests::test_u16_f64_roundtrip ... ok [INFO] [stdout] test exif_parser::tests::test_exif_data_insert_and_get ... ok [INFO] [stdout] test exif_parser::tests::test_exif_data_iso_convenience ... ok [INFO] [stdout] test filter::tests::test_gaussian_kernel_sums_to_one ... ok [INFO] [stdout] test filter::tests::test_sharpen_uniform_image_unchanged ... ok [INFO] [stdout] test canny::tests::test_hysteresis_promotes_weak_adjacent_to_strong ... ok [INFO] [stdout] test filters::tests::test_bilateral_params_auto_radius ... ok [INFO] [stdout] test filters::tests::test_bilateral_filter_u8_reduces_noise ... ok [INFO] [stdout] test filters::tests::test_bilateral_filter_rgb_uniform_unchanged ... ok [INFO] [stdout] test filters::tests::test_bilateral_filter_u8_uniform_unchanged ... ok [INFO] [stdout] test filters::tests::test_bilateral_filter_f32_output_length ... ok [INFO] [stdout] test filters::tests::test_apply_convolution_uniform_sharpen ... ok [INFO] [stdout] test filters::tests::test_bilateral_params_default ... ok [INFO] [stdout] test canny::tests::test_non_maximum_suppression_reduces_edge_width ... ok [INFO] [stdout] test filters::tests::test_apply_convolution_identity ... ok [INFO] [stdout] test exr::tests::test_exr_compression_from_u8 ... ok [INFO] [stdout] test filters::tests::test_apply_convolution_output_length ... ok [INFO] [stdout] test filters::tests::test_equalize_histogram_empty ... ok [INFO] [stdout] test filters::tests::test_equalize_histogram_length ... ok [INFO] [stdout] test filters::tests::test_bilateral_params_new_explicit ... ok [INFO] [stdout] test filters::tests::test_bilateral_filter_rgb_output_length ... ok [INFO] [stdout] test filters::tests::test_emboss_kernel_size ... ok [INFO] [stdout] test filters::tests::test_bilateral_filter_f32_edge_preservation ... ok [INFO] [stdout] test filters::tests::test_bilateral_filter_f32_uniform_unchanged ... ok [INFO] [stdout] test filters::tests::test_equalize_histogram_uniform_input ... ok [INFO] [stdout] test filters::tests::test_threshold_basic ... ok [INFO] [stdout] test filters::tests::test_threshold_boundary ... ok [INFO] [stdout] test focus_stack::tests::test_blend_mode_eq ... ok [INFO] [stdout] test focus_stack::tests::test_compute_focus_quality ... ok [INFO] [stdout] test focus_stack::tests::test_focus_method_eq ... ok [INFO] [stdout] test filters::tests::test_gaussian_kernel_odd_size_enforced ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_basic ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_gradient_method ... ok [INFO] [stdout] test filters::tests::test_median_filter_length ... ok [INFO] [stdout] test filters::tests::test_median_filter_removes_spike ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_maximum_blend ... ok [INFO] [stdout] test filters::tests::test_median_filter_uniform_unchanged ... ok [INFO] [stdout] test filters::tests::test_normalize_divides_by_sum ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_mismatched_size ... ok [INFO] [stdout] test filters::tests::test_normalize_zero_sum_unchanged ... ok [INFO] [stdout] test filters::tests::test_sharpen_kernel_size ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_no_smoothing ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_rgb ... ok [INFO] [stdout] test filters::tests::test_sharpen_kernel_sum ... ok [INFO] [stdout] test filters::tests::test_gaussian_kernel_sum_near_one ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_too_few_images ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_uniform_images ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_variance_method ... ok [INFO] [stdout] test focus_stack::tests::test_gaussian_smooth ... ok [INFO] [stdout] test focus_stack::tests::test_gradient_focus_map_edge ... ok [INFO] [stdout] test focus_stack::tests::test_overall_focus_score ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_zero_dimensions ... ok [INFO] [stdout] test focus_stack::tests::test_variance_focus_map_textured ... ok [INFO] [stdout] test format_detect::tests::test_detect_dpx_be ... ok [INFO] [stdout] test focus_stack::tests::test_laplacian_focus_map_center ... ok [INFO] [stdout] test format_detect::tests::test_detect_dpx_le ... ok [INFO] [stdout] test format_detect::tests::test_detect_too_short ... ok [INFO] [stdout] test format_detect::tests::test_detect_exr ... ok [INFO] [stdout] test format_detect::tests::test_detect_unknown ... ok [INFO] [stdout] test format_detect::tests::test_detect_gif ... ok [INFO] [stdout] test format_detect::tests::test_detect_jpeg ... ok [INFO] [stdout] test format_detect::tests::test_detect_png ... ok [INFO] [stdout] test format_detect::tests::test_detect_webp ... ok [INFO] [stdout] test format_detect::tests::test_detect_tiff_be ... ok [INFO] [stdout] test format_detect::tests::test_format_names_non_empty ... ok [INFO] [stdout] test format_detect::tests::test_detect_bmp ... ok [INFO] [stdout] test focus_stack::tests::test_focus_stack_three_images ... ok [INFO] [stdout] test focus_stack::tests::test_rgb_to_luminance ... ok [INFO] [stdout] test format_detect::tests::test_is_hdr_flag ... ok [INFO] [stdout] test frequency_domain::tests::test_butterworth_low_ideal ... ok [INFO] [stdout] test format_detect::tests::test_is_lossless_flag ... ok [INFO] [stdout] test frequency_domain::tests::test_butterworth_low_rolloff ... ok [INFO] [stdout] test frequency_domain::tests::test_dft_row_dc_only ... ok [INFO] [stdout] test frequency_domain::tests::test_dominant_frequency_not_dc ... ok [INFO] [stdout] test frequency_domain::tests::test_fftshift_symmetry ... ok [INFO] [stdout] test format_detect::tests::test_detect_tiff_le ... ok [INFO] [stdout] test frequency_domain::tests::test_highpass_filter_zeros_dc ... ok [INFO] [stdout] test frequency_domain::tests::test_from_gray_to_gray_roundtrip_gradient ... ok [INFO] [stdout] test frequency_domain::tests::test_from_gray_to_gray_roundtrip_flat ... ok [INFO] [stdout] test frequency_domain::tests::test_lowpass_filter_preserves_dc ... ok [INFO] [stdout] test frequency_domain::tests::test_magnitude_spectrum_length ... ok [INFO] [stdout] test gradient_magnitude::tests::test_from_rgb_u8 ... ok [INFO] [stdout] test gradient_magnitude::tests::test_flat_image_zero_gradient ... ok [INFO] [stdout] test frequency_domain::tests::test_notch_filter_suppresses_target ... ok [INFO] [stdout] test gradient_magnitude::tests::test_gray_image_get_out_of_bounds ... ok [INFO] [stdout] test frequency_domain::tests::test_phase_spectrum_length ... ok [INFO] [stdout] test format_detect::tests::test_from_extension_exr ... ok [INFO] [stdout] test format_detect::tests::test_from_extension_jpeg ... ok [INFO] [stdout] test gradient_magnitude::tests::test_direction_range ... ok [INFO] [stdout] test frequency_domain::tests::test_bandpass_filter_dimensions ... ok [INFO] [stdout] test frequency_domain::tests::test_power_spectrum_density_non_negative ... ok [INFO] [stdout] test gradient_magnitude::tests::test_gray_image_new_ok ... ok [INFO] [stdout] test gradient_magnitude::tests::test_gray_image_new_size_mismatch ... ok [INFO] [stdout] test gradient_magnitude::tests::test_normalize_magnitude ... ok [INFO] [stdout] test gradient_magnitude::tests::test_pipeline_with_nms ... ok [INFO] [stdout] test gradient_magnitude::tests::test_prewitt_and_scharr_operators ... ok [INFO] [stdout] test guided_filter::tests::test_apply_guide_length_mismatch ... ok [INFO] [stdout] test guided_filter::tests::test_apply_u8_invalid_dimensions ... ok [INFO] [stdout] test gradient_magnitude::tests::test_non_maximum_suppression_thins_edges ... ok [INFO] [stdout] test gradient_magnitude::tests::test_nms_size_mismatch_error ... ok [INFO] [stdout] test gradient_magnitude::tests::test_vertical_edge_detected ... ok [INFO] [stdout] test gradient_magnitude::tests::test_zero_size_error ... ok [INFO] [stdout] test guided_filter::tests::test_apply_with_separate_guide_output_length ... ok [INFO] [stdout] test guided_filter::tests::test_edge_preservation_with_small_eps ... ok [INFO] [stdout] test guided_filter::tests::test_apply_u8_output_length ... ok [INFO] [stdout] test guided_filter::tests::test_multichannel_uniform_unchanged ... ok [INFO] [stdout] test guided_filter::tests::test_multichannel_output_length ... ok [INFO] [stdout] test guided_filter::tests::test_apply_u8_uniform_image_unchanged ... ok [INFO] [stdout] test hdr_bracket::tests::test_assemble_hdr_basic ... ok [INFO] [stdout] test guided_filter::tests::test_params_default_reasonable ... ok [INFO] [stdout] test hdr_bracket::tests::test_bracketed_exposure_bad_size ... ok [INFO] [stdout] test guided_filter::tests::test_multichannel_zero_channels_error ... ok [INFO] [stdout] test guided_filter::tests::test_self_guided_invalid_length ... ok [INFO] [stdout] test hdr_bracket::tests::test_bracketed_exposure_bad_time ... ok [INFO] [stdout] test guided_filter::tests::test_self_guided_output_length ... ok [INFO] [stdout] test guided_filter::tests::test_params_fields ... ok [INFO] [stdout] test guided_filter::tests::test_self_guided_zero_dimensions ... ok [INFO] [stdout] test hdr_bracket::tests::test_assemble_hdr_channel_mismatch ... ok [INFO] [stdout] test guided_filter::tests::test_self_guided_uniform_image_unchanged ... ok [INFO] [stdout] test hdr_bracket::tests::test_bracketed_exposure_sample ... ok [INFO] [stdout] test hdr_bracket::tests::test_hat_weight_normalised_range ... ok [INFO] [stdout] test hdr_bracket::tests::test_hdr_max_min_radiance ... ok [INFO] [stdout] test hdr_bracket::tests::test_bracketed_exposure_creation ... ok [INFO] [stdout] test hdr_bracket::tests::test_recover_response_curve_needs_two ... ok [INFO] [stdout] test hdr_bracket::tests::test_response_curve_linear_monotonic ... ok [INFO] [stdout] test hdr_bracket::tests::test_different_dimensions_rejected ... ok [INFO] [stdout] test hdr_bracket::tests::test_response_curve_smoothness ... ok [INFO] [stdout] test hdr_bracket::tests::test_hat_weight_boundaries ... ok [INFO] [stdout] test convolution::tests::kernel_new_panics_on_wrong_len ... ok [INFO] [stdout] test hdr_bracket::tests::test_hdr_radiance_map_sample ... ok [INFO] [stdout] test hdr_bracket::tests::test_tone_map_empty ... ok [INFO] [stdout] test hdr_bracket::tests::test_hat_weight_midpoint ... ok [INFO] [stdout] test hdr_bracket::tests::test_tone_map_reinhard_range ... ok [INFO] [stdout] test hdr_bracket::tests::test_to_ldr_u8_clamping ... ok [INFO] [stdout] test hdr_merge::tests::test_compute_luminance_black ... ok [INFO] [stdout] test hdr_merge::tests::test_compute_luminance_bt709_coefficients ... ok [INFO] [stdout] test hdr_merge::tests::test_compute_luminance_white ... ok [INFO] [stdout] test hdr_merge::tests::test_contrast_weight_flat ... ok [INFO] [stdout] test hdr_merge::tests::test_contrast_weight_short_patch ... ok [INFO] [stdout] test hdr_merge::tests::test_contrast_weight_spike ... ok [INFO] [stdout] test hdr_merge::tests::test_exposed_frame_pixel_count ... ok [INFO] [stdout] test hdr_merge::tests::test_merge_hdr_mertens_empty_frames ... ok [INFO] [stdout] test hdr_bracket::tests::test_to_ldr_u8_range ... ok [INFO] [stdout] test hdr_merge::tests::test_well_exposedness_midpoint_is_max ... ok [INFO] [stdout] test frequency_domain::tests::test_dft_row_empty ... ok [INFO] [stdout] test hdr_merge::tests::test_tone_map_reinhard_empty ... ok [INFO] [stdout] test heif::tests::test_extract_metadata_no_dimensions ... ok [INFO] [stdout] test heif::tests::test_extract_metadata_with_dimensions ... ok [INFO] [stdout] test heif::tests::test_find_box_found ... ok [INFO] [stdout] test heif::tests::test_find_box_not_found ... ok [INFO] [stdout] test heif::tests::test_ftyp_is_heic ... ok [INFO] [stdout] test heif::tests::test_ftyp_is_avif ... ok [INFO] [stdout] test heif::tests::test_ftyp_major_brand_str ... ok [INFO] [stdout] test heif::tests::test_parse_boxes_empty_data ... ok [INFO] [stdout] test hdr_merge::tests::test_tone_map_reinhard_values_in_range ... ok [INFO] [stdout] test heif::tests::test_heif_item_location_parse_empty ... ok [INFO] [stdout] test hdr_merge::tests::test_tone_map_reinhard_output_size ... ok [INFO] [stdout] test hdr_merge::tests::test_well_exposedness_symmetry ... ok [INFO] [stdout] test hdr_merge::tests::test_merge_hdr_mertens_values_in_range ... ok [INFO] [stdout] test heif::tests::test_box_full_size ... ok [INFO] [stdout] test heif::tests::test_box_type_str ... ok [INFO] [stdout] test heif::tests::test_colr_nclx_parse ... ok [INFO] [stdout] test hdr_merge::tests::test_merge_hdr_mertens_output_size ... ok [INFO] [stdout] test heif::tests::test_extract_metadata_hdr ... ok [INFO] [stdout] test histogram_eq::tests::test_clahe_zero_tiles_error ... ok [INFO] [stdout] test histogram_eq::tests::test_equalize_global_full_gradient ... ok [INFO] [stdout] test heif::tests::test_parse_boxes_multiple ... ok [INFO] [stdout] test heif::tests::test_parse_boxes_truncated ... ok [INFO] [stdout] test histogram_eq::tests::test_equalize_global_increases_contrast ... ok [INFO] [stdout] test histogram_eq::tests::test_equalize_global_empty_error ... ok [INFO] [stdout] test heif::tests::test_parse_heif_no_ftyp ... ok [INFO] [stdout] test heif::tests::test_parse_boxes_single_ftyp ... ok [INFO] [stdout] test heif::tests::test_parse_ispe_property ... ok [INFO] [stdout] test heif::tests::test_parse_heif_empty_data ... ok [INFO] [stdout] test histogram_eq::tests::test_clahe_size_mismatch_error ... ok [INFO] [stdout] test histogram_eq::tests::test_luminance_wrong_length_error ... ok [INFO] [stdout] test histogram_eq::tests::test_luminance_only_hue_stability ... ok [INFO] [stdout] test histogram_eq::tests::test_per_channel_rgb_preserves_length ... ok [INFO] [stdout] test histogram_eq::tests::test_clahe_single_tile_matches_global ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_accumulate ... ok [INFO] [stdout] test histogram_eq::tests::test_equalize_global_uniform_image ... ok [INFO] [stdout] test histogram_ops::tests::test_equalization_lut ... ok [INFO] [stdout] test histogram_ops::tests::test_contrast_stretch_lut ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_cdf ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_accumulate_slice ... ok [INFO] [stdout] test histogram_eq::tests::test_build_lut_monotone ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_dynamic_range ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_empty_stats ... ok [INFO] [stdout] test histogram_ops::tests::test_apply_lut ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_from_f32 ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_mean ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_median ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_new_is_empty ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_mode ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_percentile ... ok [INFO] [stdout] test icc_embed::tests::test_convert_on_embed_incompatible ... ok [INFO] [stdout] test histogram_ops::tests::test_histogram_std_dev ... ok [INFO] [stdout] test icc_embed::tests::test_convert_on_embed_success ... ok [INFO] [stdout] test icc_embed::tests::test_embed_invalid_profile ... ok [INFO] [stdout] test icc_embed::tests::test_convert_on_embed_no_source ... ok [INFO] [stdout] test histogram_eq::tests::test_clahe_basic ... ok [INFO] [stdout] test icc_embed::tests::test_icc_color_space_display_adobe ... ok [INFO] [stdout] test histogram_ops::tests::test_rgb_histogram_from_data ... ok [INFO] [stdout] test icc_embed::tests::test_icc_color_space_display_srgb ... ok [INFO] [stdout] test icc_embed::tests::test_icc_profile_from_bytes_gray ... ok [INFO] [stdout] test icc_embed::tests::test_icc_profile_from_bytes_rgb ... ok [INFO] [stdout] test icc_embed::tests::test_icc_profile_from_bytes_short ... ok [INFO] [stdout] test icc_embed::tests::test_icc_profile_is_valid ... ok [INFO] [stdout] test icc_embed::tests::test_embed_profile_already_present ... ok [INFO] [stdout] test histogram_ops::tests::test_matching_lut_identity ... ok [INFO] [stdout] test icc_embed::tests::test_embed_profile_success ... ok [INFO] [stdout] test icc_embed::tests::test_icc_profile_is_valid_small ... ok [INFO] [stdout] test icc_embed::tests::test_strip_profile_none ... ok [INFO] [stdout] test icc_embed::tests::test_strip_profile_success ... ok [INFO] [stdout] test image::tests::test_image_data_planar ... ok [INFO] [stdout] test image_pyramid::tests::test_blend_pyramids_mask_zero ... ok [INFO] [stdout] test image::tests::test_frame_metadata ... ok [INFO] [stdout] test image::tests::test_image_frame_creation ... ok [INFO] [stdout] test image::tests::test_image_data_interleaved ... ok [INFO] [stdout] test image_pyramid::tests::test_blend_pyramids_uniform ... ok [INFO] [stdout] test image_pyramid::tests::test_downsample_2x_dimensions ... ok [INFO] [stdout] test image_pyramid::tests::test_downsample_2x_uniform_value ... ok [INFO] [stdout] test image_pyramid::tests::test_downsample_2x_odd_dimensions ... ok [INFO] [stdout] test image_pyramid::tests::test_f32_to_u8 ... ok [INFO] [stdout] test image_pyramid::tests::test_roundtrip_u8_f32_u8 ... ok [INFO] [stdout] test image_pyramid::tests::test_gaussian_blur_uniform ... ok [INFO] [stdout] test image_pyramid::tests::test_laplacian_from_gaussian ... ok [INFO] [stdout] test image_pyramid::tests::test_gaussian_pyramid_get ... ok [INFO] [stdout] test image_pyramid::tests::test_laplacian_reconstruct_gradient ... ok [INFO] [stdout] test image_pyramid::tests::test_u8_to_f32 ... ok [INFO] [stdout] test image_pyramid::tests::test_gaussian_pyramid_build ... ok [INFO] [stdout] test image_pyramid::tests::test_upsample_2x_dimensions ... ok [INFO] [stdout] test image_pyramid::tests::test_gaussian_pyramid_empty ... ok [INFO] [stdout] test image_pyramid::tests::test_upsample_2x_uniform ... ok [INFO] [stdout] test inpaint::tests::test_mask_coverage_pct_zero ... ok [INFO] [stdout] test inpaint::tests::test_mask_coverage_pct_full ... ok [INFO] [stdout] test inpaint::tests::test_mask_dimensions ... ok [INFO] [stdout] test inpaint::tests::test_mask_mark_and_query ... ok [INFO] [stdout] test inpaint::tests::test_fill_region_single_masked_pixel ... ok [INFO] [stdout] test inpaint::tests::test_fill_region_no_mask ... ok [INFO] [stdout] test inpaint::tests::test_mask_coverage_pct_half ... ok [INFO] [stdout] test inpaint::tests::test_mask_new_all_unmasked ... ok [INFO] [stdout] test inpaint::tests::test_mask_out_of_bounds_mark ... ok [INFO] [stdout] test inpaint::tests::test_method_quality_ordering ... ok [INFO] [stdout] test inpaint::tests::test_method_quality_values ... ok [INFO] [stdout] test image_pyramid::tests::test_laplacian_reconstruct_uniform ... ok [INFO] [stdout] test inpaint::tests::test_processor_patch_size_minimum ... ok [INFO] [stdout] test inpaint::tests::test_region_valid ... ok [INFO] [stdout] test inpaint::tests::test_processor_method_accessor ... ok [INFO] [stdout] test inpaint::tests::test_region_zero_width_invalid ... ok [INFO] [stdout] test image_pyramid::tests::test_laplacian_single_level ... ok [INFO] [stdout] test inpaint::tests::test_region_area ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_filter_output_length ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_filter_params_new ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_filter_params_default ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_inpaint_known_pixels_unchanged ... ok [INFO] [stdout] test image_pyramid::tests::test_gaussian_pyramid_single_level ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_filter_self_matches_guided_with_self ... ok [INFO] [stdout] test image_pyramid::tests::test_gaussian_blur_empty ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_filter_smooths_noise ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_filter_uniform_image_unchanged ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_config_default ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_config_new ... ok [INFO] [stdout] test image_pyramid::tests::test_gaussian_pyramid_level_sizes ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_inpaint_output_length ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_image_size_mismatch_returns_original ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_mask_size_mismatch_returns_original ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_method_equality ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_method_names ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_no_mask_navier ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_output_length_matches_input ... ok [INFO] [stdout] test inpainting::tests::test_distance_transform_all_masked ... ok [INFO] [stdout] test inpainting::tests::test_distance_transform_empty ... ok [INFO] [stdout] test inpainting::tests::test_distance_transform_no_mask ... ok [INFO] [stdout] test inpainting::tests::test_distance_transform_center_pixel ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_single_pixel_navier ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_no_mask_patchbased ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_no_mask_telea ... ok [INFO] [stdout] test inpainting::tests::test_inpaint_dispatch_navier ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_single_pixel_patchbased ... ok [INFO] [stdout] test inpainting::new_inpaint_tests::test_inpaint_single_pixel_telea ... ok [INFO] [stdout] test inpainting::tests::test_inpaint_dispatch_telea ... ok [INFO] [stdout] test inpainting::tests::test_mask_from_data_invalid_len ... ok [INFO] [stdout] test inpainting::tests::test_mask_from_threshold_invalid ... ok [INFO] [stdout] test inpainting::tests::test_mask_is_masked_out_of_bounds ... ok [INFO] [stdout] test inpainting::tests::test_mask_new ... ok [INFO] [stdout] test inpainting::tests::test_mask_region_count_two ... ok [INFO] [stdout] test inpainting::tests::test_method_names ... ok [INFO] [stdout] test inpainting::tests::test_mask_region_count_zero ... ok [INFO] [stdout] test inpainting::tests::test_inpaint_dispatch_patchmatch ... ok [INFO] [stdout] test inpainting::tests::test_mask_from_data_valid ... ok [INFO] [stdout] test inpainting::tests::test_mask_from_threshold ... ok [INFO] [stdout] test inpainting::tests::test_navier_convergence ... ok [INFO] [stdout] test inpainting::tests::test_mask_region_count_single ... ok [INFO] [stdout] test inpainting::tests::test_method_equality ... ok [INFO] [stdout] test inpainting::tests::test_navier_single_pixel ... ok [INFO] [stdout] test inpainting::tests::test_patchmatch_single_pixel ... ok [INFO] [stdout] test inpainting::tests::test_navier_no_mask ... ok [INFO] [stdout] test inpainting::tests::test_telea_single_pixel ... ok [INFO] [stdout] test inpainting::tests::test_telea_no_mask ... ok [INFO] [stdout] test inpainting::tests::test_telea_empty_image ... ok [INFO] [stdout] test inpainting::tests::test_patchmatch_no_mask ... ok [INFO] [stdout] test jpeg::tests::test_category_function ... ok [INFO] [stdout] test jpeg::tests::test_dct_idct_flat_block ... ok [INFO] [stdout] test jpeg::tests::test_dct_idct_ramp_block ... ok [INFO] [stdout] test jpeg::tests::test_extend_function ... ok [INFO] [stdout] test jpeg::tests::test_huffman_table_build_codes_unique ... ok [INFO] [stdout] test jpeg::tests::test_huffman_table_luma_dc_symbol_count ... ok [INFO] [stdout] test jpeg::tests::test_quant_table_quality_1 ... ok [INFO] [stdout] test jpeg::tests::test_quant_table_quality_100 ... ok [INFO] [stdout] test jpeg::tests::test_jpeg_decoder_rejects_invalid ... ok [INFO] [stdout] test jpeg::tests::test_quant_table_quality_50 ... ok [INFO] [stdout] test jpeg::tests::test_ycbcr_gray_roundtrip ... ok [INFO] [stdout] test jpeg::tests::test_jpeg_soi_marker ... ok [INFO] [stdout] test jpeg::tests::test_jpeg_encoder_produces_soi_eoi ... ok [INFO] [stdout] test lens_correct::tests::test_barrel_distortion_expands ... ok [INFO] [stdout] test lens_correct::tests::test_bilinear_sample_interpolated ... ok [INFO] [stdout] test lens_correct::tests::test_chromatic_aberration_identity ... ok [INFO] [stdout] test lens_correct::tests::test_distorted_radius_identity ... ok [INFO] [stdout] test jpeg::tests::test_ycbcr_rgb_roundtrip ... ok [INFO] [stdout] test lens_correct::tests::test_distortion_model_variants ... ok [INFO] [stdout] test jpeg::tests::test_zigzag_has_64_entries ... ok [INFO] [stdout] test lens_correct::tests::test_bilinear_sample_exact ... ok [INFO] [stdout] test lens_correct::tests::test_pincushion_distortion_contracts ... ok [INFO] [stdout] test lens_correct::tests::test_profile_correct_center ... ok [INFO] [stdout] test lens_correct::tests::test_vignette_center_no_correction ... ok [INFO] [stdout] test lens_correct::tests::test_vignette_zero_strength ... ok [INFO] [stdout] test lens_correct::tests::test_identity_distortion ... ok [INFO] [stdout] test lens_correct::tests::test_lens_profile_creation ... ok [INFO] [stdout] test lens_correct::tests::test_vignette_corner_higher_gain ... ok [INFO] [stdout] test lens_correct::tests::test_undistort_center_unchanged ... ok [INFO] [stdout] test metadata_xmp::tests::test_image_xmp_count ... ok [INFO] [stdout] test metadata_xmp::tests::test_image_xmp_remove_missing_returns_false ... ok [INFO] [stdout] test metadata_xmp::tests::test_image_xmp_remove_returns_true ... ok [INFO] [stdout] test metadata_xmp::tests::test_image_xmp_get_missing ... ok [INFO] [stdout] test metadata_xmp::tests::test_image_xmp_namespaces_deduped ... ok [INFO] [stdout] test metadata_xmp::tests::test_namespace_constants ... ok [INFO] [stdout] test inpaint::tests::test_method_patch_based_flag ... ok [INFO] [stdout] test metadata_xmp::tests::test_xmp_builder_build_count ... ok [INFO] [stdout] test metadata_xmp::tests::test_image_xmp_set_updates_existing ... ok [INFO] [stdout] test metadata_xmp::tests::test_image_xmp_set_get ... ok [INFO] [stdout] test metadata_xmp::tests::test_xmp_builder_creator_description_rights ... ok [INFO] [stdout] test jpeg::tests::test_zigzag_inv_roundtrip ... ok [INFO] [stdout] test jpeg::tests::test_zigzag_is_permutation ... ok [INFO] [stdout] test lens_correct::tests::test_chromatic_aberration_red_shift ... ok [INFO] [stdout] test metadata_xmp::tests::test_xmp_entry_new_fields ... ok [INFO] [stdout] test morphology::tests::close_fills_small_hole ... ok [INFO] [stdout] test morphology::tests::dilate_single_bright_pixel ... ok [INFO] [stdout] test morphology::tests::dilate_uniform_image ... ok [INFO] [stdout] test morphology::tests::erode_uniform_image ... ok [INFO] [stdout] test morphology::tests::morph_op_can_expand ... ok [INFO] [stdout] test morphology::tests::morph_op_names ... ok [INFO] [stdout] test morphology::tests::morph_op_copy ... ok [INFO] [stdout] test morphology::tests::open_removes_small_bright_spot ... ok [INFO] [stdout] test morphology::tests::struct_element_equality ... ok [INFO] [stdout] test metadata_xmp::tests::test_xmp_entry_qualified_name ... ok [INFO] [stdout] test morphology::tests::processor_exposes_element ... ok [INFO] [stdout] test metadata_xmp::tests::test_xmp_builder_subject_accumulates ... ok [INFO] [stdout] test metadata_xmp::tests::test_xmp_builder_title ... ok [INFO] [stdout] test morphology::tests::struct_element_rect_dimensions ... ok [INFO] [stdout] test morphology::tests::struct_element_square_area ... ok [INFO] [stdout] test morphology::tests::struct_element_zero_radius ... ok [INFO] [stdout] test mosaic::tests::test_compute_scale_contain ... ok [INFO] [stdout] test mosaic::tests::test_compute_scale_fill ... ok [INFO] [stdout] test mosaic::tests::test_contact_sheet_builder ... ok [INFO] [stdout] test mosaic::tests::test_compute_scale_stretch ... ok [INFO] [stdout] test mosaic::tests::test_contact_sheet_rounding ... ok [INFO] [stdout] test mosaic::tests::test_dimensions_aspect_ratio ... ok [INFO] [stdout] test mosaic::tests::test_dimensions_display ... ok [INFO] [stdout] test mosaic::tests::test_dimensions_new ... ok [INFO] [stdout] test mosaic::tests::test_dimensions_pixel_count ... ok [INFO] [stdout] test mosaic::tests::test_dimensions_zero_height ... ok [INFO] [stdout] test mosaic::tests::test_fill_color_presets ... ok [INFO] [stdout] test mosaic::tests::test_generate_layout_count ... ok [INFO] [stdout] test morphology::tests::erode_single_dark_pixel ... ok [INFO] [stdout] test mosaic::tests::test_generate_layout_indices ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_inpaint_masked_pixel_filled ... ok [INFO] [stdout] test mosaic::tests::test_mosaic_config_basic ... ok [INFO] [stdout] test mosaic::tests::test_mosaic_total_dimensions_no_gap ... ok [INFO] [stdout] test mosaic::tests::test_mosaic_total_dimensions_with_gap_and_margin ... ok [INFO] [stdout] test mosaic::tests::test_mosaic_cell_origin ... ok [INFO] [stdout] test multi_layer_exr::tests::test_channel_subsampling ... ok [INFO] [stdout] test morphology::tests::apply_panics_on_bad_input_len ... ok [INFO] [stdout] test multi_layer_exr::tests::test_channel_not_found ... ok [INFO] [stdout] test inpainting::guided_filter_tests::test_guided_inpaint_no_mask_unchanged ... ok [INFO] [stdout] test multi_layer_exr::tests::test_compression_round_trip ... ok [INFO] [stdout] test multi_layer_exr::tests::test_document_validate_duplicate_names ... ok [INFO] [stdout] test multi_layer_exr::tests::test_exr_rect_dimensions ... ok [INFO] [stdout] test multi_layer_exr::tests::test_exr_rect_intersection ... ok [INFO] [stdout] test multi_layer_exr::tests::test_exr_rect_union ... ok [INFO] [stdout] test multi_layer_exr::tests::test_document_creation ... ok [INFO] [stdout] test multi_layer_exr::tests::test_layer_builder_normals_channels ... ok [INFO] [stdout] test multi_layer_exr::tests::test_merge_channel ... ok [INFO] [stdout] test multi_layer_exr::tests::test_part_creation_and_pixel_access ... ok [INFO] [stdout] test multi_layer_exr::tests::test_part_fill_channel ... ok [INFO] [stdout] test multi_layer_exr::tests::test_part_validate_bad_length ... ok [INFO] [stdout] test multi_layer_exr::tests::test_pixel_out_of_bounds ... ok [INFO] [stdout] test multi_layer_exr::tests::test_part_validate_ok ... ok [INFO] [stdout] test multi_layer_exr::tests::test_channel_type_round_trip ... ok [INFO] [stdout] test multi_layer_exr::tests::test_exr_rect_empty ... ok [INFO] [stdout] test multi_layer_exr::tests::test_serialization_bad_length ... ok [INFO] [stdout] test noise_estimation::tests::test_box_blur_3_constant ... ok [INFO] [stdout] test multi_layer_exr::tests::test_serialization_round_trip ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_median_output_length ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_median_radius_0_passthrough ... ok [INFO] [stdout] test multi_layer_exr::tests::test_overall_display_window ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_bilateral_output_length ... ok [INFO] [stdout] test multi_layer_exr::tests::test_merge_creates_missing_channel ... ok [INFO] [stdout] test multi_layer_exr::tests::test_document_validate_empty ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_nlm_output_length ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_median_uniform_image ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_nlm_reduces_noise_energy ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_bilateral_preserves_range ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_bilateral_uniform_image ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_nlm_uniform_image ... ok [INFO] [stdout] test noise_estimation::tests::test_estimate_noise_profile_noise_type_present ... ok [INFO] [stdout] test noise_estimation::tests::test_estimate_noise_profile_snr_bounded ... ok [INFO] [stdout] test noise_estimation::tests::test_estimate_noise_profile_zero_noise ... ok [INFO] [stdout] test noise_estimation::tests::test_estimate_noise_sigma_constant_image ... ok [INFO] [stdout] test noise_estimation::tests::test_median_f32_even ... ok [INFO] [stdout] test noise_estimation::tests::test_estimate_noise_sigma_noisy_image ... ok [INFO] [stdout] test noise_estimation::tests::test_estimate_noise_sigma_too_small ... ok [INFO] [stdout] test noise_estimation::tests::test_median_f32_odd ... ok [INFO] [stdout] test noise_gen::tests::test_noise_config_default ... ok [INFO] [stdout] test noise_gen::tests::test_noise_field_get_set ... ok [INFO] [stdout] test noise_gen::tests::test_noise_field_invert ... ok [INFO] [stdout] test noise_gen::tests::test_film_grain_noise ... ok [INFO] [stdout] test noise_gen::tests::test_blend_noise_overlay ... ok [INFO] [stdout] test noise_gen::tests::test_blend_noise_additive ... ok [INFO] [stdout] test noise_gen::tests::test_noise_field_mean ... ok [INFO] [stdout] test noise_gen::tests::test_noise_field_new ... ok [INFO] [stdout] test noise_gen::tests::test_generate_salt_and_pepper ... ok [INFO] [stdout] test noise_gen::tests::test_noise_field_normalize ... ok [INFO] [stdout] test noise_gen::tests::test_generate_gaussian_noise ... ok [INFO] [stdout] test noise_gen::tests::test_noise_config_builder ... ok [INFO] [stdout] test histogram_eq::tests::test_per_channel_rgb_wrong_length_error ... ok [INFO] [stdout] test noise_gen::tests::test_generate_perlin_noise ... ok [INFO] [stdout] test noise_gen::tests::test_noise_field_threshold ... ok [INFO] [stdout] test noise_gen::tests::test_noise_stats ... ok [INFO] [stdout] test pattern::tests::test_extract_frame ... ok [INFO] [stdout] test pattern::tests::test_parse_hash_pattern ... ok [INFO] [stdout] test pattern::tests::test_format_printf ... ok [INFO] [stdout] test noise_gen::tests::test_noise_field_scale ... ok [INFO] [stdout] test pattern::tests::test_parse_printf_pattern ... ok [INFO] [stdout] test perspective_warp::tests::test_compose_with_inverse_is_identity ... ok [INFO] [stdout] test perspective_warp::tests::test_identity_homography_det ... ok [INFO] [stdout] test pattern::tests::test_format_hash ... ok [INFO] [stdout] test perspective_warp::tests::test_scaling_builder ... ok [INFO] [stdout] test perspective_warp::tests::test_inverse_of_identity_is_identity ... ok [INFO] [stdout] test noise_gen::tests::test_noise_reproducibility ... ok [INFO] [stdout] test perspective_warp::tests::test_singular_matrix_returns_error ... ok [INFO] [stdout] test perspective_warp::tests::test_identity_map_point ... ok [INFO] [stdout] test perspective_warp::tests::test_translation_builder ... ok [INFO] [stdout] test perspective_warp::tests::test_from_four_points_identity ... ok [INFO] [stdout] test perspective_warp::tests::test_from_array_roundtrip ... ok [INFO] [stdout] test perspective_warp::tests::test_warp_fill_used_for_out_of_bounds ... ok [INFO] [stdout] test pixel_pipeline::tests::test_clamp_stage ... ok [INFO] [stdout] test perspective_warp::tests::test_warp_size_mismatch_error ... ok [INFO] [stdout] test pixel_pipeline::tests::test_invert_stage ... ok [INFO] [stdout] test pixel_pipeline::tests::test_gain_stage_uniform ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pipeline_empty ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pipeline_stage_names ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pixel_f32_clamped ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pipeline_process_buffer ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pixel_f32_black ... ok [INFO] [stdout] test png::tests::test_apng_duration ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pixel_f32_new ... ok [INFO] [stdout] test perspective_warp::tests::test_warp_identity_preserves_image ... ok [INFO] [stdout] test pixel_pipeline::tests::test_desaturate_stage_luma ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pixel_f32_mul ... ok [INFO] [stdout] test pixel_pipeline::tests::test_gamma_stage_identity ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pixel_f32_white ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pipeline_len ... ok [INFO] [stdout] test pixel_pipeline::tests::test_pixel_f32_add ... ok [INFO] [stdout] test png::tests::test_apng_frame_count ... ok [INFO] [stdout] test png::tests::test_apng_encode_decode_roundtrip ... ok [INFO] [stdout] test png::tests::test_decode_invalid_signature ... ok [INFO] [stdout] test png::tests::test_crc32_known_values ... ok [INFO] [stdout] test png::tests::test_filter_up_reconstruction ... ok [INFO] [stdout] test png::tests::test_chunk_to_bytes_length_field ... ok [INFO] [stdout] test png::tests::test_chunk_type_str ... ok [INFO] [stdout] test png::tests::test_color_type_from_u8_invalid ... ok [INFO] [stdout] test png::tests::test_encode_decode_rgba_roundtrip ... ok [INFO] [stdout] test png::tests::test_encode_decode_grayscale_roundtrip ... ok [INFO] [stdout] test png::tests::test_crc32_chunk ... ok [INFO] [stdout] test png::tests::test_ihdr_roundtrip ... ok [INFO] [stdout] test png::tests::test_paeth_predictor_basic ... ok [INFO] [stdout] test png::tests::test_png_image_to_frame ... ok [INFO] [stdout] test png::tests::test_png_color_type_channels ... ok [INFO] [stdout] test png::tests::test_png_filter_from_u8_invalid ... ok [INFO] [stdout] test png::tests::test_encode_decode_rgb_roundtrip ... ok [INFO] [stdout] test png::tests::test_encode_produces_valid_signature ... ok [INFO] [stdout] test png::tests::test_filter_none_reconstruction ... ok [INFO] [stdout] test png::tests::test_filter_sub_reconstruction ... ok [INFO] [stdout] test png::tests::test_filter_average_reconstruction ... ok [INFO] [stdout] test pyramid::tests::gaussian_pyramid_empty_on_zero_levels ... ok [INFO] [stdout] test pyramid::tests::gaussian_pyramid_width_halves ... ok [INFO] [stdout] test pyramid::tests::image_pyramid_add_and_depth ... ok [INFO] [stdout] test pyramid::tests::image_pyramid_find_by_scale ... ok [INFO] [stdout] test pyramid::tests::image_pyramid_finest_coarsest ... ok [INFO] [stdout] test pyramid::tests::pyramid_level_is_invalid ... ok [INFO] [stdout] test pyramid::tests::pyramid_level_pixel_count ... ok [INFO] [stdout] test pyramid::tests::pyramid_level_scale_factor_level0 ... ok [INFO] [stdout] test quantize::tests::median_cut_empty_image_returns_empty ... ok [INFO] [stdout] test pyramid::tests::pyramid_level_scale_factor_level1 ... ok [INFO] [stdout] test pyramid::tests::gaussian_pyramid_build_levels ... ok [INFO] [stdout] test pyramid::tests::gaussian_pyramid_uniform_image_preserves_value ... ok [INFO] [stdout] test pyramid::tests::pyramid_level_is_valid ... ok [INFO] [stdout] test pyramid::tests::pyramid_level_scale_factor_level2 ... ok [INFO] [stdout] test png::tests::test_png_signature_bytes ... ok [INFO] [stdout] test quantize::tests::median_cut_each_palette_entry_valid_u8 ... ok [INFO] [stdout] test quantize::tests::median_cut_n_colors_zero_returns_empty ... ok [INFO] [stdout] test quantize::tests::median_cut_uniform_image_returns_one_representative ... ok [INFO] [stdout] test raw::tests::test_apply_white_balance_identity ... ok [INFO] [stdout] test raw::tests::test_apply_white_balance_clamp ... ok [INFO] [stdout] test raw::tests::test_bayer_channel_at_rggb ... ok [INFO] [stdout] test raw::tests::test_bayer_pattern_name ... ok [INFO] [stdout] test raw::tests::test_demosaic_bilinear_output_size ... ok [INFO] [stdout] test raw::tests::test_bayer_indices_rggb ... ok [INFO] [stdout] test quantize::tests::median_cut_two_distinct_colors ... ok [INFO] [stdout] test quantize::tests::median_cut_respects_n_colors_limit ... ok [INFO] [stdout] test quantize::tests::median_cut_single_pixel ... ok [INFO] [stdout] test raw::tests::test_raw_format_display_name ... ok [INFO] [stdout] test raw::tests::test_raw_format_extension ... ok [INFO] [stdout] test raw::tests::test_raw_to_linear_black_level ... ok [INFO] [stdout] test raw::tests::test_raw_processor_process_output_size ... ok [INFO] [stdout] test raw::tests::test_raw_to_linear_clamp_above_white ... ok [INFO] [stdout] test raw::tests::test_raw_to_linear_degenerate_range ... ok [INFO] [stdout] test raw_decode::tests::test_apply_white_balance_clamping ... ok [INFO] [stdout] test raw::tests::test_raw_to_linear_midpoint ... ok [INFO] [stdout] test raw_decode::tests::test_apply_white_balance_scales ... ok [INFO] [stdout] test raw_decode::tests::test_apply_white_balance_identity ... ok [INFO] [stdout] test raw::tests::test_raw_image_info_pixel_count ... ok [INFO] [stdout] test raw_decode::tests::test_bayer_pattern_quad_offsets_bggr ... ok [INFO] [stdout] test raw::tests::test_raw_image_info_max_value_12bit ... ok [INFO] [stdout] test raw_decode::tests::test_raw_metadata_new ... ok [INFO] [stdout] test raw_decode::tests::test_bayer_pattern_quad_offsets_rggb ... ok [INFO] [stdout] test raw_decode::tests::test_white_balance_tungsten ... ok [INFO] [stdout] test raw_decode::tests::test_demosaic_bilinear_dimensions ... ok [INFO] [stdout] test raw_decode::tests::test_raw_metadata_insert_tag ... ok [INFO] [stdout] test raw_decode::tests::test_white_balance_apply ... ok [INFO] [stdout] test quantize::tests::median_cut_panics_on_wrong_length - should panic ... ok [INFO] [stdout] test raw_decode::tests::test_white_balance_daylight ... ok [INFO] [stdout] test raw_decode::tests::test_white_balance_default ... ok [INFO] [stdout] test rotate_flip::tests::test_flip_horizontal ... ok [INFO] [stdout] test rotate_flip::tests::test_flip_horizontal_twice_is_identity ... ok [INFO] [stdout] test raw_decode::tests::test_white_balance_normalised ... ok [INFO] [stdout] test raw_decode::tests::test_demosaic_bilinear_uniform ... ok [INFO] [stdout] test rotate_flip::tests::test_invalid_buffer_size ... ok [INFO] [stdout] test rotate_flip::tests::test_rotate_180_inverts_back ... ok [INFO] [stdout] test rotate_flip::tests::test_rotate_270_is_inverse_of_90 ... ok [INFO] [stdout] test rotate_flip::tests::test_flip_vertical_twice_is_identity ... ok [INFO] [stdout] test rotate_flip::tests::test_rotate_arbitrary_180_matches_rotate_180 ... ok [INFO] [stdout] test rotate_flip::tests::test_rotate_arbitrary_zero_angle ... ok [INFO] [stdout] test rotate_flip::tests::test_rotate_90_dimensions ... ok [INFO] [stdout] test rotate_flip::tests::test_transpose_dimensions ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_empty_image ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_full_rect_all_fg ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_default_config ... ok [INFO] [stdout] test rotate_flip::tests::test_rotate_90_content ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_label_enum ... ok [INFO] [stdout] test rotate_flip::tests::test_rotate_arbitrary_border_constant ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_binary_mask_values ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_num_components_one ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_rect_outside_image ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_returns_correct_length ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_short_image_returns_empty ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_single_pixel ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_foreground_pixels_consistent ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_zero_iterations_gives_rect_as_fg ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_high_contrast_separates_regions ... ok [INFO] [stdout] test segmentation::tests::test_adaptive_otsu ... ok [INFO] [stdout] test segmentation::tests::test_boundary_mask_checkerboard ... ok [INFO] [stdout] test segmentation::tests::test_boundary_mask_uniform ... ok [INFO] [stdout] test segmentation::tests::test_gradient_uniform ... ok [INFO] [stdout] test segmentation::tests::test_gradient_edge ... ok [INFO] [stdout] test segmentation::tests::test_boundary_mask_two_regions ... ok [INFO] [stdout] test segmentation::tests::test_otsu_bimodal ... ok [INFO] [stdout] test segmentation::tests::test_otsu_empty ... ok [INFO] [stdout] test segmentation::tests::test_otsu_single_value ... ok [INFO] [stdout] test segmentation::tests::test_otsu_uniform ... ok [INFO] [stdout] test segmentation::tests::test_segment_map_get_label ... ok [INFO] [stdout] test segmentation::tests::test_segment_map_segment_size ... ok [INFO] [stdout] test segmentation::tests::test_segment_map_unique_labels ... ok [INFO] [stdout] test segmentation::tests::test_slic_empty ... ok [INFO] [stdout] test segmentation::tests::test_segment_map_new ... ok [INFO] [stdout] test segmentation::tests::test_slic_single_cluster ... ok [INFO] [stdout] test segmentation::tests::test_threshold_method_eq ... ok [INFO] [stdout] test segmentation::tests::test_slic_gradient_image ... ok [INFO] [stdout] test segmentation::tests::test_threshold_segment_all_below ... ok [INFO] [stdout] test segmentation::tests::test_threshold_segment_all_above ... ok [INFO] [stdout] test segmentation::tests::test_adaptive_triangle ... ok [INFO] [stdout] test segmentation::tests::test_triangle_bimodal ... ok [INFO] [stdout] test segmentation::tests::test_threshold_segment_basic ... ok [INFO] [stdout] test segmentation::tests::test_auto_threshold_methods ... ok [INFO] [stdout] test segmentation::tests::test_triangle_empty ... ok [INFO] [stdout] test segmentation::tests::test_triangle_single_value ... ok [INFO] [stdout] test separable_conv::tests::test_apply_separable_even_kernel_error ... ok [INFO] [stdout] test segmentation::tests::test_triangle_two_values ... ok [INFO] [stdout] test separable_conv::tests::test_apply_separable_identity_kernel ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_many_iterations_stable ... ok [INFO] [stdout] test segmentation::tests::test_triangle_unimodal_with_tail ... ok [INFO] [stdout] test segmentation::tests::test_slic_produces_labels ... ok [INFO] [stdout] test segmentation::tests::test_watershed_no_seeds ... ok [INFO] [stdout] test segmentation::tests::test_watershed_single_seed ... ok [INFO] [stdout] test segmentation::tests::test_watershed_empty ... ok [INFO] [stdout] test segmentation::tests::test_watershed_two_seeds ... ok [INFO] [stdout] test separable_conv::tests::test_apply_separable_size_mismatch_error ... ok [INFO] [stdout] test separable_conv::tests::test_box_blur_u8_uniform ... ok [INFO] [stdout] test separable_conv::tests::test_gaussian_blur_uniform_image_unchanged ... ok [INFO] [stdout] test separable_conv::tests::test_gaussian_kernel_symmetric ... ok [INFO] [stdout] test separable_conv::tests::test_resolve_index_reflect ... ok [INFO] [stdout] test separable_conv::tests::test_gaussian_kernel_sums_to_one ... ok [INFO] [stdout] test separable_conv::tests::test_resolve_index_zero_mode_out_of_bounds ... ok [INFO] [stdout] test separable_conv::tests::test_sobel_smooth_row_length ... ok [INFO] [stdout] test separable_conv::tests::test_gaussian_kernel_even_length_error ... ok [INFO] [stdout] test sequence::tests::test_duration_calculation ... ok [INFO] [stdout] test separable_conv::tests::test_resolve_index_replicate ... ok [INFO] [stdout] test sequence::tests::test_frame_path ... ok [INFO] [stdout] test sequence::tests::test_sequence_creation ... ok [INFO] [stdout] test stitch::tests::test_blend_weights_length ... ok [INFO] [stdout] test stitch::tests::test_extract_patch_clamped_border ... ok [INFO] [stdout] test stitch::tests::test_blend_weights_empty ... ok [INFO] [stdout] test stitch::tests::test_blend_weights_ramp ... ok [INFO] [stdout] test stitch::tests::test_extract_patch_within_bounds ... ok [INFO] [stdout] test stitch::tests::test_ncc_identical_patches ... ok [INFO] [stdout] test separable_conv::tests::test_box_kernel_zero_error ... ok [INFO] [stdout] test separable_conv::tests::test_gaussian_blur_reduces_peak ... ok [INFO] [stdout] test stitch::tests::test_overlap_region_partial ... ok [INFO] [stdout] test separable_conv::tests::test_box_kernel_sums_to_one ... ok [INFO] [stdout] test stitch::tests::test_panorama_builder_canvas_size ... ok [INFO] [stdout] test stitch::tests::test_ncc_inverted_patches ... ok [INFO] [stdout] test stitch::tests::test_panorama_builder_empty_canvas ... ok [INFO] [stdout] test separable_conv::tests::test_resolve_index_in_bounds ... ok [INFO] [stdout] test stitch::tests::test_ncc_uniform_patches_returns_zero ... ok [INFO] [stdout] test stitch::tests::test_overlap_region_full_containment ... ok [INFO] [stdout] test stitch::tests::test_overlap_region_adjacent_no_overlap ... ok [INFO] [stdout] test sequence::tests::test_sequence_with_gaps ... ok [INFO] [stdout] test stitch::tests::test_patch_area ... ok [INFO] [stdout] test stitch::tests::test_patch_x_end ... ok [INFO] [stdout] test stitch::tests::test_patch_overlap_method_delegates ... ok [INFO] [stdout] test stitch::tests::test_patch_y_end ... ok [INFO] [stdout] test stitch::tests::test_refine_patch_offsets_single_reference ... ok [INFO] [stdout] test stitch::tests::test_subpixel_offset_apply_to ... ok [INFO] [stdout] test stitch::tests::test_subpixel_align_correlation_clamped ... ok [INFO] [stdout] test stitch::tests::test_subpixel_offset_is_reliable ... ok [INFO] [stdout] test super_resolution::tests::test_default_config_values ... ok [INFO] [stdout] test stitch::tests::test_panorama_builder_patch_count ... ok [INFO] [stdout] test stitch::tests::test_subpixel_align_zero_offset ... ok [INFO] [stdout] test stitch::tests::test_panorama_builder_patch_order ... ok [INFO] [stdout] test super_resolution::tests::test_buffer_size_mismatch_rejected ... ok [INFO] [stdout] test super_resolution::tests::test_config_builder_clamping ... ok [INFO] [stdout] test super_resolution::tests::test_flat_image_stays_constant_no_sharpening ... ok [INFO] [stdout] test stitch::tests::test_refine_patch_offsets_empty_builder ... ok [INFO] [stdout] test super_resolution::tests::test_bicubic_gradient_continuity ... ok [INFO] [stdout] test super_resolution::tests::test_output_dimensions_x2 ... ok [INFO] [stdout] test tests::test_endian_native ... ok [INFO] [stdout] test super_resolution::tests::test_output_dimensions_x3 ... ok [INFO] [stdout] test super_resolution::tests::test_zero_dimensions_rejected ... ok [INFO] [stdout] test super_resolution::tests::test_scale_factor_multiplier ... ok [INFO] [stdout] test tests::test_pixel_type_is_float ... ok [INFO] [stdout] test super_resolution::tests::test_no_sharpening_vs_sharpening_differ ... ok [INFO] [stdout] test super_resolution::tests::test_rgba_upscale_channel_count ... ok [INFO] [stdout] test tests::test_pixel_type_bit_depth ... ok [INFO] [stdout] test tests::test_pixel_type_bytes ... ok [INFO] [stdout] test texture_analysis::tests::test_glcm_normalised_sums_to_one ... ok [INFO] [stdout] test texture_analysis::tests::test_glcm_symmetrize ... ok [INFO] [stdout] test texture_analysis::tests::test_haralick_contrast_checkerboard_high ... ok [INFO] [stdout] test texture_analysis::tests::test_glcm_uniform_image_diagonal ... ok [INFO] [stdout] test texture_analysis::tests::test_haralick_energy_uniform ... ok [INFO] [stdout] test texture_analysis::tests::test_lbp_basic_bin_count ... ok [INFO] [stdout] test texture_synthesis::tests::test_compute_glcm_empty ... ok [INFO] [stdout] test texture_analysis::tests::test_lbp_histogram_sums_to_one ... ok [INFO] [stdout] test texture_synthesis::tests::test_compute_glcm_normalized ... ok [INFO] [stdout] test texture_analysis::tests::test_texture_descriptor_feature_vector_length ... ok [INFO] [stdout] test texture_analysis::tests::test_lbp_uniform_bin_count ... ok [INFO] [stdout] test texture_analysis::tests::test_haralick_homogeneity_uniform_high ... ok [INFO] [stdout] test texture_synthesis::tests::test_compute_glcm_vertical ... ok [INFO] [stdout] test texture_synthesis::tests::test_count_transitions ... ok [INFO] [stdout] test texture_analysis::tests::test_haralick_to_vec_length ... ok [INFO] [stdout] test texture_synthesis::tests::test_count_uniform_patterns_8 ... ok [INFO] [stdout] test texture_synthesis::tests::test_features_high_contrast ... ok [INFO] [stdout] test texture_synthesis::tests::test_features_correlation_uniform ... ok [INFO] [stdout] test texture_synthesis::tests::test_features_is_finite ... ok [INFO] [stdout] test texture_synthesis::tests::test_compute_glcm_uniform ... ok [INFO] [stdout] test texture_analysis::tests::test_lbp_uniform_image_all_ones_or_zeros ... ok [INFO] [stdout] test texture_synthesis::tests::test_features_to_vec ... ok [INFO] [stdout] test texture_synthesis::tests::test_features_uniform_image ... ok [INFO] [stdout] test texture_synthesis::tests::test_glcm_new ... ok [INFO] [stdout] test texture_synthesis::tests::test_glcm_symmetrize ... ok [INFO] [stdout] test super_resolution::tests::test_output_values_in_range ... ok [INFO] [stdout] test texture_synthesis::tests::test_lbp_histogram_normalized ... ok [INFO] [stdout] test texture_synthesis::tests::test_lbp_uniform_image ... ok [INFO] [stdout] test texture_synthesis::tests::test_lbp_uniformity_empty ... ok [INFO] [stdout] test texture_synthesis::tests::test_lbp_uniformity_wrong_size ... ok [INFO] [stdout] test thumbnail_cache::tests::test_access_count_increments ... ok [INFO] [stdout] test thumbnail_cache::tests::test_cache_clear ... ok [INFO] [stdout] test thumbnail_cache::tests::test_cache_insert_and_get ... ok [INFO] [stdout] test thumbnail_cache::tests::test_cache_invalidate_prefix ... ok [INFO] [stdout] test super_resolution::tests::test_output_dimensions_x4 ... ok [INFO] [stdout] test texture_synthesis::tests::test_lbp_uniformity_uniform_image ... ok [INFO] [stdout] test thumbnail_cache::tests::test_cache_len_and_used_bytes ... ok [INFO] [stdout] test thumbnail_cache::tests::test_cache_miss_returns_none ... ok [INFO] [stdout] test thumbnail_cache::tests::test_cache_lru_eviction ... ok [INFO] [stdout] test thumbnail_cache::tests::test_evict_lru_on_empty_cache_is_noop ... ok [INFO] [stdout] test thumbnail_cache::tests::test_reinsertion_updates_data ... ok [INFO] [stdout] test thumbnail_cache::tests::test_cache_oversized_entry_rejected ... ok [INFO] [stdout] test thumbnail_cache::tests::test_usage_ratio_empty ... ok [INFO] [stdout] test thumbnail_cache::tests::test_capacity_getter ... ok [INFO] [stdout] test thumbnail_cache::tests::test_size_pixel_area ... ok [INFO] [stdout] test thumbnail_cache::tests::test_size_dimensions_icon ... ok [INFO] [stdout] test thumbnail_cache::tests::test_size_dimensions_custom ... ok [INFO] [stdout] test texture_synthesis::tests::test_lbp_n_points_clamped ... ok [INFO] [stdout] test tiled_convolution::tests::test_kernel_creation_valid ... ok [INFO] [stdout] test tiled_convolution::tests::test_kernel_creation_invalid_even_size ... ok [INFO] [stdout] test tiled_convolution::tests::test_kernel_creation_wrong_weight_count ... ok [INFO] [stdout] test tiled_convolution::tests::test_kernel_zero_divisor ... ok [INFO] [stdout] test tiled_convolution::tests::test_laplacian_kernel ... ok [INFO] [stdout] test tiled_convolution::tests::test_large_kernel_on_small_image ... ok [INFO] [stdout] test tiled_convolution::tests::test_box_blur_identity_on_constant ... ok [INFO] [stdout] test tiled_convolution::tests::test_empty_image_error ... ok [INFO] [stdout] test tiled_convolution::tests::test_gray_image_clamped_access ... ok [INFO] [stdout] test tiled_convolution::tests::test_single_pixel_image ... ok [INFO] [stdout] test tiled_convolution::tests::test_rgb_split_merge_round_trip ... ok [INFO] [stdout] test tiled_convolution::tests::test_sharpen_kernel ... ok [INFO] [stdout] test tiled_convolution::tests::test_tile_config_counts ... ok [INFO] [stdout] test tiled_convolution::tests::test_tile_generation ... ok [INFO] [stdout] test texture_synthesis::tests::test_lbp_empty ... ok [INFO] [stdout] test tone_curve::tests::test_apply_to_buffer ... ok [INFO] [stdout] test thumbnail_cache::tests::test_usage_ratio_full ... ok [INFO] [stdout] test tiled_convolution::tests::test_gaussian_kernel ... ok [INFO] [stdout] test tiled_convolution::tests::test_rgb_parallel_convolution ... ok [INFO] [stdout] test tiled_convolution::tests::test_tiled_matches_full_convolution ... ok [INFO] [stdout] test tone_curve::tests::test_average_slope_linear ... ok [INFO] [stdout] test tone_curve::tests::test_linear_curve ... ok [INFO] [stdout] test tone_curve::tests::test_gamma_curve ... ok [INFO] [stdout] test tone_curve::tests::test_linearize_srgb ... ok [INFO] [stdout] test tone_curve::tests::test_pq_curve ... ok [INFO] [stdout] test tone_curve::tests::test_rec709_curve ... ok [INFO] [stdout] test tone_curve::tests::test_sigmoid_curve ... ok [INFO] [stdout] test tone_curve::tests::test_srgb_curve ... ok [INFO] [stdout] test tone_curve::tests::test_curve_monotonicity ... ok [INFO] [stdout] test tone_curve::tests::test_srgb_roundtrip ... ok [INFO] [stdout] test tone_curve::tests::test_log_curve ... ok [INFO] [stdout] test transform::tests::test_compose_translate_scale ... ok [INFO] [stdout] test transform::tests::test_crop_basic ... ok [INFO] [stdout] test tone_curve::tests::test_lut_evaluation ... ok [INFO] [stdout] test transform::tests::test_flip_horizontal ... ok [INFO] [stdout] test tone_curve::tests::test_spline_curve ... ok [INFO] [stdout] test texture_synthesis::tests::test_glcm_get_set ... ok [INFO] [stdout] test transform::tests::test_flip_vertical ... ok [INFO] [stdout] test transform::tests::test_identity_apply ... ok [INFO] [stdout] test transform::tests::test_identity_compose ... ok [INFO] [stdout] test tiled_convolution::tests::test_parallel_matches_sequential ... ok [INFO] [stdout] test tone_curve::tests::test_hlg_curve ... ok [INFO] [stdout] test texture_synthesis::tests::test_glcm_out_of_bounds ... ok [INFO] [stdout] test transform::tests::test_resize_bilinear_same_size ... ok [INFO] [stdout] test transform::tests::test_resize_filter_support ... ok [INFO] [stdout] test transform::tests::test_resize_bilinear_upscale ... ok [INFO] [stdout] test transform::tests::test_rotate_90_cw ... ok [INFO] [stdout] test transform::tests::test_translate ... ok [INFO] [stdout] test transform::tests::test_scale ... ok [INFO] [stdout] test webp::tests::test_bit_reader_unexpected_eof ... ok [INFO] [stdout] test webp::tests::test_bit_writer_empty ... ok [INFO] [stdout] test webp::tests::test_bit_writer_reader_roundtrip ... ok [INFO] [stdout] test transform::tests::test_rotate_90_deg ... ok [INFO] [stdout] test webp::tests::test_encode_decode_rgba_frame_roundtrip ... ok [INFO] [stdout] test webp::tests::test_encode_unsupported_pixel_type ... ok [INFO] [stdout] test webp::tests::test_encode_decode_rgb_frame_roundtrip ... ok [INFO] [stdout] test webp::tests::test_unwrap_riff_bad_magic ... ok [INFO] [stdout] test webp::tests::test_unwrap_riff_too_small ... ok [INFO] [stdout] test webp::tests::test_vp8l_encode_decode_roundtrip_1x1 ... ok [INFO] [stdout] test webp::tests::test_vp8l_encode_decode_roundtrip_4x4 ... ok [INFO] [stdout] test webp::tests::test_vp8l_missing_signature ... ok [INFO] [stdout] test webp::tests::test_encode_unsupported_components ... ok [INFO] [stdout] test webp::tests::test_encode_decode_larger_image ... ok [INFO] [stdout] test webp::tests::test_vp8l_signature_is_0x2f ... ok [INFO] [stdout] test webp::tests::test_webp_info_from_bytes ... ok [INFO] [stdout] test webp::tests::test_webp_info_has_alpha_true_for_rgba ... ok [INFO] [stdout] test webp::tests::test_wrap_unwrap_riff_roundtrip ... ok [INFO] [stdout] test webp::tests::test_write_read_file_roundtrip ... ok [INFO] [stdout] test image_pyramid::tests::test_laplacian_empty ... ok [INFO] [stdout] test noise_estimation::tests::test_denoise_median_removes_impulse ... ok [INFO] [stdout] test rotate_flip::tests::test_flip_vertical ... ok [INFO] [stdout] test segmentation::grabcut_tests::test_grabcut_result_struct_fields ... ok [INFO] [stdout] test webp::tests::test_webp_info_too_small ... ok [INFO] [stdout] test hdr_bracket::tests::test_debevec_pipeline ... ok [INFO] [stdout] test hdr_bracket::tests::test_recover_response_curve_basic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1196 passed; 0 failed; 29 ignored; 0 measured; 0 filtered out; finished in 0.43s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_image [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test src/exr.rs - exr (line 16) - compile ... ok [INFO] [stdout] test src/lib.rs - (line 21) - compile ... ok [INFO] [stdout] test src/dng/mod.rs - dng (line 19) - compile ... ok [INFO] [stdout] test src/sequence.rs - sequence::ImageSequence::from_pattern (line 34) - compile ... ok [INFO] [stdout] test src/dpx.rs - dpx (line 15) - compile ... ok [INFO] [stdout] test src/bilateral_filter.rs - bilateral_filter (line 32) ... ok [INFO] [stdout] test src/sequence.rs - sequence::ImageSequence::read_frames_parallel (line 158) - compile ... ok [INFO] [stdout] test src/tiff.rs - tiff (line 16) - compile ... ok [INFO] [stdout] test src/perspective_warp.rs - perspective_warp (line 32) ... ok [INFO] [stdout] test src/adaptive_threshold.rs - adaptive_threshold (line 18) ... ok [INFO] [stdout] test src/rotate_flip.rs - rotate_flip (line 8) ... ok [INFO] [stdout] test src/guided_filter.rs - guided_filter::GuidedFilter (line 86) ... ok [INFO] [stdout] test src/guided_filter.rs - guided_filter (line 27) ... ok [INFO] [stdout] test src/focus_stack.rs - focus_stack (line 16) ... ok [INFO] [stdout] test src/pattern.rs - pattern::SequencePattern::parse (line 42) ... ok [INFO] [stdout] test src/alpha_composite.rs - alpha_composite (line 29) ... ok [INFO] [stdout] test src/film_grain.rs - film_grain::FilmGrainSynthesizer (line 298) ... ok [INFO] [stdout] test src/super_resolution.rs - super_resolution::SuperResolutionUpscaler (line 264) ... ok [INFO] [stdout] test src/thumbnail_cache.rs - thumbnail_cache::ThumbnailCache (line 92) ... ok [INFO] [stdout] test src/quantize.rs - quantize (line 10) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.66s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "843b23ce0cecc8ea08074e3cb350fca9c851108d3875e468920ecc6bbe0605e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "843b23ce0cecc8ea08074e3cb350fca9c851108d3875e468920ecc6bbe0605e1", kill_on_drop: false }` [INFO] [stdout] 843b23ce0cecc8ea08074e3cb350fca9c851108d3875e468920ecc6bbe0605e1