[INFO] fetching crate oximedia-calibrate 0.1.3... [INFO] testing oximedia-calibrate-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-calibrate 0.1.3 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate oximedia-calibrate 0.1.3 [INFO] finished tweaking crates.io crate oximedia-calibrate 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-calibrate 0.1.3 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-calibrate 0.1.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-calibrate 0.1.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7562769721e082ba94f532d06b5545da63e507533bd279a9ad80a8d97241758d [INFO] running `Command { std: "docker" "start" "-a" "7562769721e082ba94f532d06b5545da63e507533bd279a9ad80a8d97241758d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7562769721e082ba94f532d06b5545da63e507533bd279a9ad80a8d97241758d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7562769721e082ba94f532d06b5545da63e507533bd279a9ad80a8d97241758d", kill_on_drop: false }` [INFO] [stdout] 7562769721e082ba94f532d06b5545da63e507533bd279a9ad80a8d97241758d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ad00c88047928fdc56c4701ebf5d9606fbfa91a3829f109ff544460ed47cd050 [INFO] running `Command { std: "docker" "start" "-a" "ad00c88047928fdc56c4701ebf5d9606fbfa91a3829f109ff544460ed47cd050", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling oxifft v0.2.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling oximedia-cv v0.1.3 [INFO] [stderr] Compiling spin v0.10.0 [INFO] [stderr] Compiling jpeg-decoder v0.3.2 [INFO] [stderr] Compiling seahash v4.1.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling ndarray v0.17.2 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling oxifft-codegen v0.2.0 [INFO] [stderr] Compiling tokio v1.52.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling oxiarc-core v0.2.6 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling oxiarc-deflate v0.2.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling oximedia-core v0.1.3 [INFO] [stderr] Compiling oximedia-lut v0.1.3 [INFO] [stderr] Compiling oximedia-io v0.1.3 [INFO] [stderr] Compiling oximedia-codec v0.1.3 [INFO] [stderr] Compiling oximedia-calibrate v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.23s [INFO] running `Command { std: "docker" "inspect" "ad00c88047928fdc56c4701ebf5d9606fbfa91a3829f109ff544460ed47cd050", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad00c88047928fdc56c4701ebf5d9606fbfa91a3829f109ff544460ed47cd050", kill_on_drop: false }` [INFO] [stdout] ad00c88047928fdc56c4701ebf5d9606fbfa91a3829f109ff544460ed47cd050 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2571d23f45c2b8e2448871f97ce4254ee7cf7e6527936ce9c776e193cfde1d51 [INFO] running `Command { std: "docker" "start" "-a" "2571d23f45c2b8e2448871f97ce4254ee7cf7e6527936ce9c776e193cfde1d51", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling oximedia-core v0.1.3 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling oximedia-io v0.1.3 [INFO] [stderr] Compiling oximedia-lut v0.1.3 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling oximedia-codec v0.1.3 [INFO] [stderr] Compiling oximedia-cv v0.1.3 [INFO] [stderr] Compiling oximedia-calibrate v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 31.77s [INFO] running `Command { std: "docker" "inspect" "2571d23f45c2b8e2448871f97ce4254ee7cf7e6527936ce9c776e193cfde1d51", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2571d23f45c2b8e2448871f97ce4254ee7cf7e6527936ce9c776e193cfde1d51", kill_on_drop: false }` [INFO] [stdout] 2571d23f45c2b8e2448871f97ce4254ee7cf7e6527936ce9c776e193cfde1d51 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 5cd91c17dcdd6651ee261c9c9a06a4a86c4934454c839a9365cee11eed42966a [INFO] running `Command { std: "docker" "start" "-a" "5cd91c17dcdd6651ee261c9c9a06a4a86c4934454c839a9365cee11eed42966a", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_calibrate-a8fb4dbca534737d) [INFO] [stdout] [INFO] [stdout] running 511 tests [INFO] [stdout] test aging_model::tests::test_chromaticity_drift_tracker ... ok [INFO] [stdout] test aging_model::tests::test_chromaticity_predict_drift ... ok [INFO] [stdout] test aging_model::tests::test_display_technology_warmup ... ok [INFO] [stdout] test aging_model::tests::test_fit_insufficient_data ... ok [INFO] [stdout] test aging_model::tests::test_display_technology_half_life ... ok [INFO] [stdout] test aging_model::tests::test_hours_until_infinity ... ok [INFO] [stdout] test aging_model::tests::test_fit_model ... ok [INFO] [stdout] test aging_model::tests::test_luminance_decay_prediction ... ok [INFO] [stdout] test aging_model::tests::test_hours_until_threshold ... ok [INFO] [stdout] test aging_model::tests::test_luminance_percent_remaining ... ok [INFO] [stdout] test aging_model::tests::test_recalibration_hours_estimate ... ok [INFO] [stdout] test aging_model::tests::test_recalibration_scheduler ... ok [INFO] [stdout] test aging_model::tests::test_thermal_drift_warmup ... ok [INFO] [stdout] test aging_model::tests::test_thermal_is_warmed_up ... ok [INFO] [stdout] test calibrate_report::tests::test_color_accuracy_empty ... ok [INFO] [stdout] test calibrate_report::tests::test_color_accuracy_metrics ... ok [INFO] [stdout] test calibrate_report::tests::test_color_accuracy_single ... ok [INFO] [stdout] test calibrate_report::tests::test_finding_fails ... ok [INFO] [stdout] test calibrate_report::tests::test_finding_passes ... ok [INFO] [stdout] test calibrate_report::tests::test_finding_severity_auto ... ok [INFO] [stdout] test calibrate_report::tests::test_finding_severity_ordering ... ok [INFO] [stdout] test calibrate_report::tests::test_pass_rate ... ok [INFO] [stdout] test calibrate_report::tests::test_format_report_summary ... ok [INFO] [stdout] test calibrate_report::tests::test_report_builder_pass ... ok [INFO] [stdout] test calibrate_report::tests::test_report_builder_warning ... ok [INFO] [stdout] test calibrate_report::tests::test_report_metadata ... ok [INFO] [stdout] test calibrate_report::tests::test_report_gray_balance ... ok [INFO] [stdout] test calibrate_report::tests::test_report_builder_fail ... ok [INFO] [stdout] test camera::calibrate::tests::test_calculate_patch_error ... ok [INFO] [stdout] test camera::calibrate::tests::test_apply_matrix_identity ... ok [INFO] [stdout] test camera::calibrate::tests::test_camera_calibrator_default ... ok [INFO] [stdout] test camera::calibrate::tests::test_camera_calibrator_new ... ok [INFO] [stdout] test camera::colorchecker::tests::test_classic24_reference ... ok [INFO] [stdout] test camera::colorchecker::tests::test_colorchecker_get_patch ... ok [INFO] [stdout] test camera::calibrate::tests::test_calibration_config_default ... ok [INFO] [stdout] test camera::colorchecker::tests::test_colorchecker_patch_count ... ok [INFO] [stdout] test camera::colorchecker::tests::test_colorchecker_type_grid_dimensions ... ok [INFO] [stdout] test camera::colorchecker::tests::test_colorchecker_type_patch_count ... ok [INFO] [stdout] test camera::colorchecker::tests::test_colorchecker_verify_patch_count ... ok [INFO] [stdout] test camera::colorchecker::tests::test_colorchecker_verify_patch_count_invalid ... ok [INFO] [stdout] test camera::colorchecker::tests::test_spydercheckr_reference ... ok [INFO] [stdout] test camera::profile::tests::test_camera_profile_identity ... ok [INFO] [stdout] test camera::profile::tests::test_camera_profile_levels ... ok [INFO] [stdout] test camera::profile::tests::test_camera_profile_json_roundtrip ... ok [INFO] [stdout] test chart_detection::tests::test_colorchecker24_patch_count ... ok [INFO] [stdout] test chart_detection::tests::test_detected_chart_exactly_5deg_not_aligned ... ok [INFO] [stdout] test camera::profile::tests::test_camera_profile_validate ... ok [INFO] [stdout] test camera::profile::tests::test_camera_profile_validate_invalid ... ok [INFO] [stdout] test camera::profile::tests::test_camera_profile_white_balance ... ok [INFO] [stdout] test chart_detection::tests::test_detected_chart_is_valid_above_threshold ... ok [INFO] [stdout] test camera::profile::tests::test_profile_quality_iterations ... ok [INFO] [stdout] test chart_detection::tests::test_detected_chart_is_valid_below_threshold ... ok [INFO] [stdout] test camera::profile::tests::test_profile_quality_threshold ... ok [INFO] [stdout] test chart_detection::tests::test_detected_chart_negative_rotation_aligned ... ok [INFO] [stdout] test chart_detection::tests::test_detected_chart_is_aligned_within_5deg ... ok [INFO] [stdout] test chart_detection::tests::test_has_color_patches_true ... ok [INFO] [stdout] test chart_detection::tests::test_detected_chart_not_aligned_beyond_5deg ... ok [INFO] [stdout] test chart_detection::tests::test_patch_area ... ok [INFO] [stdout] test chart_detection::tests::test_detected_chart_patch_count ... ok [INFO] [stdout] test chart_detection::tests::test_patch_area_zero ... ok [INFO] [stdout] test chart_detection::tests::test_patch_center ... ok [INFO] [stdout] test chart_detection::tests::test_dsci_patch_count ... ok [INFO] [stdout] test chart_detection::tests::test_gretagmacbeth_patch_count ... ok [INFO] [stdout] test chart_detection::tests::test_has_color_patches_false_for_resolution ... ok [INFO] [stdout] test chart_detection::tests::test_xrite_patch_count ... ok [INFO] [stdout] test chromatic::adapt::tests::test_cat02_adaptation ... ok [INFO] [stdout] test chromatic::adapt::tests::test_multiply_matrices ... ok [INFO] [stdout] test chromatic::adapt::tests::test_chromatic_adaptation_new ... ok [INFO] [stdout] test chromatic::adapt::tests::test_von_kries_adaptation ... ok [INFO] [stdout] test chromatic::adapt::tests::test_bradford_same_illuminant ... ok [INFO] [stdout] test chart_detection::tests::test_iso_resolution_patch_count ... ok [INFO] [stdout] test chromatic::adapt::tests::test_adapt_xyz ... ok [INFO] [stdout] test chromatic::cat16::tests::test_adapt_non_negative_output ... ok [INFO] [stdout] test chromatic::cat16::tests::test_adapt_d65_d65_preserves_all_channels ... ok [INFO] [stdout] test chromatic::adapt::tests::test_xyz_scaling ... ok [INFO] [stdout] test chromatic::cat16::tests::test_adapt_same_illuminant_is_identity ... ok [INFO] [stdout] test chromatic::cat16::tests::test_adapt_white_d50_to_d65_maps_white ... ok [INFO] [stdout] test chromatic::cat16::tests::test_adapt_white_d65_to_d50_maps_white ... ok [INFO] [stdout] test chromatic::cat16::tests::test_adapt_zero_colour ... ok [INFO] [stdout] test chromatic::cat16::tests::test_adaptation_matrix_maps_white ... ok [INFO] [stdout] test chromatic::cat16::tests::test_cat16_matrix_times_inverse_is_identity ... ok [INFO] [stdout] test chromatic::cat16::tests::test_round_trip_d65_a_d65 ... ok [INFO] [stdout] test chromatic::cat16::tests::test_round_trip_d65_d50_d65 ... ok [INFO] [stdout] test chromatic::cat16::tests::test_xyz_to_cat16_equal_energy ... ok [INFO] [stdout] test chromatic::cat16::tests::test_xyz_to_cat16_round_trip ... ok [INFO] [stdout] test color_checker::tests::test_classic24_chromatic_count ... ok [INFO] [stdout] test color_checker::tests::test_classic24_neutral_count ... ok [INFO] [stdout] test chromatic::tests::test_cat16_d65_to_d65 ... ok [INFO] [stdout] test color_checker::tests::test_classic24_patch_count ... ok [INFO] [stdout] test color_checker::tests::test_custom_target ... ok [INFO] [stdout] test color_checker::tests::test_delta_e_identical ... ok [INFO] [stdout] test color_checker::tests::test_delta_e_known ... ok [INFO] [stdout] test color_checker::tests::test_find_patch_by_name ... ok [INFO] [stdout] test color_checker::tests::test_find_patch_missing ... ok [INFO] [stdout] test color_checker::tests::test_patch_at_position ... ok [INFO] [stdout] test color_checker::tests::test_compare_patches ... ok [INFO] [stdout] test color_checker::tests::test_patch_chroma ... ok [INFO] [stdout] test color_checker::tests::test_neutral_lightness_range ... ok [INFO] [stdout] test color_checker::tests::test_patch_hue_angle ... ok [INFO] [stdout] test color_space::tests::test_color_space_dci_p3_primaries ... ok [INFO] [stdout] test color_space::tests::test_color_space_equal_energy_white_point ... ok [INFO] [stdout] test color_checker::tests::test_neutral_avg_lightness ... ok [INFO] [stdout] test color_space::tests::test_color_space_rec2020_wider_red_primary ... ok [INFO] [stdout] test color_space::tests::test_color_space_rec709_white_point_d65 ... ok [INFO] [stdout] test color_space::tests::test_color_space_white_point_xyz_d65_rec709 ... ok [INFO] [stdout] test color_space::tests::test_compose_identity_with_self ... ok [INFO] [stdout] test color_space::tests::test_compose_two_scales ... ok [INFO] [stdout] test color_space::tests::test_dci_p3_primaries_values ... ok [INFO] [stdout] test color_space::tests::test_delta_e_76_identical_colours ... ok [INFO] [stdout] test color_space::tests::test_delta_e_76_white_vs_black ... ok [INFO] [stdout] test color_space::tests::test_identity_multiply_unchanged ... ok [INFO] [stdout] test color_space::tests::test_rec2020_wider_gamut_red ... ok [INFO] [stdout] test color_space::tests::test_rec709_white_point_d65 ... ok [INFO] [stdout] test color_space::tests::test_rgb_to_xyz_black_stays_black ... ok [INFO] [stdout] test color_space::tests::test_delta_e_76_known_distance ... ok [INFO] [stdout] test color_space::tests::test_rgb_to_xyz_identity_passes_through ... ok [INFO] [stdout] test color_space::tests::test_multiply_scales_red_channel ... ok [INFO] [stdout] test color_space::tests::test_rgb_to_xyz_then_lab_roundtrip_lightness ... ok [INFO] [stdout] test color_space::tests::test_xyz_to_lab_black_is_l0 ... ok [INFO] [stdout] test color_space::tests::test_xyz_to_lab_d65_white_is_l100 ... ok [INFO] [stdout] test color_space::tests::test_xyz_to_lab_l_positive_for_nonzero_y ... ok [INFO] [stdout] test delta_e::tests::test_de2000_identical_colors_zero ... ok [INFO] [stdout] test delta_e::tests::test_de2000_known_pair_sharma_1 ... ok [INFO] [stdout] test delta_e::tests::test_de2000_known_pair_sharma_2 ... ok [INFO] [stdout] test delta_e::tests::test_de2000_positive ... ok [INFO] [stdout] test delta_e::tests::test_de2000_white_vs_black_large ... ok [INFO] [stdout] test delta_e::tests::test_de2000_symmetry ... ok [INFO] [stdout] test delta_e::tests::test_de94_graphic_arts_vs_textiles_differ ... ok [INFO] [stdout] test delta_e::tests::test_de94_lightness_only_difference ... ok [INFO] [stdout] test delta_e::tests::test_de94_identical_colors_zero ... ok [INFO] [stdout] test delta_e::tests::test_de94_positive_for_different_colors ... ok [INFO] [stdout] test delta_e::tests::test_delta_e2000_identical ... ok [INFO] [stdout] test delta_e::tests::test_hue_angle_negative_a ... ok [INFO] [stdout] test delta_e::tests::test_hue_angle_positive ... ok [INFO] [stdout] test delta_e::tests::test_hue_angle_wraps_to_positive ... ok [INFO] [stdout] test delta_e::tests::test_tolerance_batch_all_pass ... ok [INFO] [stdout] test delta_e::tests::test_tolerance_batch_mixed ... ok [INFO] [stdout] test delta_e::tests::test_tolerance_fail_large_diff ... ok [INFO] [stdout] test delta_e::tests::test_tolerance_pass_identical ... ok [INFO] [stdout] test display::calibrate::tests::test_compute_contrast_ratio ... ok [INFO] [stdout] test display::calibrate::tests::test_compute_contrast_ratio_infinite ... ok [INFO] [stdout] test display::calibrate::tests::test_calibration_json_roundtrip ... ok [INFO] [stdout] test display::calibrate::tests::test_compute_primaries_matrix ... ok [INFO] [stdout] test display::calibrate::tests::test_display_calibrator_default ... ok [INFO] [stdout] test display::calibrate::tests::test_display_calibrator_new ... ok [INFO] [stdout] test display::calibrate::tests::test_display_config_default ... ok [INFO] [stdout] test display::calibrate::tests::test_measure_gamma_empty ... ok [INFO] [stdout] test display::gamma::tests::test_gamma_curve_apply ... ok [INFO] [stdout] test display::gamma::tests::test_gamma_correction_presets ... ok [INFO] [stdout] test display::gamma::tests::test_gamma_curve_clamping ... ok [INFO] [stdout] test display::gamma::tests::test_gamma_curve_linear ... ok [INFO] [stdout] test display::gamma::tests::test_gamma_curve_linearize ... ok [INFO] [stdout] test display::uniformity::tests::test_calculate_delta_e ... ok [INFO] [stdout] test display::gamma::tests::test_gamma_curve_new ... ok [INFO] [stdout] test display::uniformity::tests::test_uniformity_report_is_acceptable ... ok [INFO] [stdout] test display::uniformity::tests::test_uniformity_report_new ... ok [INFO] [stdout] test display::gamma::tests::test_gamma_curve_with_offsets ... ok [INFO] [stdout] test display::uniformity::tests::test_uniformity_test_analyze_perfect ... ok [INFO] [stdout] test display::uniformity::tests::test_uniformity_report_grade ... ok [INFO] [stdout] test display::uniformity::tests::test_uniformity_test_analyze_variation ... ok [INFO] [stdout] test display::gamma::tests::test_gamma_curve_roundtrip ... ok [INFO] [stdout] test display_verify::tests::chroma_distance_nonzero ... ok [INFO] [stdout] test display::uniformity::tests::test_uniformity_test_new ... ok [INFO] [stdout] test display_verify::tests::chroma_distance_to_self_is_zero ... ok [INFO] [stdout] test display_verify::tests::cinema_reference_not_hdr ... ok [INFO] [stdout] test display_verify::tests::bad_white_point_fails ... ok [INFO] [stdout] test display_verify::tests::custom_target_nits ... ok [INFO] [stdout] test display_verify::tests::hdr10_is_hdr ... ok [INFO] [stdout] test display_verify::tests::hdr10_peak_luminance ... ok [INFO] [stdout] test display_verify::tests::measure_black_level_clamps_negative ... ok [INFO] [stdout] test display_verify::tests::measure_white_point_d65_gives_zero ... ok [INFO] [stdout] test display_verify::tests::passing_result_passes_target ... ok [INFO] [stdout] test display_verify::tests::luminance_10pct_low_still_passes ... ok [INFO] [stdout] test display_verify::tests::summary_contains_pass ... ok [INFO] [stdout] test flare_correction::tests::test_config_builder ... ok [INFO] [stdout] test display_verify::tests::luminance_too_low_fails ... ok [INFO] [stdout] test flare_correction::tests::test_correct_measurements ... ok [INFO] [stdout] test display_verify::tests::sdr_not_hdr ... ok [INFO] [stdout] test flare_correction::tests::test_default_config ... ok [INFO] [stdout] test flare_correction::tests::test_estimate_from_black_patches ... ok [INFO] [stdout] test flare_correction::tests::test_estimate_from_contrast_target ... ok [INFO] [stdout] test display_verify::tests::hdr_black_level_strict ... ok [INFO] [stdout] test flare_correction::tests::test_estimate_from_empty_patches ... ok [INFO] [stdout] test flare_correction::tests::test_flare_rgb_average ... ok [INFO] [stdout] test display_verify::tests::sdr_peak_luminance ... ok [INFO] [stdout] test flare_correction::tests::test_flare_map_uniform ... ok [INFO] [stdout] test flare_correction::tests::test_flare_rgb_subtract_clamp ... ok [INFO] [stdout] test flare_correction::tests::test_flare_rgb_subtract ... ok [INFO] [stdout] test gamut::compress::tests::test_compress_image ... ok [INFO] [stdout] test flare_correction::tests::test_radial_flare_map ... ok [INFO] [stdout] test flare_correction::tests::test_flare_map_set_get ... ok [INFO] [stdout] test gamut::compress::tests::test_soft_clip ... ok [INFO] [stdout] test flare_correction::tests::test_flare_rgb_luminance ... ok [INFO] [stdout] test flare_correction::tests::test_flare_rgb_scale ... ok [INFO] [stdout] test gamut::compress::tests::test_soft_clip_over_threshold ... ok [INFO] [stdout] test gamut::map::tests::test_clip_out_of_gamut ... ok [INFO] [stdout] test gamut::map::tests::test_clip_in_gamut ... ok [INFO] [stdout] test gamut::map::tests::test_gamut_mapper_new ... ok [INFO] [stdout] test gamut::compress::tests::test_gamut_compression_new ... ok [INFO] [stdout] test gamut::map::tests::test_is_in_gamut ... ok [INFO] [stdout] test gamut::compress::tests::test_sigmoid ... ok [INFO] [stdout] test gamut::map::tests::test_map_image ... ok [INFO] [stdout] test gamut::map::tests::test_perceptual_in_gamut ... ok [INFO] [stdout] test gamut::compress::tests::test_rolloff ... ok [INFO] [stdout] test gamut::map::tests::test_saturation_mapping ... ok [INFO] [stdout] test gamut_checker::tests::analyze_frame_all_in_gamut ... ok [INFO] [stdout] test gamut_checker::tests::analyze_frame_detects_oog ... ok [INFO] [stdout] test gamut_checker::tests::analyze_frame_empty_pixels ... ok [INFO] [stdout] test gamut::compress::tests::test_desaturate ... ok [INFO] [stdout] test gamut_checker::tests::primaries_have_three_entries ... ok [INFO] [stdout] test gamut_checker::tests::p3_coverage_less_than_rec2020 ... ok [INFO] [stdout] test gamut_checker::tests::clip_to_gamut_clamps_channels ... ok [INFO] [stdout] test gamut_checker::tests::rec709_coverage_less_than_p3 ... ok [INFO] [stdout] test gamut_checker::tests::excess_magnitude_correct ... ok [INFO] [stdout] test gamut_checker::tests::in_gamut_pixel_not_flagged ... ok [INFO] [stdout] test gamut_checker::tests::is_out_of_gamut_negative_channel ... ok [INFO] [stdout] test gamut_checker::tests::tolerance_suppresses_near_boundary ... ok [INFO] [stdout] test gamut_checker::tests::is_out_of_gamut_over_one ... ok [INFO] [stdout] test gamut_checker::tests::out_of_gamut_pct_all_in ... ok [INFO] [stdout] test gamut_checker::tests::rec2020_coverage_is_100 ... ok [INFO] [stdout] test gamut_checker::tests::checker_boundary_accessor ... ok [INFO] [stdout] test geometry::tests::test_camera_model_distort_with_radial ... ok [INFO] [stdout] test geometry::tests::test_homography_identity_transform ... ok [INFO] [stdout] test geometry::tests::test_homography_zero_w_returns_nan ... ok [INFO] [stdout] test gamut_checker::tests::out_of_gamut_pct_half_out ... ok [INFO] [stdout] test geometry::tests::test_homography_translation ... ok [INFO] [stdout] test geometry::tests::test_pinhole_project_zero_z_returns_nan ... ok [INFO] [stdout] test geometry::tests::test_camera_model_distort_undistort_round_trip ... ok [INFO] [stdout] test geometry::tests::test_radial_distortion_all_coefficients ... ok [INFO] [stdout] test geometry::tests::test_pinhole_project_behind_camera ... ok [INFO] [stdout] test geometry::tests::test_radial_distortion_applies_k1 ... ok [INFO] [stdout] test geometry::tests::test_pinhole_project_offset_point ... ok [INFO] [stdout] test geometry::tests::test_pinhole_project_centre ... ok [INFO] [stdout] test geometry::tests::test_radial_distortion_zero_coefficients ... ok [INFO] [stdout] test geometry::tests::test_tangential_distortion_zero_at_origin ... ok [INFO] [stdout] test geometry::tests::test_tangential_distortion_zero_coefficients ... ok [INFO] [stdout] test icc::apply::tests::test_convert_between_profiles ... ok [INFO] [stdout] test icc::apply::tests::test_icc_profile_applicator_apply_to_color ... ok [INFO] [stdout] test icc::apply::tests::test_icc_profile_applicator_apply_to_image ... ok [INFO] [stdout] test icc::apply::tests::test_icc_profile_applicator_invalid_image ... ok [INFO] [stdout] test icc::apply::tests::test_icc_profile_applicator_new ... ok [INFO] [stdout] test icc::apply::tests::test_icc_profile_applicator_verify ... ok [INFO] [stdout] test icc::generate::tests::test_adobe_rgb_profile ... ok [INFO] [stdout] test icc::generate::tests::test_display_profile ... ok [INFO] [stdout] test icc::generate::tests::test_from_camera_profile ... ok [INFO] [stdout] test icc::generate::tests::test_prophoto_rgb_profile ... ok [INFO] [stdout] test icc::generate::tests::test_srgb_profile ... ok [INFO] [stdout] test icc::parse::tests::test_compute_inverse_matrix ... ok [INFO] [stdout] test icc::parse::tests::test_compute_inverse_matrix_singular ... ok [INFO] [stdout] test icc::parse::tests::test_icc_profile_new ... ok [INFO] [stdout] test icc::parse::tests::test_icc_profile_rgb_to_xyz ... ok [INFO] [stdout] test icc::parse::tests::test_icc_profile_roundtrip ... ok [INFO] [stdout] test icc::parse::tests::test_icc_profile_validate ... ok [INFO] [stdout] test icc::parse::tests::test_icc_profile_validate_invalid ... ok [INFO] [stdout] test icc::parse::tests::test_icc_profile_xyz_to_rgb ... ok [INFO] [stdout] test icc_profile::tests::test_abstract_not_device_profile ... ok [INFO] [stdout] test icc_profile::tests::test_cmyk_channel_count ... ok [INFO] [stdout] test icc_profile::tests::test_devicelink_not_device_profile ... ok [INFO] [stdout] test icc_profile::tests::test_display_is_device_profile ... ok [INFO] [stdout] test icc_profile::tests::test_gray_channel_count ... ok [INFO] [stdout] test icc_profile::tests::test_input_is_device_profile ... ok [INFO] [stdout] test icc_profile::tests::test_invalid_pcs_rgb ... ok [INFO] [stdout] test icc_profile::tests::test_is_display_profile_false_for_input ... ok [INFO] [stdout] test icc_profile::tests::test_is_display_profile_true ... ok [INFO] [stdout] test icc_profile::tests::test_is_rgb_false_for_gray ... ok [INFO] [stdout] test icc_profile::tests::test_is_rgb_true ... ok [INFO] [stdout] test icc_profile::tests::test_lab_channel_count ... ok [INFO] [stdout] test icc_profile::tests::test_namedcolor_not_device_profile ... ok [INFO] [stdout] test icc_profile::tests::test_output_is_device_profile ... ok [INFO] [stdout] test icc_profile::tests::test_registry_add_and_count ... ok [INFO] [stdout] test icc_profile::tests::test_registry_count_empty ... ok [INFO] [stdout] test icc_profile::tests::test_registry_find_by_description ... ok [INFO] [stdout] test icc_profile::tests::test_registry_find_by_description_no_match ... ok [INFO] [stdout] test icc_profile::tests::test_registry_rgb_profiles ... ok [INFO] [stdout] test icc_profile::tests::test_rgb_channel_count ... ok [INFO] [stdout] test icc_profile::tests::test_valid_pcs_lab ... ok [INFO] [stdout] test icc_profile::tests::test_valid_pcs_xyz ... ok [INFO] [stdout] test icc_profile::tests::test_xyz_channel_count ... ok [INFO] [stdout] test lens_profile::tests::test_correct_distortion_at_center ... ok [INFO] [stdout] test lens_profile::tests::test_correct_distortion_barrel ... ok [INFO] [stdout] test lens_profile::tests::test_correct_distortion_zero_coefficients ... ok [INFO] [stdout] test lens_profile::tests::test_database_add_and_find ... ok [INFO] [stdout] test lens_profile::tests::test_database_is_empty ... ok [INFO] [stdout] test lens_profile::tests::test_database_nearest_focal ... ok [INFO] [stdout] test lens_profile::tests::test_database_not_found ... ok [INFO] [stdout] test lens_profile::tests::test_distortion_model_names ... ok [INFO] [stdout] test lens_profile::tests::test_interpolate_clamps_t ... ok [INFO] [stdout] test lens_profile::tests::test_interpolate_midpoint ... ok [INFO] [stdout] test lens_profile::tests::test_interpolate_t0 ... ok [INFO] [stdout] test lens_profile::tests::test_interpolate_t1 ... ok [INFO] [stdout] test lens_profile::tests::test_vignetting_gain_center ... ok [INFO] [stdout] test lens_profile::tests::test_vignetting_gain_edge ... ok [INFO] [stdout] test lut::generate::tests::test_apply_matrix ... ok [INFO] [stdout] test lut::generate::tests::test_apply_matrix_scale ... ok [INFO] [stdout] test lut::generate::tests::test_gamma_lut ... ok [INFO] [stdout] test lut::generate::tests::test_gamma_lut_negative_gamma ... ok [INFO] [stdout] test lut::generate::tests::test_from_matrix_identity ... ok [INFO] [stdout] test lut::generate::tests::test_gamma_lut_zero_gamma ... ok [INFO] [stdout] test lut::generate::tests::test_gamma_lut_zero_size ... ok [INFO] [stdout] test lut::measure::tests::test_create_measurement_grid ... ok [INFO] [stdout] test lut::measure::tests::test_lut_measurement_add_point ... ok [INFO] [stdout] test lut::measure::tests::test_lut_measurement_add_points ... ok [INFO] [stdout] test lut::generate::tests::test_neutral_axis_lut ... ok [INFO] [stdout] test lut::measure::tests::test_lut_measurement_average_confidence ... ok [INFO] [stdout] test lut::measure::tests::test_lut_measurement_filter_by_confidence ... ok [INFO] [stdout] test lut::measure::tests::test_lut_measurement_new ... ok [INFO] [stdout] test lut::measure::tests::test_lut_measurement_validate_empty ... ok [INFO] [stdout] test lut::measure::tests::test_lut_measurement_validate_invalid_input ... ok [INFO] [stdout] test lut::measure::tests::test_lut_measurement_validate_valid ... ok [INFO] [stdout] test lut::measure::tests::test_measurement_point_new ... ok [INFO] [stdout] test lut::tests::test_tetrahedral_matches_trilinear_on_lattice_points ... ok [INFO] [stdout] test lut::tests::test_trilinear_clamps_out_of_range ... ok [INFO] [stdout] test lut::tests::test_tetrahedral_identity_lut ... ok [INFO] [stdout] test lut::tests::test_trilinear_identity_lut ... ok [INFO] [stdout] test lut::verify::tests::test_generate_report ... ok [INFO] [stdout] test lut::verify::tests::test_calculate_delta_e ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_apply_batch_consistent_with_single ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_clamp_below_zero ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_clamp_above_one ... ok [INFO] [stdout] test metamerism::tests::test_cie_color_matching_functions ... ok [INFO] [stdout] test lut::verify::tests::test_verify_lut_empty_measurements ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_tetrahedral_vs_trilinear_scale_lut ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_identity_lut_corners ... ok [INFO] [stdout] test lut::verify::tests::test_verification_result_new ... ok [INFO] [stdout] test lut::verify::tests::test_verification_result_passes ... ok [INFO] [stdout] test lut::verify::tests::test_verification_result_grade ... ok [INFO] [stdout] test metamerism::tests::test_compute_metamerism_index ... ok [INFO] [stdout] test metamerism::tests::test_find_no_pairs_when_different ... ok [INFO] [stdout] test metamerism::tests::test_find_metameric_pairs ... ok [INFO] [stdout] test metamerism::tests::test_lab_delta_e ... ok [INFO] [stdout] test metamerism::tests::test_config_builder ... ok [INFO] [stdout] test metamerism::tests::test_risk_score_nonzero ... ok [INFO] [stdout] test metamerism::tests::test_risk_score_zero ... ok [INFO] [stdout] test metamerism::tests::test_severity_classification ... ok [INFO] [stdout] test metamerism::tests::test_severity_description ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_identity_lut_tetrahedral_midpoint ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_max_error_identity_lut ... ok [INFO] [stdout] test metamerism::tests::test_spectral_data_creation ... ok [INFO] [stdout] test monitor_calibration::tests::test_calibration_result_fail_gamma ... ok [INFO] [stdout] test metamerism::tests::test_spectral_interpolation ... ok [INFO] [stdout] test monitor_calibration::tests::test_calibration_result_fail_luminance ... ok [INFO] [stdout] test metamerism::tests::test_xyz_to_lab ... ok [INFO] [stdout] test monitor_calibration::tests::test_calibration_result_pass ... ok [INFO] [stdout] test monitor_calibration::tests::test_gamma22_encode_midtone ... ok [INFO] [stdout] test monitor_calibration::tests::test_gamma24_encode_zero_one ... ok [INFO] [stdout] test monitor_calibration::tests::test_gamma_nominal_values ... ok [INFO] [stdout] test monitor_calibration::tests::test_linear_rec709_is_identity ... ok [INFO] [stdout] test monitor_calibration::tests::test_hdr400_preset ... ok [INFO] [stdout] test monitor_calibration::tests::test_luminance_target_sdr ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_tetrahedral_vs_trilinear_identity_lut ... ok [INFO] [stdout] test lut::tetrahedral::tests::test_interpolate_f64_identity ... ok [INFO] [stdout] test monitor_calibration::tests::test_luminance_target_hdr1000 ... ok [INFO] [stdout] test monitor_calibration::tests::test_srgb_encode_high ... ok [INFO] [stdout] test monitor_calibration::tests::test_srgb_encode_low ... ok [INFO] [stdout] test monitor_calibration::tests::test_white_point_d65_xy ... ok [INFO] [stdout] test patch_extract::tests::test_compute_channel_stats_empty ... ok [INFO] [stdout] test patch_extract::tests::test_compute_channel_stats_uniform ... ok [INFO] [stdout] test patch_extract::tests::test_compute_channel_stats_varied ... ok [INFO] [stdout] test patch_extract::tests::test_compute_uniformity_perfect ... ok [INFO] [stdout] test patch_extract::tests::test_compute_uniformity_poor ... ok [INFO] [stdout] test patch_extract::tests::test_extract_all ... ok [INFO] [stdout] test patch_extract::tests::test_extract_empty_region ... ok [INFO] [stdout] test patch_extract::tests::test_extract_patch_center_average ... ok [INFO] [stdout] test patch_extract::tests::test_extract_patch_uniform ... ok [INFO] [stdout] test patch_extract::tests::test_patch_region_area ... ok [INFO] [stdout] test patch_extract::tests::test_patch_region_center ... ok [INFO] [stdout] test patch_extract::tests::test_patch_region_contains ... ok [INFO] [stdout] test patch_extract::tests::test_patch_region_inner ... ok [INFO] [stdout] test patch_extract::tests::test_trimmed_mean ... ok [INFO] [stdout] test r#match::camera::tests::test_camera_match_apply_to_image ... ok [INFO] [stdout] test r#match::camera::tests::test_camera_match_apply_transform_identity ... ok [INFO] [stdout] test r#match::camera::tests::test_camera_match_config_default ... ok [INFO] [stdout] test r#match::camera::tests::test_camera_match_new ... ok [INFO] [stdout] test r#match::camera::tests::test_camera_match_mismatched_patches ... ok [INFO] [stdout] test r#match::camera::tests::test_delta_e_same_color ... ok [INFO] [stdout] test r#match::reference::tests::test_reference_match_apply_transform ... ok [INFO] [stdout] test r#match::reference::tests::test_reference_match_improvement ... ok [INFO] [stdout] test r#match::reference::tests::test_reference_match_is_acceptable ... ok [INFO] [stdout] test r#match::reference::tests::test_reference_match_new ... ok [INFO] [stdout] test r#match::reference::tests::test_reference_match_to_reference_empty ... ok [INFO] [stdout] test r#match::reference::tests::test_reference_target_grayscale ... ok [INFO] [stdout] test r#match::reference::tests::test_reference_target_new ... ok [INFO] [stdout] test r#match::reference::tests::test_reference_target_white_balance ... ok [INFO] [stdout] test r#match::scene::tests::test_scene_match_apply_to_image ... ok [INFO] [stdout] test r#match::scene::tests::test_scene_match_apply_transform ... ok [INFO] [stdout] test r#match::scene::tests::test_scene_match_config_default ... ok [INFO] [stdout] test r#match::scene::tests::test_scene_match_improvement ... ok [INFO] [stdout] test r#match::scene::tests::test_scene_match_new ... ok [INFO] [stdout] test spectral::tests::test_cmf_table_not_empty ... ok [INFO] [stdout] test spectral::tests::test_cmf_wavelengths_ascending ... ok [INFO] [stdout] test spectral::tests::test_cmf_y_bar_peaks_around_555nm ... ok [INFO] [stdout] test spectral::tests::test_evaluate_at_known_point ... ok [INFO] [stdout] test spectral::tests::test_evaluate_clamps_above_range ... ok [INFO] [stdout] test spectral::tests::test_evaluate_clamps_below_range ... ok [INFO] [stdout] test spectral::tests::test_flat_spd_is_not_empty ... ok [INFO] [stdout] test spectral::tests::test_flat_spd_length ... ok [INFO] [stdout] test spectral::tests::test_from_pairs_sorted ... ok [INFO] [stdout] test spectral::tests::test_integrate_flat_spd ... ok [INFO] [stdout] test spectral::tests::test_integrate_empty_spd ... ok [INFO] [stdout] test spectral::tests::test_multiply_flat_spds ... ok [INFO] [stdout] test spectral::tests::test_metameric_index_identical_spds_is_zero ... ok [INFO] [stdout] test spectral::tests::test_normalise_peak_is_one ... ok [INFO] [stdout] test spectral::tests::test_normalise_zero_spd_unchanged ... ok [INFO] [stdout] test spectral::tests::test_spd_to_xyz_flat_gives_nonzero_y ... ok [INFO] [stdout] test spectral::tests::test_spd_to_xyz_zero_spd_gives_zero ... ok [INFO] [stdout] test spectral::tests::test_xyz_to_xy_known_point ... ok [INFO] [stdout] test spectral::tests::test_xyz_to_xy_zero_returns_nan ... ok [INFO] [stdout] test temp::estimate::tests::test_estimate_color_temperature_cool ... ok [INFO] [stdout] test temp::estimate::tests::test_estimate_color_temperature_empty ... ok [INFO] [stdout] test temp::estimate::tests::test_estimate_color_temperature_neutral ... ok [INFO] [stdout] test temp::estimate::tests::test_estimate_color_temperature_invalid_size ... ok [INFO] [stdout] test temp::estimate::tests::test_estimate_color_temperature_warm ... ok [INFO] [stdout] test temp::estimate::tests::test_estimate_from_rb_ratio ... ok [INFO] [stdout] test temp::shift::tests::test_apply_temperature_shift_same ... ok [INFO] [stdout] test temp::shift::tests::test_apply_temperature_shift_to_image ... ok [INFO] [stdout] test temp::shift::tests::test_apply_temperature_shift_warm_to_cool ... ok [INFO] [stdout] test temp::shift::tests::test_temperature_to_rgb_cool ... ok [INFO] [stdout] test temp::shift::tests::test_temperature_to_rgb_daylight ... ok [INFO] [stdout] test temp::shift::tests::test_temperature_to_rgb_tungsten ... ok [INFO] [stdout] test temporal_uniformity::tests::detect_flicker_large_variation ... ok [INFO] [stdout] test temp::shift::tests::test_temperature_to_rgb_range ... ok [INFO] [stdout] test temporal_uniformity::tests::dynamic_range_correct ... ok [INFO] [stdout] test temporal_uniformity::tests::flicker_pct_half_frames ... ok [INFO] [stdout] test temporal_uniformity::tests::frame_count_tracks_additions ... ok [INFO] [stdout] test temporal_uniformity::tests::detect_flicker_returns_none_with_one_frame ... ok [INFO] [stdout] test temporal_uniformity::tests::mean_luminance_empty_is_zero ... ok [INFO] [stdout] test temporal_uniformity::tests::mean_luminance_correct ... ok [INFO] [stdout] test temporal_uniformity::tests::detect_flicker_no_variation ... ok [INFO] [stdout] test temporal_uniformity::tests::severity_minor_range ... ok [INFO] [stdout] test temporal_uniformity::tests::severity_moderate_range ... ok [INFO] [stdout] test temporal_uniformity::tests::severity_none_below_half_percent ... ok [INFO] [stdout] test temporal_uniformity::tests::variation_from_different_frames ... ok [INFO] [stdout] test test_chart::tests::test_accuracy_grade_excellent ... ok [INFO] [stdout] test test_chart::tests::test_accuracy_grade_good ... ok [INFO] [stdout] test temporal_uniformity::tests::severity_severe_above_five_percent ... ok [INFO] [stdout] test temporal_uniformity::tests::variation_from_same_frame ... ok [INFO] [stdout] test test_chart::tests::test_accuracy_grade_acceptable ... ok [INFO] [stdout] test test_chart::tests::test_accuracy_grade_boundary_1 ... ok [INFO] [stdout] test test_chart::tests::test_accuracy_grade_boundary_4 ... ok [INFO] [stdout] test test_chart::tests::test_chart_analysis_grade ... ok [INFO] [stdout] test test_chart::tests::test_analyze_empty_chart ... ok [INFO] [stdout] test test_chart::tests::test_chart_patch_counts ... ok [INFO] [stdout] test test_chart::tests::test_accuracy_grade_poor ... ok [INFO] [stdout] test test_chart::tests::test_colorchecker_blue_sky ... ok [INFO] [stdout] test test_chart::tests::test_colorchecker_first_patch_name ... ok [INFO] [stdout] test test_chart::tests::test_colorchecker_patches_count ... ok [INFO] [stdout] test test_chart::tests::test_delta_e76_identical ... ok [INFO] [stdout] test test_chart::tests::test_delta_e76_simple ... ok [INFO] [stdout] test test_chart::tests::test_srgb_to_lab_black ... ok [INFO] [stdout] test test_chart::tests::test_analyze_grey_image_returns_patches ... ok [INFO] [stdout] test test_chart::tests::test_srgb_to_lab_white ... ok [INFO] [stdout] test uniformity::tests::test_assessment_acceptable ... ok [INFO] [stdout] test tests::test_illuminant_temperature ... ok [INFO] [stdout] test uniformity::tests::test_assessment_excellent ... ok [INFO] [stdout] test tests::test_illuminant_xyz ... ok [INFO] [stdout] test uniformity::tests::test_assessment_poor ... ok [INFO] [stdout] test uniformity::tests::test_assessment_good ... ok [INFO] [stdout] test uniformity::tests::test_grid_chroma_x_std_dev_zero_for_perfect ... ok [INFO] [stdout] test uniformity::tests::test_grid_compensation_map_length ... ok [INFO] [stdout] test uniformity::tests::test_grid_get_patch ... ok [INFO] [stdout] test uniformity::tests::test_grid_compensation_map_uniform_gives_ones ... ok [INFO] [stdout] test uniformity::tests::test_grid_hot_spots_none_for_perfect ... ok [INFO] [stdout] test uniformity::tests::test_grid_max_luminance_perfect ... ok [INFO] [stdout] test uniformity::tests::test_grid_hot_spots_detected ... ok [INFO] [stdout] test uniformity::tests::test_grid_mean_luminance ... ok [INFO] [stdout] test uniformity::tests::test_grid_min_luminance_imperfect ... ok [INFO] [stdout] test uniformity::tests::test_grid_uniformity_pct_imperfect ... ok [INFO] [stdout] test uniformity::tests::test_grid_uniformity_pct_perfect ... ok [INFO] [stdout] test uniformity::tests::test_patch_luminance_ratio_dark ... ok [INFO] [stdout] test uniformity::tests::test_patch_luminance_ratio_unity ... ok [INFO] [stdout] test uniformity::tests::test_report_from_grid_perfect ... ok [INFO] [stdout] test uniformity::tests::test_report_grid_dims ... ok [INFO] [stdout] test white::auto::tests::test_gray_world_empty_image ... ok [INFO] [stdout] test white::auto::tests::test_gray_world_invalid_size ... ok [INFO] [stdout] test white::auto::tests::test_gray_world_neutral_image ... ok [INFO] [stdout] test uniformity::tests::test_patch_luminance_ratio_zero_reference ... ok [INFO] [stdout] test uniformity::tests::test_report_from_grid_imperfect ... ok [INFO] [stdout] test white::auto::tests::test_white_balance_correction_new ... ok [INFO] [stdout] test white::auto::tests::test_white_balance_correction_apply_to_image ... ok [INFO] [stdout] test white::auto::tests::test_white_patch_empty_image ... ok [INFO] [stdout] test white::custom::tests::test_from_gray_patch_too_dark ... ok [INFO] [stdout] test white::custom::tests::test_from_gray_patch_neutral ... ok [INFO] [stdout] test white::auto::tests::test_white_balance_correction_apply ... ok [INFO] [stdout] test white::custom::tests::test_apply ... ok [INFO] [stdout] test uniformity::tests::test_report_patch_count ... ok [INFO] [stdout] test white::custom::tests::test_from_gray_patch_warm ... ok [INFO] [stdout] test white::preset::tests::test_apply ... ok [INFO] [stdout] test white::preset::tests::test_apply_to_image ... ok [INFO] [stdout] test white::preset::tests::test_apply_tungsten ... ok [INFO] [stdout] test white::preset::tests::test_color_temperatures ... ok [INFO] [stdout] test white::custom::tests::test_from_white_point ... ok [INFO] [stdout] test white::preset::tests::test_custom_multipliers ... ok [INFO] [stdout] test white::preset::tests::test_daylight_multipliers ... ok [INFO] [stdout] test white::preset::tests::test_tungsten_multipliers ... ok [INFO] [stdout] test white_balance::tests::test_compute_wb_from_patch_basic ... ok [INFO] [stdout] test white_balance::tests::test_compute_wb_from_patch_zero_measured_channel ... ok [INFO] [stdout] test white_balance::tests::test_grey_world_wb_empty_pixels_returns_identity ... ok [INFO] [stdout] test white_balance::tests::test_grey_world_wb_neutral_image ... ok [INFO] [stdout] test white_balance::tests::test_grey_world_wb_red_dominant ... ok [INFO] [stdout] test white_balance::tests::test_illuminant_a_chromaticity_warm ... ok [INFO] [stdout] test white_balance::tests::test_illuminant_a_temperature ... ok [INFO] [stdout] test white_balance::tests::test_illuminant_d65_chromaticity ... ok [INFO] [stdout] test white_balance::tests::test_illuminant_f11_temperature ... ok [INFO] [stdout] test white_balance::tests::test_illuminant_d65_temperature ... ok [INFO] [stdout] test white_balance::tests::test_wb_matrix_apply_identity ... ok [INFO] [stdout] test white_balance::tests::test_wb_matrix_apply_scales_channels ... ok [INFO] [stdout] test white_balance::tests::test_wb_matrix_identity ... ok [INFO] [stdout] test white_balance::tests::test_wb_matrix_normalize_green_to_one ... ok [INFO] [stdout] test white_balance::tests::test_wb_matrix_normalize_zero_green_returns_self ... ok [INFO] [stdout] test white_balance::tests::test_wb_report_accurate_below_threshold ... ok [INFO] [stdout] test white_balance::tests::test_wb_report_inaccurate_above_threshold ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 511 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_calibrate [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test src/lib.rs - (line 19) ... ignored [INFO] [stdout] test src/chromatic/cat16.rs - chromatic::cat16::Cat16Adapter (line 66) ... ok [INFO] [stdout] test src/lut/tetrahedral.rs - lut::tetrahedral::TetrahedralInterpolator (line 33) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.43s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "5cd91c17dcdd6651ee261c9c9a06a4a86c4934454c839a9365cee11eed42966a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5cd91c17dcdd6651ee261c9c9a06a4a86c4934454c839a9365cee11eed42966a", kill_on_drop: false }` [INFO] [stdout] 5cd91c17dcdd6651ee261c9c9a06a4a86c4934454c839a9365cee11eed42966a