[INFO] fetching crate oximedia-lut 0.1.5...
[INFO] testing oximedia-lut-0.1.5 against 1.95.0 for beta-1.96-2
[INFO] extracting crate oximedia-lut 0.1.5 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate oximedia-lut 0.1.5
[INFO] finished tweaking crates.io crate oximedia-lut 0.1.5
[INFO] tweaked toml for crates.io crate oximedia-lut 0.1.5 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate oximedia-lut 0.1.5 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oximedia-lut 0.1.5 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9950c49509290d13282e4f38a928afefadda632996ede96d680a857f33c31bd1
[INFO] running `Command { std: "docker" "start" "-a" "9950c49509290d13282e4f38a928afefadda632996ede96d680a857f33c31bd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9950c49509290d13282e4f38a928afefadda632996ede96d680a857f33c31bd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9950c49509290d13282e4f38a928afefadda632996ede96d680a857f33c31bd1", kill_on_drop: false }`
[INFO] [stdout] 9950c49509290d13282e4f38a928afefadda632996ede96d680a857f33c31bd1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] be30c06fc6bb66e1fd91d3fa593612efe79d2804fdb5a68d7550b4b037ce3808
[INFO] running `Command { std: "docker" "start" "-a" "be30c06fc6bb66e1fd91d3fa593612efe79d2804fdb5a68d7550b4b037ce3808", kill_on_drop: false }`
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling oximedia-core v0.1.5
[INFO] [stderr]    Compiling oximedia-lut v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.81s
[INFO] running `Command { std: "docker" "inspect" "be30c06fc6bb66e1fd91d3fa593612efe79d2804fdb5a68d7550b4b037ce3808", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "be30c06fc6bb66e1fd91d3fa593612efe79d2804fdb5a68d7550b4b037ce3808", kill_on_drop: false }`
[INFO] [stdout] be30c06fc6bb66e1fd91d3fa593612efe79d2804fdb5a68d7550b4b037ce3808
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6e2068d7be807aac6636d55bc4586cad1eecd34afc891ffd93a4f1aec5dff810
[INFO] running `Command { std: "docker" "start" "-a" "6e2068d7be807aac6636d55bc4586cad1eecd34afc891ffd93a4f1aec5dff810", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling oximedia-core v0.1.5
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling oximedia-lut v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.40s
[INFO] running `Command { std: "docker" "inspect" "6e2068d7be807aac6636d55bc4586cad1eecd34afc891ffd93a4f1aec5dff810", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e2068d7be807aac6636d55bc4586cad1eecd34afc891ffd93a4f1aec5dff810", kill_on_drop: false }`
[INFO] [stdout] 6e2068d7be807aac6636d55bc4586cad1eecd34afc891ffd93a4f1aec5dff810
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ce074578b888e41315ebb5cc6563560686e64fef94b7581fe8bd00e258d543fc
[INFO] running `Command { std: "docker" "start" "-a" "ce074578b888e41315ebb5cc6563560686e64fef94b7581fe8bd00e258d543fc", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_lut-81b3ce0f45460b55)
[INFO] [stdout] 
[INFO] [stdout] running 550 tests
[INFO] [stdout] test aces::tests::test_acescct_round_trip ... ok
[INFO] [stdout] test aces::tests::test_aces_odt_rec709 ... ok
[INFO] [stdout] test aces::tests::test_aces_spaces ... ok
[INFO] [stdout] test baking::tests::test_combine_luts_1d_bakes_gain ... ok
[INFO] [stdout] test baking::tests::test_downsample_3d_lut_identity_preserved ... ok
[INFO] [stdout] test baking::tests::test_combine_luts_1d_identity_identity ... ok
[INFO] [stdout] test aces::tests::test_ap0_ap1_round_trip ... ok
[INFO] [stdout] test baking::tests::test_downsample_3d_lut_size_reduction ... ok
[INFO] [stdout] test baking::tests::test_identity_lut_empty ... ok
[INFO] [stdout] test baking::tests::test_invert_1d_lut_empty ... ok
[INFO] [stdout] test baking::tests::test_invert_1d_lut_identity ... ok
[INFO] [stdout] test baking::tests::test_identity_lut_size_4 ... ok
[INFO] [stdout] test baking::tests::test_invert_1d_lut_roundtrip ... ok
[INFO] [stdout] test baking::tests::test_sample_1d_clamping ... ok
[INFO] [stdout] test baking::tests::test_upsample_1d_lut ... ok
[INFO] [stdout] test baking::tests::test_upsample_1d_lut_empty ... ok
[INFO] [stdout] test baking::tests::test_upsample_1d_preserves_values ... ok
[INFO] [stdout] test builder::tests::test_hsv_round_trip ... ok
[INFO] [stdout] test builder::tests::test_lut1d_builder ... ok
[INFO] [stdout] test builder::tests::test_saturation ... ok
[INFO] [stdout] test chromatic::tests::test_adaptation_reversible ... ok
[INFO] [stdout] test chromatic::tests::test_bradford_adaptation ... ok
[INFO] [stdout] test chromatic::tests::test_same_white_point ... ok
[INFO] [stdout] test chromatic::tests::test_von_kries_adaptation ... ok
[INFO] [stdout] test color_cube::tests::test_bounding_box ... ok
[INFO] [stdout] test color_cube::tests::test_bounding_box_empty ... ok
[INFO] [stdout] test color_cube::tests::test_centroid_empty ... ok
[INFO] [stdout] test color_cube::tests::test_count_out_of_gamut ... ok
[INFO] [stdout] test color_cube::tests::test_cube_point_clamped ... ok
[INFO] [stdout] test color_cube::tests::test_cube_point_display ... ok
[INFO] [stdout] test chromatic::tests::test_xyz_scaling_adaptation ... ok
[INFO] [stdout] test color_cube::tests::test_cube_point_distance ... ok
[INFO] [stdout] test color_cube::tests::test_cube_point_luminance ... ok
[INFO] [stdout] test color_cube::tests::test_cube_point_is_in_gamut ... ok
[INFO] [stdout] test color_cube::tests::test_cube_point_to_from_array ... ok
[INFO] [stdout] test color_cube::tests::test_centroid ... ok
[INFO] [stdout] test color_cube::tests::test_cube_slice_get ... ok
[INFO] [stdout] test builder::tests::test_lut3d_builder ... ok
[INFO] [stdout] test colorspace::tests::test_colorspace_round_trip ... ok
[INFO] [stdout] test colorspace::tests::test_colorspace_self_convert ... ok
[INFO] [stdout] test color_cube::tests::test_cube_point_lerp ... ok
[INFO] [stdout] test colorspace::tests::test_pq_round_trip ... ok
[INFO] [stdout] test colorspace::tests::test_rec709_gamma_round_trip ... ok
[INFO] [stdout] test colorspace::tests::test_srgb_gamma_round_trip ... ok
[INFO] [stdout] test compose::tests::test_apply_lut_to_image_f64_identity ... ok
[INFO] [stdout] test compose::tests::test_apply_lut_to_image_rgb8_identity ... ok
[INFO] [stdout] test colorspace::tests::test_transfer_function_round_trip ... ok
[INFO] [stdout] test colorspace::tests::test_hlg_round_trip ... ok
[INFO] [stdout] test color_cube::tests::test_cube_sampler_total ... ok
[INFO] [stdout] test color_cube::tests::test_cube_slice_sample_count ... ok
[INFO] [stdout] test color_cube::tests::test_cube_point_new ... ok
[INFO] [stdout] test compose::tests::test_bake_1d_3d_identity_pre ... ok
[INFO] [stdout] test compose::tests::test_apply_lut_to_image_rgba8_identity ... ok
[INFO] [stdout] test baking::tests::test_combine_3d_luts_identity ... ok
[INFO] [stdout] test compose::tests::test_det3x3_singular ... ok
[INFO] [stdout] test compose::tests::test_bake_full_pipeline_gamma_roundtrip ... ok
[INFO] [stdout] test compose::tests::test_blend_3d_at_one_is_lut2 ... ok
[INFO] [stdout] test compose::tests::test_max_error_different_luts ... ok
[INFO] [stdout] test compose::tests::test_det3x3_identity ... ok
[INFO] [stdout] test compose::tests::test_compose_3d_scale ... ok
[INFO] [stdout] test compose::tests::test_max_error_identical_luts ... ok
[INFO] [stdout] test compose::tests::test_solve_linear_identity ... ok
[INFO] [stdout] test creative::tests::test_bleach_bypass_output_in_range ... ok
[INFO] [stdout] test creative::tests::test_cross_process_output_in_range ... ok
[INFO] [stdout] test creative::tests::test_blockbuster_output_in_range ... ok
[INFO] [stdout] test compose::tests::test_bake_3d_1d_identity_post ... ok
[INFO] [stdout] test compose::tests::test_invert_3d_identity ... ok
[INFO] [stdout] test creative::tests::test_day_for_night_darkens ... ok
[INFO] [stdout] test creative::tests::test_cross_process_zero_strength_is_identity ... ok
[INFO] [stdout] test creative::tests::test_log_c_decode_midgray ... ok
[INFO] [stdout] test creative::tests::test_blockbuster_boosts_contrast ... ok
[INFO] [stdout] test compose::tests::test_blend_3d_midpoint ... ok
[INFO] [stdout] test creative::tests::test_day_for_night_output_in_range ... ok
[INFO] [stdout] test compose::tests::test_compose_chain_single ... ok
[INFO] [stdout] test color_cube::tests::test_sampler_min_resolution ... ok
[INFO] [stdout] test compose::tests::test_bake_1d_3d_matches_sequential ... ok
[INFO] [stdout] test creative::tests::test_bleach_bypass_desaturates ... ok
[INFO] [stdout] test compose::tests::test_compose_chain_three ... ok
[INFO] [stdout] test creative::tests::test_smooth_step ... ok
[INFO] [stdout] test cube_writer::tests::test_config_invalid_domain ... ok
[INFO] [stdout] test creative::tests::test_vintage_lifts_black ... ok
[INFO] [stdout] test cube_writer::tests::test_config_builder ... ok
[INFO] [stdout] test cube_writer::tests::test_config_default_valid ... ok
[INFO] [stdout] test creative::tests::test_teal_orange_output_in_range ... ok
[INFO] [stdout] test cube_writer::tests::test_estimate_size_positive ... ok
[INFO] [stdout] test creative::tests::test_log_to_rec709_output_range ... ok
[INFO] [stdout] test cube_writer::tests::test_header_includes_comments ... ok
[INFO] [stdout] test cube_writer::tests::test_header_includes_domain ... ok
[INFO] [stdout] test cube_writer::tests::test_precision_clamp ... ok
[INFO] [stdout] test cube_writer::tests::test_write_1d_empty ... ok
[INFO] [stdout] test cube_writer::tests::test_write_1d_identity ... ok
[INFO] [stdout] test creative::tests::test_luminance_rec709 ... ok
[INFO] [stdout] test cube_writer::tests::test_write_1d_precision ... ok
[INFO] [stdout] test cube_writer::tests::test_write_3d_wrong_format ... ok
[INFO] [stdout] test domain_clamp::tests::test_clamp ... ok
[INFO] [stdout] test domain_clamp::tests::test_contains ... ok
[INFO] [stdout] test domain_clamp::tests::test_degenerate_channels_none ... ok
[INFO] [stdout] test domain_clamp::tests::test_domain_clamp_denormalise ... ok
[INFO] [stdout] test domain_clamp::tests::test_domain_clamp_normalise ... ok
[INFO] [stdout] test domain_clamp::tests::test_domain_clamp_per_channel ... ok
[INFO] [stdout] test domain_clamp::tests::test_domain_clamp_uniform ... ok
[INFO] [stdout] test domain_clamp::tests::test_domain_range_equal_expanded ... ok
[INFO] [stdout] test domain_clamp::tests::test_domain_range_default ... ok
[INFO] [stdout] test domain_clamp::tests::test_domain_range_swapped ... ok
[INFO] [stdout] test domain_clamp::tests::test_mirror ... ok
[INFO] [stdout] test cube_writer::tests::test_cube_format_label ... ok
[INFO] [stdout] test domain_clamp::tests::test_normalise_denormalise_roundtrip ... ok
[INFO] [stdout] test cube_writer::tests::test_write_3d_size_mismatch ... ok
[INFO] [stdout] test domain_clamp::tests::test_validator_not_covering_unit_cube ... ok
[INFO] [stdout] test domain_clamp::tests::test_wrap ... ok
[INFO] [stdout] test export::tests::test_export_1d_cube_clamps_values ... ok
[INFO] [stdout] test export::tests::test_export_1d_cube_contains_header ... ok
[INFO] [stdout] test export::tests::test_export_1d_cube_line_count ... ok
[INFO] [stdout] test creative::tests::test_vintage_zero_warmth_near_identity ... ok
[INFO] [stdout] test export::tests::test_export_3d_cube_comments ... ok
[INFO] [stdout] test cube_writer::tests::test_write_3d_identity_2 ... ok
[INFO] [stdout] test export::tests::test_export_3d_cube_size_2 ... ok
[INFO] [stdout] test domain_clamp::tests::test_span ... ok
[INFO] [stdout] test export::tests::test_export_csp_1d_data_count ... ok
[INFO] [stdout] test export::tests::test_export_csp_1d_header ... ok
[INFO] [stdout] test creative::tests::test_vintage_output_in_range ... ok
[INFO] [stdout] test creative::tests::test_teal_orange_preserves_neutral_approximately ... ok
[INFO] [stdout] test export::tests::test_lut_export_format_variants ... ok
[INFO] [stdout] test export::tests::test_parse_cube_1d_skips_comments ... ok
[INFO] [stdout] test export::tests::test_parse_cube_1d_wrong_size_error ... ok
[INFO] [stdout] test domain_clamp::tests::test_validator_covers_unit_cube ... ok
[INFO] [stdout] test domain_clamp::tests::test_validator_default_valid ... ok
[INFO] [stdout] test formats::cube::tests::test_parse_domain ... ok
[INFO] [stdout] test export::tests::test_parse_cube_1d_wrong_type_error ... ok
[INFO] [stdout] test export::tests::test_export_options_builder ... ok
[INFO] [stdout] test export::tests::test_roundtrip_1d_cube ... ok
[INFO] [stdout] test formats::cube::tests::test_parse_lut_size ... ok
[INFO] [stdout] test export::tests::test_parse_cube_3d_wrong_type_error ... ok
[INFO] [stdout] test gamut::tests::test_desaturate ... ok
[INFO] [stdout] test formats::cube::tests::test_parse_rgb_line ... ok
[INFO] [stdout] test formats::cube::tests::test_parse_title ... ok
[INFO] [stdout] test gamut::tests::test_gamut_distance ... ok
[INFO] [stdout] test gamut::tests::test_is_in_gamut ... ok
[INFO] [stdout] test gamut::tests::test_gamut_methods_preserve_in_gamut ... ok
[INFO] [stdout] test gamut::tests::test_soft_clip ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_aces_reference_is_soft_clip ... ok
[INFO] [stdout] test gamut::tests::test_clip_gamut ... ok
[INFO] [stdout] test formats::threedl::tests::test_parse_rgb_line ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_apply_clips_bright_pixel ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_apply_identity_pixel ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_build_creates_correct_size ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_config_default_power ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_deviation_from_identity_nonnegative ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_config_invalid_power ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_desaturate_is_not_soft_clip ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_hard_clip_is_not_soft_clip ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_hard_clip_lut_has_positive_deviation ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_method_label_hard_clip ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_soft_clip_is_soft_clip ... ok
[INFO] [stdout] test cube_writer::tests::test_cube_format_display ... ok
[INFO] [stdout] test hdr_lut::tests::test_hlg_peak_luminance ... ok
[INFO] [stdout] test hdr_lut::tests::test_forward_lut_is_not_inverse ... ok
[INFO] [stdout] test cube_writer::tests::test_write_1d_wrong_format ... ok
[INFO] [stdout] test hdr_lut::tests::test_labels ... ok
[INFO] [stdout] test hdr_lut::tests::test_lut_apply_clamped_above_one ... ok
[INFO] [stdout] test hdr_lut::tests::test_lut_apply_clamped_below_zero ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_config_is_valid ... ok
[INFO] [stdout] test hdr_lut::tests::test_pair_forward_apply_increases_for_hlg ... ok
[INFO] [stdout] test hdr_lut::tests::test_lut_correct_len ... ok
[INFO] [stdout] test export::tests::test_roundtrip_3d_cube ... ok
[INFO] [stdout] test hdr_lut::tests::test_pair_inverse_apply_nonnegative ... ok
[INFO] [stdout] test hdr_lut::tests::test_inverse_lut_is_inverse ... ok
[INFO] [stdout] test hdr_metadata::tests::test_content_light_level_typical ... ok
[INFO] [stdout] test hdr_lut::tests::test_pq_peak_luminance ... ok
[INFO] [stdout] test hdr_lut::tests::test_scene_referred_flags ... ok
[INFO] [stdout] test hdr_metadata::tests::test_hdr_standard_supports_dynamic ... ok
[INFO] [stdout] test hdr_metadata::tests::test_transfer_function_hlg_encode_decode ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_aces_filmic_zero ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_aces_filmic_one ... ok
[INFO] [stdout] test hdr_metadata::tests::test_transfer_function_pq_encode_decode ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_hdr_pipeline_default_params ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_reinhard_one ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_hdr_pipeline_process_frame ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_reinhard_extended_one ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_rgb_luma_black ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_reinhard_zero ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_rgb_luma_white ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_tone_map_pixel_output_range ... ok
[INFO] [stdout] test identity_lut::tests::test_generate_1d_endpoints ... ok
[INFO] [stdout] test identity_lut::tests::test_generate_1d_length ... ok
[INFO] [stdout] test identity_lut::tests::test_generate_3d_corner_black ... ok
[INFO] [stdout] test identity_lut::tests::test_generate_3d_corner_white ... ok
[INFO] [stdout] test identity_lut::tests::test_generate_3d_length ... ok
[INFO] [stdout] test identity_lut::tests::test_is_identity_1d_false_after_mutation ... ok
[INFO] [stdout] test identity_lut::tests::test_is_identity_1d_true ... ok
[INFO] [stdout] test hdr_metadata::tests::test_color_space_primaries_bt709 ... ok
[INFO] [stdout] test identity_lut::tests::test_is_identity_1d_wrong_size ... ok
[INFO] [stdout] test hdr_metadata::tests::test_mastering_display_p3_d65 ... ok
[INFO] [stdout] test identity_lut::tests::test_is_identity_3d_true ... ok
[INFO] [stdout] test identity_lut::tests::test_lut_delta_identity_vs_identity ... ok
[INFO] [stdout] test identity_lut::tests::test_lut_delta_size_mismatch_returns_none ... ok
[INFO] [stdout] test creative::tests::test_log_to_rec709_mid_gray_visible ... ok
[INFO] [stdout] test identity_lut::tests::test_lut_delta_detects_shift ... ok
[INFO] [stdout] test interpolation::tests::test_bilerp ... ok
[INFO] [stdout] test interpolation::tests::test_cubic_interp ... ok
[INFO] [stdout] test interpolation::tests::test_lerp ... ok
[INFO] [stdout] test interpolation::tests::test_lerp_rgb ... ok
[INFO] [stdout] test lut1d::tests::test_apply_single_clamp_high ... ok
[INFO] [stdout] test interpolation::tests::test_trilerp ... ok
[INFO] [stdout] test lut1d::tests::test_apply_single_gamma ... ok
[INFO] [stdout] test interpolation::tests::test_tetrahedral_vs_trilinear ... ok
[INFO] [stdout] test lut1d::tests::test_from_fn ... ok
[INFO] [stdout] test lut1d::tests::test_apply_single_identity ... ok
[INFO] [stdout] test lut1d::tests::test_compose_lut ... ok
[INFO] [stdout] test lut1d::tests::test_gamma_lut ... ok
[INFO] [stdout] test lut1d::tests::test_identity_lut ... ok
[INFO] [stdout] test lut1d::tests::test_interpolation_modes ... ok
[INFO] [stdout] test lut1d::tests::test_from_log_to_linear_black ... ok
[INFO] [stdout] test identity_lut::tests::test_lut_delta_count ... ok
[INFO] [stdout] test lut1d::tests::test_from_log_to_linear_size ... ok
[INFO] [stdout] test lut1d::tests::test_invert_lut ... ok
[INFO] [stdout] test lut3d::tests::test_apply_frame_empty ... ok
[INFO] [stdout] test lut1d::tests::test_from_log_to_linear_midpoint ... ok
[INFO] [stdout] test lut3d::tests::test_get_set ... ok
[INFO] [stdout] test hdr_pipeline::tests::test_tone_map_pixel_black ... ok
[INFO] [stdout] test gamut_compress_lut::tests::test_method_label_soft_clip ... ok
[INFO] [stdout] test lut3d::tests::test_apply_rgb_f32_identity ... ok
[INFO] [stdout] test lut3d::tests::test_from_fn ... ok
[INFO] [stdout] test lut3d::tests::test_identity_lut ... ok
[INFO] [stdout] test hdr_lut::tests::test_pair_forward_inverse_roundtrip_logc ... ok
[INFO] [stdout] test lut3d::tests::test_load_cube_missing_size_fails ... ok
[INFO] [stdout] test lut3d::tests::test_load_cube_with_title ... ok
[INFO] [stdout] test lut3d::tests::test_interpolation_consistency ... ok
[INFO] [stdout] test lut3d::tests::test_apply_frame_identity ... ok
[INFO] [stdout] test lut_analysis::tests::test_channel_stats_range ... ok
[INFO] [stdout] test lut_analysis::tests::test_achromatic_counted_separately ... ok
[INFO] [stdout] test lut_analysis::tests::test_chromaticity_identity_inside_rec709 ... ok
[INFO] [stdout] test lut_analysis::tests::test_clipping_detects_over ... ok
[INFO] [stdout] test lut3d::tests::test_size ... ok
[INFO] [stdout] test lut_analysis::tests::test_clipping_detects_under ... ok
[INFO] [stdout] test lut_analysis::tests::test_clipping_identity_no_clip ... ok
[INFO] [stdout] test lut_analysis::tests::test_colorimetric_shift_symmetric ... ok
[INFO] [stdout] test lut_analysis::tests::test_compare_gamut_coverage_empty ... ok
[INFO] [stdout] test lut_analysis::tests::test_coverage_percent_bounds ... ok
[INFO] [stdout] test lut3d::tests::test_compose ... ok
[INFO] [stdout] test lut_analysis::tests::test_coverage_percent ... ok
[INFO] [stdout] test lut_analysis::tests::test_compare_gamut_coverage_nonempty ... ok
[INFO] [stdout] test lut_analysis::tests::test_gamut_coverage_half_sdr ... ok
[INFO] [stdout] test lut_analysis::tests::test_rgb_to_chromaticity_black_is_none ... ok
[INFO] [stdout] test lut_analysis::tests::test_rgb_to_chromaticity_pure_red ... ok
[INFO] [stdout] test lut_analysis::tests::test_shift_from_identity_non_zero ... ok
[INFO] [stdout] test lut3d::tests::test_validate ... ok
[INFO] [stdout] test lut_analysis::tests::test_shift_from_identity_zero ... ok
[INFO] [stdout] test lut_analysis::tests::test_stats_identity_lut ... ok
[INFO] [stdout] test lut_analysis::tests::test_stats_mean_identity ... ok
[INFO] [stdout] test lut_analysis::tests::test_far_point_outside_gamut ... ok
[INFO] [stdout] test lut_analysis::tests::test_stats_std_dev ... ok
[INFO] [stdout] test compose::tests::test_blend_3d_at_zero_is_lut1 ... ok
[INFO] [stdout] test lut_analysis::tests::test_gamut_box_contains ... ok
[INFO] [stdout] test lut_analysis::tests::test_dci_p3_green_outside_rec709 ... ok
[INFO] [stdout] test lut_analysis::tests::test_gamut_coverage_identity_sdr ... ok
[INFO] [stdout] test lut_analysis::tests::test_rec2020_contains_more_than_rec709 ... ok
[INFO] [stdout] test lut_analysis::tests::test_white_point_inside_rec709 ... ok
[INFO] [stdout] test lut_chain::tests::test_chain_is_not_identity_when_one_differs ... ok
[INFO] [stdout] test lut_chain::tests::test_apply_1d_identity_passthrough ... ok
[INFO] [stdout] test lut_chain::tests::test_get_entry ... ok
[INFO] [stdout] test lut_chain::tests::test_entry_label ... ok
[INFO] [stdout] test lut_chain::tests::test_apply_3d_identity_passthrough ... ok
[INFO] [stdout] test lut_chain::tests::test_chain_apply_two_identities ... ok
[INFO] [stdout] test lut_chain::tests::test_chain_depth ... ok
[INFO] [stdout] test lut_chain::tests::test_chain_is_identity_all ... ok
[INFO] [stdout] test lut_chain::tests::test_non_identity_3d ... ok
[INFO] [stdout] test lut_chain::tests::test_normalise_fixed_size ... ok
[INFO] [stdout] test lut_chain::tests::test_normalise_largest ... ok
[INFO] [stdout] test lut_chain::tests::test_normalise_preserves_identity ... ok
[INFO] [stdout] test lut_chain::tests::test_normalise_1d ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_1d_errors ... ok
[INFO] [stdout] test lut_chain::tests::test_normalise_smallest ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_1d_same_size ... ok
[INFO] [stdout] test lut_chain::tests::test_identity_1d_detected ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_3d_downsample_accurate ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_3d_error_src_size ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_1d_upsample_identity ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_3d_same_size_noop ... ok
[INFO] [stdout] test lut_chain::tests::test_identity_3d_detected ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_3d_error_dst_size ... ok
[INFO] [stdout] test lut_chain::tests::test_validator_data_length_mismatch_3d ... ok
[INFO] [stdout] test lut_chain::tests::test_validator_empty_chain ... ok
[INFO] [stdout] test lut_chain::tests::test_validator_size_too_small ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_3d_upsample_identity_accurate ... ok
[INFO] [stdout] test lut_chain::tests::test_size_report_uniform ... ok
[INFO] [stdout] test lut_combine::tests::test_apply_1d_then_3d_identity ... ok
[INFO] [stdout] test lut_chain::tests::test_size_report_non_uniform ... ok
[INFO] [stdout] test lut_chain::tests::test_validator_valid_chain ... ok
[INFO] [stdout] test lut_combine::tests::test_apply_curve_clamping ... ok
[INFO] [stdout] test lut_chain::tests::test_non_identity_1d ... ok
[INFO] [stdout] test lut_combine::tests::test_apply_curve_endpoint_accuracy ... ok
[INFO] [stdout] test lut_combine::tests::test_apply_lut3d_clamps_input ... ok
[INFO] [stdout] test lut_combine::tests::test_apply_lut3d_identity ... ok
[INFO] [stdout] test lut_combine::tests::test_apply_sequential_identity_identity ... ok
[INFO] [stdout] test lut_combine::tests::test_bake_1d_then_3d_identity ... ok
[INFO] [stdout] test lut_combine::tests::test_is_identity_curve_false ... ok
[INFO] [stdout] test lut3d::tests::test_load_cube_minimal ... ok
[INFO] [stdout] test lut_combine::tests::test_is_identity_curve_true ... ok
[INFO] [stdout] test lut_combine::tests::test_bake_sequential_identity ... ok
[INFO] [stdout] test lut_dither::tests::test_bayer_threshold_2x2_range ... ok
[INFO] [stdout] test lut_dither::tests::test_bayer_threshold_wraps ... ok
[INFO] [stdout] test lut_combine::tests::test_apply_curve_identity ... ok
[INFO] [stdout] test lut_combine::tests::test_bake_sequential_produces_correct_size ... ok
[INFO] [stdout] test lut_combine::tests::test_is_identity_lut3d_false ... ok
[INFO] [stdout] test lut_dither::tests::test_bayer_threshold_4x4_range ... ok
[INFO] [stdout] test lut_combine::tests::test_is_identity_lut3d_true ... ok
[INFO] [stdout] test lut_dither::tests::test_dither_row_length ... ok
[INFO] [stdout] test lut_dither::tests::test_dither_psnr_known ... ok
[INFO] [stdout] test lut_dither::tests::test_dither_value_clamps ... ok
[INFO] [stdout] test lut_dither::tests::test_error_diffusion_1d_boundary ... ok
[INFO] [stdout] test lut_dither::tests::test_dither_rgb_same_quantization ... ok
[INFO] [stdout] test lut_dither::tests::test_dither_config_default_8bit ... ok
[INFO] [stdout] test lut_dither::tests::test_dither_psnr_identical ... ok
[INFO] [stdout] test lut_dither::tests::test_error_diffusion_1d_propagation ... ok
[INFO] [stdout] test lut_dither::tests::test_quantize_10bit ... ok
[INFO] [stdout] test lut_dither::tests::test_quantize_8bit ... ok
[INFO] [stdout] test lut_dither::tests::test_quantize_boundaries ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_display_format ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprint_1d ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprint_exact_deterministic ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprint_index_exact_lookup ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprint_perceptual_ignores_noise ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprint_exact_different_data ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprints_similar ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprint_perceptual_detects_large_diff ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprint_index_similar_lookup ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_to_bytes_roundtrip ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_zero_fingerprint ... ok
[INFO] [stdout] test lut_gradient::tests::test_classify_smoothness_linear ... ok
[INFO] [stdout] test lut_gradient::tests::test_classify_smoothness_step ... ok
[INFO] [stdout] test lut_gradient::tests::test_coefficient_of_variation ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_hamming_distance_known ... ok
[INFO] [stdout] test lut_gradient::tests::test_coefficient_of_variation_zero_mean ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_fingerprint_index_empty ... ok
[INFO] [stdout] test lut_fingerprint::tests::test_hamming_distance_zero ... ok
[INFO] [stdout] test lut_gradient::tests::test_compute_gradient_1d_basic ... ok
[INFO] [stdout] test lut_gradient::tests::test_compute_gradient_1d_empty ... ok
[INFO] [stdout] test lut_gradient::tests::test_detect_discontinuities_linear ... ok
[INFO] [stdout] test lut_gradient::tests::test_generate_gamma_ramp_single ... ok
[INFO] [stdout] test lut_gradient::tests::test_generate_linear_ramp ... ok
[INFO] [stdout] test lut_gradient::tests::test_gradient_stats_empty ... ok
[INFO] [stdout] test lut_gradient::tests::test_generate_gamma_ramp ... ok
[INFO] [stdout] test lut_gradient::tests::test_smoothness_score_linear ... ok
[INFO] [stdout] test lut_gradient::tests::test_generate_linear_ramp_empty ... ok
[INFO] [stdout] test lut_interpolation::tests::test_identity_nearest_corner ... ok
[INFO] [stdout] test lut_gradient::tests::test_smoothness_score_short ... ok
[INFO] [stdout] test lut_interpolation::tests::test_identity_nearest_mid ... ok
[INFO] [stdout] test lut_interpolation::tests::test_identity_tetrahedral_corner ... ok
[INFO] [stdout] test lut_interpolation::tests::test_identity_trilinear_midpoint ... ok
[INFO] [stdout] test lut_interpolation::tests::test_identity_tetrahedral_midpoint ... ok
[INFO] [stdout] test lut_interpolation::tests::test_quality_score_ordering ... ok
[INFO] [stdout] test lut_gradient::tests::test_gradient_stats_linear ... ok
[INFO] [stdout] test lut_interpolation::tests::test_quality_scores_values ... ok
[INFO] [stdout] test lut_gradient::tests::test_max_inflection_strength_linear ... ok
[INFO] [stdout] test lut_interpolation::tests::test_identity_trilinear_corner ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_1d_linear_midpoint ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_1d_linear_quarter_point ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_1d_nearest_clamps_out_of_range ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_1d_nearest_midpoint_snaps ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_3d_asymmetric_tetrahedral ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_3d_asymmetric_trilinear ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_1d_nearest_at_boundaries ... ok
[INFO] [stdout] test lut_io::tests::test_extension_csp ... ok
[INFO] [stdout] test lut_io::tests::test_extension_cube ... ok
[INFO] [stdout] test lut_gradient::tests::test_gradient_stats_range ... ok
[INFO] [stdout] test lut_io::tests::test_extension_dat ... ok
[INFO] [stdout] test lut_io::tests::test_memory_estimate_1d ... ok
[INFO] [stdout] test lut_io::tests::test_memory_estimate_3d ... ok
[INFO] [stdout] test lut_io::tests::test_parse_cube_1d_basic ... ok
[INFO] [stdout] test lut_io::tests::test_parse_cube_1d_missing_header_is_error ... ok
[INFO] [stdout] test lut_io::tests::test_parse_cube_1d_skips_comments ... ok
[INFO] [stdout] test lut_io::tests::test_parse_cube_1d_three_column_data ... ok
[INFO] [stdout] test lut_io::tests::test_parse_cube_1d_too_few_entries_is_error ... ok
[INFO] [stdout] test lut_io::tests::test_parse_cube_3d_header_basic ... ok
[INFO] [stdout] test lut_io::tests::test_parse_cube_3d_header_empty_title_is_ok ... ok
[INFO] [stdout] test lut_io::tests::test_parse_cube_3d_header_missing_size_is_error ... ok
[INFO] [stdout] test lut_io::tests::test_serialize_cube_1d_contains_size ... ok
[INFO] [stdout] test lut_io::tests::test_serialize_cube_1d_contains_title ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_1d_linear_at_boundaries ... ok
[INFO] [stdout] test lut_gradient::tests::test_second_derivative_linear ... ok
[INFO] [stdout] test lut_io::tests::test_serialize_then_parse_roundtrip ... ok
[INFO] [stdout] test lut_chain::tests::test_resample_3d_error_wrong_length ... ok
[INFO] [stdout] test lut_interpolation::tests::test_sample_1d_linear_clamps ... ok
[INFO] [stdout] test lut_metadata::tests::test_add_tag_and_has_tag ... ok
[INFO] [stdout] test lut_io::tests::test_is_text_based_mga_is_false ... ok
[INFO] [stdout] test lut_io::tests::test_from_extension_case_insensitive ... ok
[INFO] [stdout] test lut_metadata::tests::test_filter_by_tag_returns_matching ... ok
[INFO] [stdout] test lut_io::tests::test_is_text_based_cube_csp_dat ... ok
[INFO] [stdout] test lut_metadata::tests::test_find_by_title_found ... ok
[INFO] [stdout] test lut_metadata::tests::test_find_by_title_not_found ... ok
[INFO] [stdout] test lut_metadata::tests::test_collection_starts_empty ... ok
[INFO] [stdout] test lut_metadata::tests::test_filter_by_tag_returns_empty_when_none_match ... ok
[INFO] [stdout] test lut_metadata::tests::test_is_creative_false_without_tag ... ok
[INFO] [stdout] test lut_io::tests::test_extension_mga ... ok
[INFO] [stdout] test lut_metadata::tests::test_has_tag_false_when_empty ... ok
[INFO] [stdout] test lut_metadata::tests::test_collection_add_increases_count ... ok
[INFO] [stdout] test lut_metadata::tests::test_is_creative_true ... ok
[INFO] [stdout] test compose::tests::test_invert_3d_scale_roundtrip ... ok
[INFO] [stdout] test creative::tests::test_all_looks_size_33 ... ok
[INFO] [stdout] test lut_metadata::tests::test_metadata_incomplete_missing_creator ... ok
[INFO] [stdout] test lut_metadata::tests::test_metadata_incomplete_missing_input_space ... ok
[INFO] [stdout] test lut_metadata::tests::test_metadata_incomplete_missing_title ... ok
[INFO] [stdout] test lut_metadata::tests::test_metadata_incomplete_zero_timestamp ... ok
[INFO] [stdout] test lut_metadata::tests::test_metadata_is_complete_when_all_fields_set ... ok
[INFO] [stdout] test lut_metadata::tests::test_tag_labels ... ok
[INFO] [stdout] test lut_metadata::tests::test_metadata_incomplete_missing_output_space ... ok
[INFO] [stdout] test lut_provenance::tests::test_classify_domain ... ok
[INFO] [stdout] test lut_provenance::tests::test_classify_size ... ok
[INFO] [stdout] test lut_provenance::tests::test_metadata_field_as_f64_invalid ... ok
[INFO] [stdout] test lut_provenance::tests::test_kind_labels ... ok
[INFO] [stdout] test lut_provenance::tests::test_metadata_field_as_u64 ... ok
[INFO] [stdout] test lut_provenance::tests::test_classify_title ... ok
[INFO] [stdout] test lut_provenance::tests::test_metadata_field_unquoted ... ok
[INFO] [stdout] test lut_provenance::tests::test_classify_unknown ... ok
[INFO] [stdout] test lut_provenance::tests::test_parser_basic ... ok
[INFO] [stdout] test lut_provenance::tests::test_parser_comments ... ok
[INFO] [stdout] test lut_provenance::tests::test_parser_empty_input ... ok
[INFO] [stdout] test lut_provenance::tests::test_metadata_field_unquoted_no_quotes ... ok
[INFO] [stdout] test lut_provenance::tests::test_parser_provenance ... ok
[INFO] [stdout] test lut_provenance::tests::test_parser_skips_blank_lines ... ok
[INFO] [stdout] test lut_provenance::tests::test_provenance_complete ... ok
[INFO] [stdout] test lut_provenance::tests::test_provenance_incomplete ... ok
[INFO] [stdout] test lut_resample::tests::test_generate_identity_3d ... ok
[INFO] [stdout] test lut_resample::tests::test_max_resample_error_identical ... ok
[INFO] [stdout] test lut_resample::tests::test_max_resample_error_known ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_1d_linear_downsample ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_1d_empty ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_1d_nearest_upsample ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_1d_single ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_3d_identity_to_same_size ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_3d_nearest ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_1d_nearest_empty ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_3d_upsample_identity ... ok
[INFO] [stdout] test lut_stats::tests::test_channel_stats_dynamic_range_identity ... ok
[INFO] [stdout] test lut_stats::tests::test_channel_name ... ok
[INFO] [stdout] test lut_stats::tests::test_channel_stats_midpoint ... ok
[INFO] [stdout] test lut_stats::tests::test_channel_stats_empty_lut ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_1d_linear_upsample ... ok
[INFO] [stdout] test compose::tests::test_compose_3d_identity_identity ... ok
[INFO] [stdout] test lut_stats::tests::test_channel_stats_min_max_identity ... ok
[INFO] [stdout] test lut_stats::tests::test_lut3d_stats_clipping_detected_at_one ... ok
[INFO] [stdout] test lut_stats::tests::test_lut3d_stats_clipping_detected_at_zero ... ok
[INFO] [stdout] test lut_stats::tests::test_lut3d_stats_not_clipping_for_interior ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_config ... ok
[INFO] [stdout] test lut_stats::tests::test_channel_index ... ok
[INFO] [stdout] test lut_stats::tests::test_lut3d_stats_overall_max ... ok
[INFO] [stdout] test lut_validate::tests::test_check_identity_3d_false ... ok
[INFO] [stdout] test lut_stats::tests::test_lut3d_stats_overall_min ... ok
[INFO] [stdout] test lut_validate::tests::test_diagnostic_is_error ... ok
[INFO] [stdout] test lut_validate::tests::test_check_identity_3d_true ... ok
[INFO] [stdout] test lut_validate::tests::test_diagnostic_with_location ... ok
[INFO] [stdout] test lut_validate::tests::test_generate_identity_3d_length ... ok
[INFO] [stdout] test lut_validate::tests::test_is_standard_lut_size ... ok
[INFO] [stdout] test lut_validate::tests::test_monotonicity_increasing_passes ... ok
[INFO] [stdout] test lut_validate::tests::test_diagnostic_is_warning ... ok
[INFO] [stdout] test lut_validate::tests::test_max_identity_deviation ... ok
[INFO] [stdout] test lut_resample::tests::test_resample_1d_linear_identity ... ok
[INFO] [stdout] test lut_stats::tests::test_channel_stats_count ... ok
[INFO] [stdout] test lut_validate::tests::test_monotonicity_invalid_returns_none ... ok
[INFO] [stdout] test lut_validate::tests::test_monotonicity_non_monotonic_detected ... ok
[INFO] [stdout] test lut_validate::tests::test_monotonicity_violation_location_recorded ... ok
[INFO] [stdout] test lut_validate::tests::test_report_count_severity ... ok
[INFO] [stdout] test lut_validate::tests::test_smoothness_constant_lut_zero_gradient ... ok
[INFO] [stdout] test lut_validate::tests::test_strict_increasing_identity_passes ... ok
[INFO] [stdout] test lut_validate::tests::test_smoothness_discontinuity_detected ... ok
[INFO] [stdout] test lut_validate::tests::test_smoothness_gradient_stats_sane ... ok
[INFO] [stdout] test lut_validate::tests::test_strict_increasing_plateau_fails ... ok
[INFO] [stdout] test lut_validate::tests::test_validate_1d_empty_channel ... ok
[INFO] [stdout] test lut_validate::tests::test_validate_1d_good_channel ... ok
[INFO] [stdout] test lut_validate::tests::test_validate_1d_nan_detected ... ok
[INFO] [stdout] test lut_validate::tests::test_validate_3d_identity_passes ... ok
[INFO] [stdout] test lut_validate::tests::test_validate_1d_out_of_range ... ok
[INFO] [stdout] test lut_validate::tests::test_validate_3d_wrong_size ... ok
[INFO] [stdout] test lut_validate::tests::test_report_add_error_marks_failed ... ok
[INFO] [stdout] test lut_validate::tests::test_validator_default ... ok
[INFO] [stdout] test lut_validate::tests::test_validation_severity_display ... ok
[INFO] [stdout] test lut_version::tests::test_compatible_newer_minor ... ok
[INFO] [stdout] test lut_version::tests::test_compatible_same_version ... ok
[INFO] [stdout] test lut_version::tests::test_history_add_and_latest ... ok
[INFO] [stdout] test lut_version::tests::test_history_empty ... ok
[INFO] [stdout] test lut_validate::tests::test_smoothness_identity_lut_passes ... ok
[INFO] [stdout] test lut_version::tests::test_history_find_entry ... ok
[INFO] [stdout] test lut_version::tests::test_history_rejects_older_version ... ok
[INFO] [stdout] test lut_version::tests::test_history_rollback ... ok
[INFO] [stdout] test lut_version::tests::test_incompatible_different_major ... ok
[INFO] [stdout] test lut_version::tests::test_tag_label ... ok
[INFO] [stdout] test lut_version::tests::test_incompatible_older_minor ... ok
[INFO] [stdout] test lut_version::tests::test_tag_latest ... ok
[INFO] [stdout] test lut_version::tests::test_version_display ... ok
[INFO] [stdout] test lut_version::tests::test_version_ordering ... ok
[INFO] [stdout] test matrix::tests::test_apply_matrix3x3 ... ok
[INFO] [stdout] test matrix::tests::test_determinant ... ok
[INFO] [stdout] test matrix::tests::test_invert_matrix3x3 ... ok
[INFO] [stdout] test matrix::tests::test_multiply_matrix3x3 ... ok
[INFO] [stdout] test matrix::tests::test_rgb_xyz_round_trip ... ok
[INFO] [stdout] test matrix::tests::test_transpose ... ok
[INFO] [stdout] test preview::tests::test_analyze_1d_lut_boosted ... ok
[INFO] [stdout] test preview::tests::test_analyze_1d_lut_constant ... ok
[INFO] [stdout] test preview::tests::test_analyze_1d_lut_empty ... ok
[INFO] [stdout] test preview::tests::test_analyze_1d_lut_identity ... ok
[INFO] [stdout] test preview::tests::test_compute_lut_contrast_ratio_identity ... ok
[INFO] [stdout] test preview::tests::test_compute_lut_contrast_ratio_offset ... ok
[INFO] [stdout] test lut_validate::tests::test_smoothness_invalid_returns_none ... ok
[INFO] [stdout] test preview::tests::test_compute_lut_contrast_ratio_one_step ... ok
[INFO] [stdout] test preview::tests::test_compute_lut_saturation_change_identity ... ok
[INFO] [stdout] test preview::tests::test_compute_lut_saturation_change_tint ... ok
[INFO] [stdout] test lut_validate::tests::test_smoothness_sample_count ... ok
[INFO] [stdout] test preview::tests::test_gradient_preview_invert_lut ... ok
[INFO] [stdout] test preview::tests::test_gradient_preview_clamps_output ... ok
[INFO] [stdout] test preview::tests::test_gradient_preview_pixel_count ... ok
[INFO] [stdout] test preview::tests::test_gradient_swatch_new ... ok
[INFO] [stdout] test preview::tests::test_gradient_preview_identity_lut ... ok
[INFO] [stdout] test preview::tests::test_waveform_preview_len ... ok
[INFO] [stdout] test preview::tests::test_waveform_preview_empty ... ok
[INFO] [stdout] test temperature::tests::test_d65_temperature ... ok
[INFO] [stdout] test temperature::tests::test_presets ... ok
[INFO] [stdout] test temperature::tests::test_temperature_round_trip ... ok
[INFO] [stdout] test temperature::tests::test_temperature_shift ... ok
[INFO] [stdout] test tests::test_lut_size ... ok
[INFO] [stdout] test temperature::tests::test_warm_vs_cool ... ok
[INFO] [stdout] test tests::test_lut_size_from ... ok
[INFO] [stdout] test tetrahedral::tests::test_constant_lut_returns_constant ... ok
[INFO] [stdout] test tetrahedral::tests::test_identity_lut_midpoint ... ok
[INFO] [stdout] test tetrahedral::tests::test_select_tetrahedron_t0 ... ok
[INFO] [stdout] test tetrahedral::tests::test_identity_lut_corners_tetrahedral ... ok
[INFO] [stdout] test tetrahedral::tests::test_select_tetrahedron_t3 ... ok
[INFO] [stdout] test tetrahedral::tests::test_tetrahedral_vs_trilinear_identity ... ok
[INFO] [stdout] test tetrahedral::tests::test_trilinear_corners ... ok
[INFO] [stdout] test tonemap::tests::test_aces_filmic ... ok
[INFO] [stdout] test tonemap::tests::test_exposure ... ok
[INFO] [stdout] test temperature::tests::test_temperature_to_rgb ... ok
[INFO] [stdout] test tonemap::tests::test_luminance ... ok
[INFO] [stdout] test tetrahedral::tests::test_barycentric_weights_sum_to_one ... ok
[INFO] [stdout] test tetrahedral::tests::test_clamp_out_of_range ... ok
[INFO] [stdout] test tonemap::tests::test_tonemap_preserves_black ... ok
[INFO] [stdout] test tetrahedral::tests::test_larger_lut_size ... ok
[INFO] [stdout] test tetrahedral::tests::test_select_tetrahedron_t5 ... ok
[INFO] [stdout] test lut_validate::tests::test_monotonicity_decreasing_passes ... ok
[INFO] [stdout] test identity_lut::tests::test_is_identity_3d_false_after_mutation ... ok
[INFO] [stdout] test lut_provenance::tests::test_metadata_field_as_f64 ... ok
[INFO] [stdout] test lut_stats::tests::test_channel_stats_mean_identity ... ok
[INFO] [stdout] test lut_stats::tests::test_lut3d_stats_channel_stats_red ... ok
[INFO] [stdout] test lut_validate::tests::test_strict_increasing_failing_count ... ok
[INFO] [stdout] test tetrahedral::tests::test_select_tetrahedron_t1 ... ok
[INFO] [stdout] test tonemap::tests::test_hable ... ok
[INFO] [stdout] test tonemap::tests::test_reinhard ... ok
[INFO] [stdout] test formats::csp::tests::test_write_and_read_csp ... ok
[INFO] [stdout] test formats::threedl::tests::test_write_and_read_3dl ... ok
[INFO] [stdout] test formats::cube::tests::test_write_and_read_cube ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 550 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests oximedia_lut
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test src/compose.rs - compose::apply_lut_to_image_rgb8 (line 503) ... ok
[INFO] [stdout] test src/creative.rs - creative::generate_cross_process (line 168) ... ok
[INFO] [stdout] test src/compose.rs - compose::compose_chain (line 100) ... ok
[INFO] [stdout] test src/compose.rs - compose::max_error (line 633) ... ok
[INFO] [stdout] test src/compose.rs - compose::blend_3d (line 585) ... ok
[INFO] [stdout] test src/compose.rs - compose::bake_3d_1d (line 184) ... ok
[INFO] [stdout] test src/creative.rs - creative::generate_blockbuster (line 541) ... ok
[INFO] [stdout] test src/creative.rs - creative (line 18) ... ok
[INFO] [stdout] test src/compose.rs - compose (line 17) ... ok
[INFO] [stdout] test src/compose.rs - compose::bake_1d_3d (line 144) ... ok
[INFO] [stdout] test src/compose.rs - compose::bake_full_pipeline (line 219) ... ok
[INFO] [stdout] test src/compose.rs - compose::apply_lut_to_image_f64 (line 545) ... ok
[INFO] [stdout] test src/compose.rs - compose::apply_lut_to_image_rgba8 (line 451) ... ok
[INFO] [stdout] test src/lib.rs - (line 17) - compile ... ok
[INFO] [stdout] test src/creative.rs - creative::generate_bleach_bypass (line 391) ... ok
[INFO] [stdout] test src/compose.rs - compose::invert_3d (line 265) ... ok
[INFO] [stdout] test src/compose.rs - compose::compose_3d (line 60) ... ok
[INFO] [stdout] test src/lut3d.rs - lut3d (line 9) ... ok
[INFO] [stdout] test src/creative.rs - creative::generate_day_for_night (line 470) ... ok
[INFO] [stdout] test src/creative.rs - creative::generate_teal_orange (line 260) ... ok
[INFO] [stdout] test src/lut1d.rs - lut1d (line 9) ... ok
[INFO] [stdout] test src/creative.rs - creative::generate_log_to_rec709 (line 52) ... ok
[INFO] [stdout] test src/creative.rs - creative::generate_vintage (line 321) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.43s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ce074578b888e41315ebb5cc6563560686e64fef94b7581fe8bd00e258d543fc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ce074578b888e41315ebb5cc6563560686e64fef94b7581fe8bd00e258d543fc", kill_on_drop: false }`
[INFO] [stdout] ce074578b888e41315ebb5cc6563560686e64fef94b7581fe8bd00e258d543fc
