[INFO] fetching crate oximedia-scene 0.1.2... [INFO] testing oximedia-scene-0.1.2 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate oximedia-scene 0.1.2 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate oximedia-scene 0.1.2 [INFO] finished tweaking crates.io crate oximedia-scene 0.1.2 [INFO] tweaked toml for crates.io crate oximedia-scene 0.1.2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-scene 0.1.2 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-scene 0.1.2 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ndarray-rand v0.16.0 [INFO] [stderr] Downloaded rand_distr v0.6.0 [INFO] [stderr] Downloaded oxifft-codegen v0.1.3 [INFO] [stderr] Downloaded oxiblas-ndarray v0.2.1 [INFO] [stderr] Downloaded safe_arch v1.0.0 [INFO] [stderr] Downloaded oxiarc-lz4 v0.2.4 [INFO] [stderr] Downloaded oxiblas-matrix v0.2.1 [INFO] [stderr] Downloaded oxiarc-zstd v0.2.4 [INFO] [stderr] Downloaded oxiblas-core v0.2.1 [INFO] [stderr] Downloaded oximedia-io v0.1.2 [INFO] [stderr] Downloaded oximedia-core v0.1.2 [INFO] [stderr] Downloaded wide v1.2.0 [INFO] [stderr] Downloaded oxiarc-core v0.2.4 [INFO] [stderr] Downloaded oxiblas-blas v0.2.1 [INFO] [stderr] Downloaded oxifft v0.1.3 [INFO] [stderr] Downloaded oxiblas-lapack v0.2.1 [INFO] [stderr] Downloaded oximedia-cv v0.1.2 [INFO] [stderr] Downloaded jpeg-decoder v0.3.2 [INFO] [stderr] Downloaded oximedia-codec v0.1.2 [INFO] [stderr] Downloaded scirs2-core v0.3.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e0bd22885028c830417f3c77035073a9830b3572532b8f54cab73ef6c02c8950 [INFO] running `Command { std: "docker" "start" "-a" "e0bd22885028c830417f3c77035073a9830b3572532b8f54cab73ef6c02c8950", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e0bd22885028c830417f3c77035073a9830b3572532b8f54cab73ef6c02c8950", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0bd22885028c830417f3c77035073a9830b3572532b8f54cab73ef6c02c8950", kill_on_drop: false }` [INFO] [stdout] e0bd22885028c830417f3c77035073a9830b3572532b8f54cab73ef6c02c8950 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5355adbe9882732357f26c1d3d6a39f627b2d43fb78cf2a51f841f476ee3fc2b [INFO] running `Command { std: "docker" "start" "-a" "5355adbe9882732357f26c1d3d6a39f627b2d43fb78cf2a51f841f476ee3fc2b", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling oxiarc-core v0.2.4 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling jpeg-decoder v0.3.2 [INFO] [stderr] Compiling oxifft-codegen v0.1.3 [INFO] [stderr] Compiling oximedia-core v0.1.2 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling spin v0.10.0 [INFO] [stderr] Compiling oxiarc-lz4 v0.2.4 [INFO] [stderr] Compiling oxiarc-zstd v0.2.4 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling rand_distr v0.6.0 [INFO] [stderr] Compiling scirs2-core v0.3.3 [INFO] [stderr] Compiling oximedia-cv v0.1.2 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling safe_arch v1.0.0 [INFO] [stderr] Compiling wide v1.2.0 [INFO] [stderr] Compiling oxiblas-core v0.2.1 [INFO] [stderr] Compiling ndarray v0.17.2 [INFO] [stderr] Compiling oxifft v0.1.3 [INFO] [stderr] Compiling oxiblas-matrix v0.2.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand_chacha v0.10.0 [INFO] [stderr] Compiling oxiblas-blas v0.2.1 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand_distr v0.5.1 [INFO] [stderr] Compiling oximedia-io v0.1.2 [INFO] [stderr] Compiling oxiblas-lapack v0.2.1 [INFO] [stderr] Compiling oximedia-codec v0.1.2 [INFO] [stderr] Compiling ndarray-rand v0.16.0 [INFO] [stderr] Compiling oxiblas-ndarray v0.2.1 [INFO] [stderr] Compiling oximedia-scene v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.39s [INFO] running `Command { std: "docker" "inspect" "5355adbe9882732357f26c1d3d6a39f627b2d43fb78cf2a51f841f476ee3fc2b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5355adbe9882732357f26c1d3d6a39f627b2d43fb78cf2a51f841f476ee3fc2b", kill_on_drop: false }` [INFO] [stdout] 5355adbe9882732357f26c1d3d6a39f627b2d43fb78cf2a51f841f476ee3fc2b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 18178bf3efb3dbfa98c2d485adc63659b6d9bf0249dbabaf98ad163c156aa283 [INFO] running `Command { std: "docker" "start" "-a" "18178bf3efb3dbfa98c2d485adc63659b6d9bf0249dbabaf98ad163c156aa283", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-scene v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 10.34s [INFO] running `Command { std: "docker" "inspect" "18178bf3efb3dbfa98c2d485adc63659b6d9bf0249dbabaf98ad163c156aa283", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "18178bf3efb3dbfa98c2d485adc63659b6d9bf0249dbabaf98ad163c156aa283", kill_on_drop: false }` [INFO] [stdout] 18178bf3efb3dbfa98c2d485adc63659b6d9bf0249dbabaf98ad163c156aa283 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f9ff8dd9ca18d68c3227a43531d35ffb10c164fe87a533730239a7a41ecbc273 [INFO] running `Command { std: "docker" "start" "-a" "f9ff8dd9ca18d68c3227a43531d35ffb10c164fe87a533730239a7a41ecbc273", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.73s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_scene-d8529725674fcb68) [INFO] [stdout] [INFO] [stdout] running 640 tests [INFO] [stdout] test action_beat::tests::test_beat_category_display ... ok [INFO] [stdout] test action_beat::tests::test_classify_rhythmic_cut ... ok [INFO] [stdout] test action_beat::tests::test_compute_beat_stats_values ... ok [INFO] [stdout] test action_beat::tests::test_detect_beats_empty ... ok [INFO] [stdout] test action_beat::tests::test_detect_beats_min_interval ... ok [INFO] [stdout] test action_beat::tests::test_detect_beats_single_peak ... ok [INFO] [stdout] test action_beat::tests::test_detect_beats_multiple ... ok [INFO] [stdout] test action_beat::tests::test_merge_beats ... ok [INFO] [stdout] test action_beat::tests::test_pacing_profile_empty ... ok [INFO] [stdout] test action_beat::tests::test_classify_audio_transient ... ok [INFO] [stdout] test action_beat::tests::test_classify_physical_action ... ok [INFO] [stdout] test action_beat::tests::test_compute_beat_stats_empty ... ok [INFO] [stdout] test activity::recognize::tests::test_activity_type_name ... ok [INFO] [stdout] test action_beat::tests::test_pacing_profile_segments ... ok [INFO] [stdout] test adaptive_scene::tests::test_all_zero_histogram_returns_zero_complexity ... ok [INFO] [stdout] test adaptive_scene::tests::test_config_bad_weights_is_invalid ... ok [INFO] [stdout] test adaptive_scene::tests::test_config_base_threshold_out_of_range ... ok [INFO] [stdout] test adaptive_scene::tests::test_config_default_is_valid ... ok [INFO] [stdout] test adaptive_scene::tests::test_config_min_greater_than_max_is_invalid ... ok [INFO] [stdout] test adaptive_scene::tests::test_config_zero_window_size_is_invalid ... ok [INFO] [stdout] test adaptive_scene::tests::test_configure_updates_thresholds ... ok [INFO] [stdout] test adaptive_scene::tests::test_detector_default_no_cuts_on_stable_sequence ... ok [INFO] [stdout] test adaptive_scene::tests::test_detector_detects_hard_cut ... ok [INFO] [stdout] test adaptive_scene::tests::test_detector_reset_clears_state ... ok [INFO] [stdout] test adaptive_scene::tests::test_high_complexity_window_raises_threshold ... ok [INFO] [stdout] test adaptive_scene::tests::test_intensity_histogram_bin_count ... ok [INFO] [stdout] test adaptive_scene::tests::test_detect_with_pixels_finds_cut_in_pixel_data ... ok [INFO] [stdout] test adaptive_scene::tests::test_intensity_histogram_pixel_sum_equals_input_len ... ok [INFO] [stdout] test adaptive_scene::tests::test_low_complexity_window_lowers_threshold ... ok [INFO] [stdout] test adaptive_scene::tests::test_multiple_cuts_detected_in_order ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_below_threshold_returns_none ... ok [INFO] [stdout] test adaptive_scene::tests::test_empty_histogram_returns_error ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_confidence_in_unit_range ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_empty_history_returns_default_threshold ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_flash_suppression_marks_is_flash ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_frame_idx_monotonically_increases ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_hard_cut_detected ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_min_scene_duration_allows_cut_after_cooldown ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_mean_stddev_threshold_calculation ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_min_scene_duration_suppresses_rapid_cuts ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_normal_cut_is_not_flash ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_window_eviction_respects_window_size ... ok [INFO] [stdout] test adaptive_scene::tests::test_rolling_reset_clears_state ... ok [INFO] [stdout] test adaptive_scene::tests::test_single_bin_histogram_has_zero_entropy ... ok [INFO] [stdout] test adaptive_scene::tests::test_sliding_window_respects_window_size ... ok [INFO] [stdout] test adaptive_scene::tests::test_threshold_used_is_stored_in_cut ... ok [INFO] [stdout] test adaptive_scene::tests::test_uniform_histogram_has_high_entropy ... ok [INFO] [stdout] test adaptive_scene::tests::test_uniform_pixels_give_higher_complexity_than_constant ... ok [INFO] [stdout] test aesthetic::score::tests::test_aesthetic_scorer_invalid_dims ... ok [INFO] [stdout] test camera_motion::tests::test_confidence_no_motion ... ok [INFO] [stdout] test camera_motion::tests::test_estimate_empty_frames ... ok [INFO] [stdout] test camera_motion::tests::test_estimate_ransac_empty_frames ... ok [INFO] [stdout] test aesthetic::score::tests::test_score_for_content_landscape ... ok [INFO] [stdout] test aesthetic::score::tests::test_content_type_name ... ok [INFO] [stdout] test camera_motion::tests::test_estimator_with_config ... ok [INFO] [stdout] test camera_motion::tests::test_median_motion_single ... ok [INFO] [stdout] test camera_motion::tests::test_motion_summary_empty ... ok [INFO] [stdout] test camera_motion::tests::test_motion_summary_recording ... ok [INFO] [stdout] test aesthetic::score::tests::test_score_for_content_portrait ... ok [INFO] [stdout] test camera_motion::tests::test_motion_variance_nonzero ... ok [INFO] [stdout] test camera_motion::tests::test_motion_variance_zero ... ok [INFO] [stdout] test camera_motion::tests::test_motion_vector_angle ... ok [INFO] [stdout] test camera_motion::tests::test_motion_vector_magnitude ... ok [INFO] [stdout] test camera_motion::tests::test_motion_vector_zero ... ok [INFO] [stdout] test camera_motion::tests::test_ransac_empty_vectors ... ok [INFO] [stdout] test camera_motion::tests::test_ransac_global_motion_all_same ... ok [INFO] [stdout] test adaptive_scene::tests::test_configure_with_invalid_config_returns_error ... ok [INFO] [stdout] test camera_motion::tests::test_ransac_single_vector ... ok [INFO] [stdout] test camera_motion::tests::test_ransac_global_motion_with_outliers ... ok [INFO] [stdout] test classification::tests::test_classifier_with_threshold ... ok [INFO] [stdout] test classification::tests::test_confidence_in_range ... ok [INFO] [stdout] test classification::tests::test_genre_action_detected ... ok [INFO] [stdout] test classification::tests::test_genre_horror_detected ... ok [INFO] [stdout] test camera_motion::tests::test_confidence_strong_motion ... ok [INFO] [stdout] test camera_motion::tests::test_motion_type_label ... ok [INFO] [stdout] test camera_motion::tests::test_median_motion_multiple ... ok [INFO] [stdout] test classification::tests::test_genre_nature_detected ... ok [INFO] [stdout] test classification::tests::test_location_outdoor_nature ... ok [INFO] [stdout] test classification::tests::test_location_tags_sorted_by_confidence ... ok [INFO] [stdout] test classification::tests::test_mood_dark ... ok [INFO] [stdout] test classification::tests::test_mood_exciting_action ... ok [INFO] [stdout] test classification::tests::test_mood_happy_bright ... ok [INFO] [stdout] test classification::tests::test_threshold_clamped_low ... ok [INFO] [stdout] test classify::color_palette::tests::test_default_extractor ... ok [INFO] [stdout] test classification::tests::test_threshold_clamped_high ... ok [INFO] [stdout] test classification::tests::test_scene_features_new ... ok [INFO] [stdout] test classify::color_palette::tests::test_extract_invalid_frame ... ok [INFO] [stdout] test classify::color_palette::tests::test_extract_k_colors ... ok [INFO] [stdout] test classify::color_palette::tests::test_extract_k_too_large ... ok [INFO] [stdout] test aesthetic::score::tests::test_score_for_content_action ... ok [INFO] [stdout] test classification::tests::test_location_tags_not_empty ... ok [INFO] [stdout] test classify::color_palette::tests::test_palette_color_as_float ... ok [INFO] [stdout] test classify::color_palette::tests::test_inertia_is_finite ... ok [INFO] [stdout] test classify::color_palette::tests::test_palette_color_hex ... ok [INFO] [stdout] test classify::color_palette::tests::test_extract_solid_frame ... ok [INFO] [stdout] test classify::color_palette::tests::test_extract_from_frames ... ok [INFO] [stdout] test aesthetic::score::tests::regression_gradient_has_higher_contrast_than_uniform ... ok [INFO] [stdout] test aesthetic::score::tests::regression_dark_image_lower_lighting ... ok [INFO] [stdout] test classify::color_palette::tests::test_palette_color_distance ... ok [INFO] [stdout] test classify::color_palette::tests::test_hex_strings ... ok [INFO] [stdout] test classify::color_palette::tests::test_two_color_frame_finds_both ... ok [INFO] [stdout] test classify::color_palette::tests::test_palette_warmth ... ok [INFO] [stdout] test classify::content::tests::test_content_type_name ... ok [INFO] [stdout] test classify::mood::tests::test_bright_frame ... ok [INFO] [stdout] test classify::mood::tests::test_confidence_range ... ok [INFO] [stdout] test classify::mood::tests::test_dark_frame ... ok [INFO] [stdout] test classify::mood::tests::test_default_analyzer ... ok [INFO] [stdout] test classify::mood::tests::test_features_brightness_range ... ok [INFO] [stdout] test aesthetic::score::tests::test_content_type_scorer_explicit_type ... ok [INFO] [stdout] test classification::tests::test_classifier_new ... ok [INFO] [stdout] test classify::content::tests::test_insufficient_frames ... ok [INFO] [stdout] test classify::mood::tests::test_invalid_frame_size ... ok [INFO] [stdout] test classify::mood::tests::test_cool_frame ... ok [INFO] [stdout] test classify::mood::tests::test_mood_category_names ... ok [INFO] [stdout] test classify::mood::tests::test_all_categories ... ok [INFO] [stdout] test camera_motion::tests::test_estimate_identical_frames ... ok [INFO] [stdout] test classify::quality::tests::test_quality_class_from_score ... ok [INFO] [stdout] test classify::quality::tests::test_quality_class_name ... ok [INFO] [stdout] test classify::mood::tests::test_scores_all_categories_present ... ok [INFO] [stdout] test classify::mood::tests::test_warm_frame ... ok [INFO] [stdout] test classify::mood::tests::test_muted_frame ... ok [INFO] [stdout] test classify::scene::tests::test_invalid_dimensions ... ok [INFO] [stdout] test classify::quality::tests::test_quality_classifier ... ok [INFO] [stdout] test classify::scene::tests::test_scene_features_default ... ok [INFO] [stdout] test classify::shot_type::tests::test_classify_establishing_no_skin ... ok [INFO] [stdout] test classify::scene::tests::test_reset_temporal_buffer ... ok [INFO] [stdout] test classify::scene::tests::test_scene_classifier ... ok [INFO] [stdout] test classify::scene::tests::test_scene_type_name ... ok [INFO] [stdout] test classify::shot_type::tests::test_classify_close_up_skin ... ok [INFO] [stdout] test classify::shot_type::tests::test_is_close_is_wide ... ok [INFO] [stdout] test classify::shot_type::tests::test_confidence_range ... ok [INFO] [stdout] test classify::shot_type::tests::test_features_ranges ... ok [INFO] [stdout] test classify::shot_type::tests::test_invalid_frame ... ok [INFO] [stdout] test classify::shot_type::tests::test_shot_type_labels ... ok [INFO] [stdout] test color_temperature::tests::test_analyzer_estimate_warm ... ok [INFO] [stdout] test color_temperature::tests::test_analyzer_estimate_cool ... ok [INFO] [stdout] test color_temperature::tests::test_average_kelvin ... ok [INFO] [stdout] test classify::shot_type::tests::test_scores_count ... ok [INFO] [stdout] test classify::scene::tests::test_temporal_smoothing_reduces_flicker ... ok [INFO] [stdout] test color_temperature::tests::test_from_kelvin_tungsten ... ok [INFO] [stdout] test color_temperature::tests::test_average_kelvin_empty ... ok [INFO] [stdout] test color_temperature::tests::test_cool_sources_are_daylight ... ok [INFO] [stdout] test color_temperature::tests::test_daylight_kelvin ... ok [INFO] [stdout] test color_temperature::tests::test_is_mixed_lighting_single ... ok [INFO] [stdout] test color_temperature::tests::test_is_mixed_lighting_false ... ok [INFO] [stdout] test color_temperature::tests::test_from_kelvin_daylight ... ok [INFO] [stdout] test classify::color_palette::tests::test_palette_color_luminance ... ok [INFO] [stdout] test color_temperature::tests::test_labels_non_empty ... ok [INFO] [stdout] test color_temperature::tests::test_tungsten_kelvin ... ok [INFO] [stdout] test color_temperature::tests::test_wb_gains_g_is_one ... ok [INFO] [stdout] test color_temperature::tests::test_wb_gains_warm_has_high_r ... ok [INFO] [stdout] test complexity_detector::tests::test_black_frame_is_zero_complexity ... ok [INFO] [stdout] test complexity_detector::tests::test_black_to_white_transition_is_detectable ... ok [INFO] [stdout] test complexity_detector::tests::test_empty_window_returns_base_threshold ... ok [INFO] [stdout] test complexity_detector::tests::test_grayscale_single_channel ... ok [INFO] [stdout] test complexity_detector::tests::test_high_complexity_raises_threshold ... ok [INFO] [stdout] test complexity_detector::tests::test_is_not_scene_cut_below_threshold ... ok [INFO] [stdout] test complexity_detector::tests::test_is_scene_cut_above_threshold ... ok [INFO] [stdout] test complexity_detector::tests::test_low_complexity_lowers_threshold ... ok [INFO] [stdout] test camera_motion::tests::test_estimate_ransac_identical_frames ... ok [INFO] [stdout] test complexity_detector::tests::test_reset_clears_window ... ok [INFO] [stdout] test color_temperature::tests::test_wb_gains_cool_has_high_b ... ok [INFO] [stdout] test complexity_detector::tests::test_score_in_unit_range ... ok [INFO] [stdout] test color_temperature::tests::test_is_mixed_lighting_true ... ok [INFO] [stdout] test color_temperature::tests::test_warm_sources_not_daylight ... ok [INFO] [stdout] test complexity_detector::tests::test_checkerboard_has_high_complexity ... ok [INFO] [stdout] test complexity_detector::tests::test_complex_frame_more_complex_than_constant ... ok [INFO] [stdout] test complexity_detector::tests::test_empty_frame_returns_zero ... ok [INFO] [stdout] test complexity_detector::tests::test_threshold_interpolation ... ok [INFO] [stdout] test complexity_detector::tests::test_white_frame_is_zero_complexity ... ok [INFO] [stdout] test composition::rules::tests::test_invalid_dimensions ... ok [INFO] [stdout] test aesthetic::score::tests::regression_uniform_grey_score ... ok [INFO] [stdout] test complexity_detector::tests::test_window_eviction_respects_window_size ... ok [INFO] [stdout] test content_moderation::tests::test_analyse_invalid_dimensions ... ok [INFO] [stdout] test content_moderation::tests::test_analyse_clean_frame ... ok [INFO] [stdout] test content_moderation::tests::test_analyse_prev_frame_mismatch ... ok [INFO] [stdout] test content_moderation::tests::test_check_text_method ... ok [INFO] [stdout] test content_moderation::tests::test_contains_word_at_start ... ok [INFO] [stdout] test content_moderation::tests::test_contains_word_empty ... ok [INFO] [stdout] test content_moderation::tests::test_contains_word_middle ... ok [INFO] [stdout] test content_moderation::tests::test_contains_word_not_substring ... ok [INFO] [stdout] test content_moderation::tests::test_content_rating_label ... ok [INFO] [stdout] test content_moderation::tests::test_hsv_conversion_black ... ok [INFO] [stdout] test content_moderation::tests::test_hsv_conversion_green ... ok [INFO] [stdout] test content_moderation::tests::test_hsv_conversion_red ... ok [INFO] [stdout] test content_moderation::tests::test_moderation_flag_fields ... ok [INFO] [stdout] test content_moderation::tests::test_moderation_result_struct ... ok [INFO] [stdout] test content_moderation::tests::test_moderator_default ... ok [INFO] [stdout] test content_moderation::tests::test_motion_magnitude_different ... ok [INFO] [stdout] test content_moderation::tests::test_contains_word_at_end ... ok [INFO] [stdout] test content_moderation::tests::test_profanity_case_insensitive ... ok [INFO] [stdout] test content_moderation::tests::test_profanity_detection ... ok [INFO] [stdout] test content_moderation::tests::test_profanity_no_match ... ok [INFO] [stdout] test classify::content::tests::test_content_classifier ... ok [INFO] [stdout] test content_moderation::tests::test_profanity_severity_empty ... ok [INFO] [stdout] test classify::color_palette::tests::test_weights_sum_to_one ... ok [INFO] [stdout] test content_moderation::tests::test_profanity_word_boundary ... ok [INFO] [stdout] test content_moderation::tests::test_profanity_severity_mild ... ok [INFO] [stdout] test content_moderation::tests::test_rating_g ... ok [INFO] [stdout] test content_moderation::tests::test_profanity_severity_capped ... ok [INFO] [stdout] test content_moderation::tests::test_rating_pg13 ... ok [INFO] [stdout] test content_moderation::tests::test_rating_nc17 ... ok [INFO] [stdout] test content_moderation::tests::test_rating_r ... ok [INFO] [stdout] test content_moderation::tests::test_red_dominance_blue_frame ... ok [INFO] [stdout] test content_moderation::tests::test_red_dominance_red_frame ... ok [INFO] [stdout] test content_moderation::tests::test_skin_pixel_ycbcr_blue ... ok [INFO] [stdout] test content_moderation::tests::test_skin_ratio_no_skin ... ok [INFO] [stdout] test content_moderation::tests::test_skin_ratio_skin_tone ... ok [INFO] [stdout] test content_moderation::tests::test_rating_pg ... ok [INFO] [stdout] test content_moderation::tests::test_rating_profanity_severe ... ok [INFO] [stdout] test content_moderation::tests::test_motion_magnitude_identical ... ok [INFO] [stdout] test content_moderation::tests::test_violence_no_prev_frame ... ok [INFO] [stdout] test content_moderation::tests::test_violence_with_motion_and_red ... ok [INFO] [stdout] test continuity_check::tests::test_brightness_jump_detected ... ok [INFO] [stdout] test continuity_check::tests::test_check_continuity_empty ... ok [INFO] [stdout] test continuity_check::tests::test_check_continuity_clean_sequence ... ok [INFO] [stdout] test continuity_check::tests::test_check_continuity_single_frame ... ok [INFO] [stdout] test continuity_check::tests::test_check_continuity_with_jump ... ok [INFO] [stdout] test continuity_check::tests::test_compute_frame_stats_empty ... ok [INFO] [stdout] test continuity_check::tests::test_edge_metric ... ok [INFO] [stdout] test continuity_check::tests::test_compare_identical_no_alerts ... ok [INFO] [stdout] test continuity_check::tests::test_compute_frame_stats_uniform ... ok [INFO] [stdout] test continuity_check::tests::test_default_config ... ok [INFO] [stdout] test continuity_check::tests::test_histogram_sums_to_one ... ok [INFO] [stdout] test continuity_check::tests::test_issue_display ... ok [INFO] [stdout] test continuity_check::tests::test_severity_levels ... ok [INFO] [stdout] test crowd_density::tests::test_density_level_from_score ... ok [INFO] [stdout] test composition::rules::tests::test_leading_lines_stripe ... ok [INFO] [stdout] test continuity_check::tests::test_severity_display ... ok [INFO] [stdout] test crowd_density::tests::test_compute_variance_binary ... ok [INFO] [stdout] test crowd_density::tests::test_compute_variance_uniform ... ok [INFO] [stdout] test crowd_density::tests::test_estimate_empty_frame ... ok [INFO] [stdout] test crowd_density::tests::test_estimate_uniform_frame ... ok [INFO] [stdout] test crowd_density::tests::test_tracker_clear ... ok [INFO] [stdout] test crowd_density::tests::test_estimator_config_custom ... ok [INFO] [stdout] test aesthetic::score::tests::regression_content_type_affects_score ... ok [INFO] [stdout] test crowd_density::tests::test_density_level_label ... ok [INFO] [stdout] test crowd_density::tests::test_estimate_noisy_frame ... ok [INFO] [stdout] test composition::rules::tests::test_symmetry_perfect ... ok [INFO] [stdout] test aesthetic::score::tests::test_content_type_scorer_auto_detect ... ok [INFO] [stdout] test classify::scene::tests::test_temporal_buffer_smooth ... ok [INFO] [stdout] test crowd_density::tests::test_tracker_max_history ... ok [INFO] [stdout] test crowd_density::tests::test_tracker_record_and_average ... ok [INFO] [stdout] test crowd_density::tests::test_tracker_trend_decreasing ... ok [INFO] [stdout] test composition::rules::tests::test_golden_ratio_vs_rule_of_thirds ... ok [INFO] [stdout] test depth_of_field::tests::test_dof_far_greater_than_focus_distance ... ok [INFO] [stdout] test depth_of_field::tests::test_dof_near_less_than_focus_distance ... ok [INFO] [stdout] test depth_of_field::tests::test_focus_zone_clamps_near ... ok [INFO] [stdout] test depth_of_field::tests::test_focus_zone_contains ... ok [INFO] [stdout] test depth_of_field::tests::test_focus_zone_depth ... ok [INFO] [stdout] test depth_of_field::tests::test_dof_analyzer_super35_coc ... ok [INFO] [stdout] test depth_of_field::tests::test_dof_compute_focus_within_zone ... ok [INFO] [stdout] test depth_of_field::tests::test_dof_analyzer_full_frame_coc ... ok [INFO] [stdout] test composition::rules::tests::test_phi_grid_fields_present ... ok [INFO] [stdout] test depth_of_field::tests::test_front_rear_depth_sum ... ok [INFO] [stdout] test depth_of_field::tests::test_longer_focal_shallower_dof ... ok [INFO] [stdout] test depth_of_field::tests::test_wide_aperture_shallower_dof ... ok [INFO] [stdout] test depth_of_field::tests::test_is_shallow_dof ... ok [INFO] [stdout] test detect::face::tests::test_face_detector_invalid_size ... ok [INFO] [stdout] test depth_of_field::tests::test_sharp_region_near_far ... ok [INFO] [stdout] test detect::face::tests::test_face_detector_creation ... ok [INFO] [stdout] test depth_of_field::tests::test_focus_zone_infinity ... ok [INFO] [stdout] test depth_of_field::tests::test_hyperfocal_distance_positive ... ok [INFO] [stdout] test detect::face::tests::test_integral_image ... ok [INFO] [stdout] test detect::face::tests::test_nms_applied_to_face_detections ... ok [INFO] [stdout] test detect::object::tests::test_object_type_name ... ok [INFO] [stdout] test detect::object::tests::test_nms ... ok [INFO] [stdout] test detect::tests::test_nms_no_overlap ... ok [INFO] [stdout] test detect::tests::test_nms_empty ... ok [INFO] [stdout] test detect::tests::test_nms_removes_overlapping ... ok [INFO] [stdout] test detect::text::tests::test_edge_detection ... ok [INFO] [stdout] test emotion_recognition::tests::test_emotion_all ... ok [INFO] [stdout] test emotion_recognition::tests::test_custom_config ... ok [INFO] [stdout] test detect::text::tests::test_merge_rects ... ok [INFO] [stdout] test emotion_recognition::tests::test_emotion_valence_arousal ... ok [INFO] [stdout] test detect::logo::tests::test_logo_detector ... ok [INFO] [stdout] test emotion_recognition::tests::test_recognize_basic ... ok [INFO] [stdout] test emotion_recognition::tests::test_recognize_invalid_dimensions ... ok [INFO] [stdout] test emotion_recognition::tests::test_recognize_tiny_face ... ok [INFO] [stdout] test crowd_density::tests::test_tracker_trend_increasing ... ok [INFO] [stdout] test emotion_recognition::tests::test_emotion_labels ... ok [INFO] [stdout] test emotion_recognition::tests::test_valence_arousal_computed ... ok [INFO] [stdout] test event::detector::tests::test_event_type_name ... ok [INFO] [stdout] test features::descriptor::tests::test_feature_matcher ... ok [INFO] [stdout] test detect::logo::tests::test_temporal_detection ... ok [INFO] [stdout] test composition::rules::tests::test_phi_grid_detects_phi_positioned_interest ... ok [INFO] [stdout] test features::extract::tests::test_hog_features ... ok [INFO] [stdout] test lighting_analysis::tests::test_analyze_bright_uniform ... ok [INFO] [stdout] test emotion_recognition::tests::test_scores_sum_to_one ... ok [INFO] [stdout] test lighting_analysis::tests::test_analyze_dark_frame ... ok [INFO] [stdout] test lighting_analysis::tests::test_analyze_empty_frame ... ok [INFO] [stdout] test lighting_analysis::tests::test_analyzer_with_config ... ok [INFO] [stdout] test lighting_analysis::tests::test_clip_percentages_all_clipped ... ok [INFO] [stdout] test lighting_analysis::tests::test_exposure_bias_middle_gray ... ok [INFO] [stdout] test lighting_analysis::tests::test_exposure_bias_overexposed ... ok [INFO] [stdout] test lighting_analysis::tests::test_clip_percentages_no_clipping ... ok [INFO] [stdout] test aesthetic::score::tests::test_aesthetic_scorer_uniform ... ok [INFO] [stdout] test lighting_analysis::tests::test_exposure_bias_underexposed ... ok [INFO] [stdout] test lighting_analysis::tests::test_contrast_ratio_high ... ok [INFO] [stdout] test lighting_analysis::tests::test_light_direction_left_bright ... ok [INFO] [stdout] test lighting_analysis::tests::test_light_source_type_label ... ok [INFO] [stdout] test lighting_analysis::tests::test_luminance_stats_binary ... ok [INFO] [stdout] test lighting_analysis::tests::test_luminance_stats_uniform ... ok [INFO] [stdout] test location::tests::test_location_analyzer_brightness_clamped ... ok [INFO] [stdout] test location::tests::test_location_analyzer_exterior ... ok [INFO] [stdout] test location::tests::test_location_analyzer_interior ... ok [INFO] [stdout] test location::tests::test_location_analyzer_not_static ... ok [INFO] [stdout] test location::tests::test_location_cluster_empty ... ok [INFO] [stdout] test location::tests::test_location_cluster_multiple_groups ... ok [INFO] [stdout] test location::tests::test_location_cluster_single_group ... ok [INFO] [stdout] test location::tests::test_location_analyzer_is_static ... ok [INFO] [stdout] test location::tests::test_location_type_symbol_exterior ... ok [INFO] [stdout] test location::tests::test_time_of_day_from_temperature_afternoon ... ok [INFO] [stdout] test location::tests::test_location_type_symbol_interior ... ok [INFO] [stdout] test location::tests::test_time_of_day_from_temperature_day ... ok [INFO] [stdout] test location::tests::test_location_tag_no_dominant_colors ... ok [INFO] [stdout] test emotion_recognition::tests::test_recognize_batch ... ok [INFO] [stdout] test location::tests::test_time_of_day_from_temperature_evening ... ok [INFO] [stdout] test lighting_analysis::tests::test_contrast_ratio_uniform ... ok [INFO] [stdout] test location::tests::test_time_of_day_from_temperature_night ... ok [INFO] [stdout] test location::tests::test_time_of_day_from_temperature_unknown ... ok [INFO] [stdout] test mood::tests::test_classify_action ... ok [INFO] [stdout] test mood::tests::test_mood_label ... ok [INFO] [stdout] test location::tests::test_time_of_day_from_temperature_dawn ... ok [INFO] [stdout] test mood::tests::test_classify_confidence_range ... ok [INFO] [stdout] test location::tests::test_time_of_day_from_temperature_morning ... ok [INFO] [stdout] test mood::tests::test_classify_horror ... ok [INFO] [stdout] test mood::tests::test_secondary_mood_present_for_close_scores ... ok [INFO] [stdout] test mood::tests::test_timeline_add_and_mood_at_frame ... ok [INFO] [stdout] test mood::tests::test_timeline_dominant_mood_empty ... ok [INFO] [stdout] test mood::tests::test_timeline_dominant_mood ... ok [INFO] [stdout] test mood::tests::test_timeline_mood_at_frame_before_first_entry ... ok [INFO] [stdout] test mood::tests::test_timeline_new_is_empty ... ok [INFO] [stdout] test motion_energy::tests::test_motion_intensity_classification ... ok [INFO] [stdout] test mood::tests::test_typical_brightness_range ... ok [INFO] [stdout] test mood::tests::test_typical_motion_range ... ok [INFO] [stdout] test motion_energy::tests::test_custom_config ... ok [INFO] [stdout] test motion_energy::tests::test_invalid_dimensions ... ok [INFO] [stdout] test motion_energy::tests::test_motion_intensity_labels ... ok [INFO] [stdout] test motion_energy::tests::test_reset ... ok [INFO] [stdout] test motion_energy::tests::test_peak_frame_detection ... ok [INFO] [stdout] test motion_energy::tests::test_single_frame_no_motion ... ok [INFO] [stdout] test object_tracker::tests::test_greedy_assignment_basic ... ok [INFO] [stdout] test motion_energy::tests::test_summarize_empty ... ok [INFO] [stdout] test object_tracker::tests::test_greedy_assignment_empty ... ok [INFO] [stdout] test object_tracker::tests::test_greedy_assignment_no_match ... ok [INFO] [stdout] test object_tracker::tests::test_greedy_assignment_partial ... ok [INFO] [stdout] test object_tracker::tests::test_kalman_acceleration ... ok [INFO] [stdout] test object_tracker::tests::test_kalman_init ... ok [INFO] [stdout] test motion_energy::tests::test_two_different_frames ... ok [INFO] [stdout] test motion_energy::tests::test_two_identical_frames ... ok [INFO] [stdout] test object_tracker::tests::test_kalman_predict ... ok [INFO] [stdout] test object_tracker::tests::test_iou_matching_correctness ... ok [INFO] [stdout] test object_tracker::tests::test_kalman_state_vector ... ok [INFO] [stdout] test object_tracker::tests::test_kalman_update_moves_state ... ok [INFO] [stdout] test object_tracker::tests::test_kalman_velocity_magnitude ... ok [INFO] [stdout] test object_tracker::tests::test_reacquire_lost_track ... ok [INFO] [stdout] test object_tracker::tests::test_track_state_transitions ... ok [INFO] [stdout] test object_tracker::tests::test_tracker_confirm_after_hits ... ok [INFO] [stdout] test object_tracker::tests::test_tracker_create ... ok [INFO] [stdout] test object_tracker::tests::test_tracker_deleted_after_long_absence ... ok [INFO] [stdout] test object_tracker::tests::test_tracker_id_assignment ... ok [INFO] [stdout] test object_tracker::tests::test_tracker_lost_after_no_update ... ok [INFO] [stdout] test motion_energy::tests::test_quadrant_energy ... ok [INFO] [stdout] test object_tracker::tests::test_tracker_multiple_objects ... ok [INFO] [stdout] test object_tracker::tests::test_tracker_reset ... ok [INFO] [stdout] test motion_energy::tests::test_summarize_with_frames ... ok [INFO] [stdout] test object_tracker::tests::test_occlusion_prediction ... ok [INFO] [stdout] test pacing::tests::test_classify_pacing_hyperactive ... ok [INFO] [stdout] test object_tracker::tests::test_max_tracks_limit ... ok [INFO] [stdout] test pacing::tests::test_classify_pacing_fast ... ok [INFO] [stdout] test pacing::tests::test_classify_pacing_slow ... ok [INFO] [stdout] test pacing::tests::test_classify_pacing_moderate ... ok [INFO] [stdout] test composition::rules::tests::test_composition_analyzer_uniform ... ok [INFO] [stdout] test object_tracker::tests::test_tracker_single_detection ... ok [INFO] [stdout] test pacing::tests::test_detect_pacing_changes_empty ... ok [INFO] [stdout] test pacing::tests::test_pacing_metrics_is_fast_paced_boundary ... ok [INFO] [stdout] test pacing::tests::test_detect_pacing_changes_single_window ... ok [INFO] [stdout] test pacing::tests::test_detect_pacing_changes_multiple_windows ... ok [INFO] [stdout] test composition::rules::tests::test_rule_of_thirds_with_positioned_spot ... ok [INFO] [stdout] test detect::text::tests::test_text_detector ... ok [INFO] [stdout] test features::extract::tests::test_local_features ... ok [INFO] [stdout] test pacing::tests::test_pacing_metrics_score_slow ... ok [INFO] [stdout] test pacing::tests::test_rhythm_deviation_nonzero ... ok [INFO] [stdout] test pacing::tests::test_pacing_metrics_score_fast ... ok [INFO] [stdout] test detect::face::tests::test_face_detector_custom_config ... ok [INFO] [stdout] test pacing::tests::test_rhythm_deviation_uniform ... ok [INFO] [stdout] test pacing::tests::test_shot_list_empty_metrics ... ok [INFO] [stdout] test pacing::tests::test_shot_list_metrics_basic ... ok [INFO] [stdout] test pacing::tests::test_shot_list_cut_rate ... ok [INFO] [stdout] test saliency::detect::tests::test_spectral_saliency_invalid_dimensions ... ok [INFO] [stdout] test saliency::detect::tests::test_spectral_saliency_reuse_buffers ... ok [INFO] [stdout] test saliency::detect::tests::test_spectral_saliency_output_size_matches_input ... ok [INFO] [stdout] test saliency::temporal::tests::test_temporal_saliency_invalid_size ... ok [INFO] [stdout] test scene_boundary::tests::test_auto_calibrate_then_detect ... ok [INFO] [stdout] test detect::face::tests::test_multiscale_runs_at_different_sizes ... ok [INFO] [stdout] test scene_boundary::tests::test_confidence_clamped ... ok [INFO] [stdout] test scene_boundary::tests::test_detect_dissolve ... ok [INFO] [stdout] test scene_boundary::tests::test_detect_single_hard_cut ... ok [INFO] [stdout] test scene_boundary::tests::test_dissolve_is_not_hard_cut ... ok [INFO] [stdout] test scene_boundary::tests::test_duration_dissolve ... ok [INFO] [stdout] test scene_boundary::tests::test_auto_calibrate_mutates_thresholds ... ok [INFO] [stdout] test scene_boundary::tests::test_duration_hard_cut_zero ... ok [INFO] [stdout] test scene_boundary::tests::test_estimate_thresholds_consistent_sequence ... ok [INFO] [stdout] test scene_boundary::tests::test_estimate_thresholds_insufficient_data ... ok [INFO] [stdout] test scene_boundary::tests::test_estimate_thresholds_percentile_clamp ... ok [INFO] [stdout] test scene_boundary::tests::test_gradual_run_too_short_ignored ... ok [INFO] [stdout] test scene_boundary::tests::test_hard_cut_is_hard_cut ... ok [INFO] [stdout] test scene_boundary::tests::test_is_confident ... ok [INFO] [stdout] test scene_boundary::tests::test_multiple_hard_cuts ... ok [INFO] [stdout] test scene_boundary::tests::test_empty_detector ... ok [INFO] [stdout] test scene_boundary::tests::test_reset_clears_frames ... ok [INFO] [stdout] test scene_boundary::tests::test_sorted_output ... ok [INFO] [stdout] test scene_graph::tests::test_add_child_idempotent ... ok [INFO] [stdout] test scene_graph::tests::test_node_contains_frame ... ok [INFO] [stdout] test scene_graph::tests::test_node_duration_frames ... ok [INFO] [stdout] test scene_graph::tests::test_node_type_level ... ok [INFO] [stdout] test scene_graph::tests::test_node_duration_frames_saturates ... ok [INFO] [stdout] test scene_graph::tests::test_root_nodes_multiple ... ok [INFO] [stdout] test scene_graph::tests::test_root_nodes_single ... ok [INFO] [stdout] test scene_graph::tests::test_scene_graph_add_child_missing_child ... ok [INFO] [stdout] test scene_graph::tests::test_scene_graph_add_child_missing_parent ... ok [INFO] [stdout] test scene_graph::tests::test_scene_graph_add_child_success ... ok [INFO] [stdout] test scene_graph::tests::test_scene_graph_add_node_ids ... ok [INFO] [stdout] test scene_graph::tests::test_scene_graph_node_data ... ok [INFO] [stdout] test scene_graph::tests::test_walker_missing_root ... ok [INFO] [stdout] test scene_graph::tests::test_scene_graph_find ... ok [INFO] [stdout] test scene_metadata::tests::test_add_and_has_tag ... ok [INFO] [stdout] test scene_metadata::tests::test_default_metadata ... ok [INFO] [stdout] test scene_graph::tests::test_walker_visits_all ... ok [INFO] [stdout] test saliency::detect::tests::test_spectral_saliency_salient_spot ... ok [INFO] [stdout] test scene_metadata::tests::test_has_tag_false ... ok [INFO] [stdout] test scene_metadata::tests::test_is_daylight_true ... ok [INFO] [stdout] test scene_metadata::tests::test_is_outdoor_false ... ok [INFO] [stdout] test scene_metadata::tests::test_is_outdoor_true ... ok [INFO] [stdout] test scene_metadata::tests::test_iter_yields_all_tags ... ok [INFO] [stdout] test scene_metadata::tests::test_keywords_add_and_contains ... ok [INFO] [stdout] test scene_metadata::tests::test_keywords_is_empty ... ok [INFO] [stdout] test scene_metadata::tests::test_keywords_merge ... ok [INFO] [stdout] test scene_metadata::tests::test_keywords_merge_deduplicates ... ok [INFO] [stdout] test scene_metadata::tests::test_len_after_adds ... ok [INFO] [stdout] test scene_metadata::tests::test_len_empty ... ok [INFO] [stdout] test scene_metadata::tests::test_is_daylight_false ... ok [INFO] [stdout] test scene_metadata::tests::test_metadata_tags_integration ... ok [INFO] [stdout] test scene_score::tests::test_empty_aggregate_is_zero ... ok [INFO] [stdout] test scene_score::tests::test_all_pass ... ok [INFO] [stdout] test scene_score::tests::test_get_category_not_found ... ok [INFO] [stdout] test scene_score::tests::test_into_scores ... ok [INFO] [stdout] test scene_score::tests::test_is_video_category ... ok [INFO] [stdout] test scene_score::tests::test_labels_non_empty ... ok [INFO] [stdout] test scene_score::tests::test_len_and_is_empty ... ok [INFO] [stdout] test scene_score::tests::test_max_min_scores ... ok [INFO] [stdout] test scene_score::tests::test_pass_count ... ok [INFO] [stdout] test scene_score::tests::test_get_category_found ... ok [INFO] [stdout] test scene_score::tests::test_score_clamped_high ... ok [INFO] [stdout] test scene_score::tests::test_passes ... ok [INFO] [stdout] test scene_score::tests::test_single_score_aggregate ... ok [INFO] [stdout] test scene_score::tests::test_uniform_weight_average ... ok [INFO] [stdout] test saliency::temporal::tests::test_temporal_saliency_accumulation ... ok [INFO] [stdout] test scene_score::tests::test_weight_clamped_negative ... ok [INFO] [stdout] test scene_score::tests::test_weighted_average ... ok [INFO] [stdout] test scene_score::tests::test_weighted_value ... ok [INFO] [stdout] test scene_stats::tests::test_avg_duration_multiple ... ok [INFO] [stdout] test scene_stats::tests::test_avg_duration_single ... ok [INFO] [stdout] test scene_stats::tests::test_clear ... ok [INFO] [stdout] test scene_stats::tests::test_longest_scene ... ok [INFO] [stdout] test scene_stats::tests::test_mean_luminance ... ok [INFO] [stdout] test scene_stats::tests::test_mean_motion ... ok [INFO] [stdout] test scene_stats::tests::test_metrics_boundary_motion ... ok [INFO] [stdout] test scene_stats::tests::test_metrics_clamps_values ... ok [INFO] [stdout] test scene_stats::tests::test_motion_intensity_high ... ok [INFO] [stdout] test scene_stats::tests::test_motion_intensity_low ... ok [INFO] [stdout] test scene_stats::tests::test_motion_intensity_medium ... ok [INFO] [stdout] test scene_stats::tests::test_shortest_scene ... ok [INFO] [stdout] test scene_stats::tests::test_stats_empty ... ok [INFO] [stdout] test scene_stats::tests::test_stats_update_and_count ... ok [INFO] [stdout] test segment::semantic::tests::test_semantic_segmenter ... ok [INFO] [stdout] test segment::tests::test_segmenter_invalid_dimensions ... ok [INFO] [stdout] test saliency::temporal::tests::test_temporal_saliency_single_frame ... ok [INFO] [stdout] test scene_score::tests::test_any_pass ... ok [INFO] [stdout] test scene_score::tests::test_score_clamped_low ... ok [INFO] [stdout] test scene_boundary::tests::test_boundary_type_names ... ok [INFO] [stdout] test scene_score::tests::test_unit_weight_one ... ok [INFO] [stdout] test segment::tests::test_segmenter_small_image ... ok [INFO] [stdout] test segmentation::tests::test_default_config ... ok [INFO] [stdout] test segmentation::tests::test_detect_boundaries_count ... ok [INFO] [stdout] test segmentation::tests::test_detect_cuts_have_correct_transition ... ok [INFO] [stdout] test segmentation::tests::test_detect_no_boundaries_below_threshold ... ok [INFO] [stdout] test segmentation::tests::test_group_into_scenes_no_boundaries ... ok [INFO] [stdout] test segmentation::tests::test_group_into_scenes_with_boundaries ... ok [INFO] [stdout] test segmentation::tests::test_scene_duration_positive ... ok [INFO] [stdout] test segmentation::tests::test_scene_group_shot_count ... ok [INFO] [stdout] test segmentation::tests::test_stats_avg_shots_positive ... ok [INFO] [stdout] test segmentation::tests::test_stats_shot_count_matches_boundaries ... ok [INFO] [stdout] test segmentation::tests::test_stats_total_frames ... ok [INFO] [stdout] test segmentation::tests::test_transition_kinds_are_distinct ... ok [INFO] [stdout] test segmentation::tests::test_with_config ... ok [INFO] [stdout] test shot_type::tests::test_abbreviation_cu ... ok [INFO] [stdout] test shot_type::tests::test_abbreviation_ews ... ok [INFO] [stdout] test shot_type::tests::test_abbreviations_non_empty ... ok [INFO] [stdout] test shot_type::tests::test_detector_classify_closeup ... ok [INFO] [stdout] test shot_type::tests::test_detector_classify_extreme_closeup ... ok [INFO] [stdout] test shot_type::tests::test_detector_classify_extreme_wide ... ok [INFO] [stdout] test shot_type::tests::test_detector_classify_medium ... ok [INFO] [stdout] test shot_type::tests::test_detector_classify_wide ... ok [INFO] [stdout] test shot_type::tests::test_detector_confidence_in_range ... ok [INFO] [stdout] test shot_type::tests::test_is_close ... ok [INFO] [stdout] test shot_type::tests::test_is_wide ... ok [INFO] [stdout] test shot_type::tests::test_stats_count_by_type ... ok [INFO] [stdout] test shot_type::tests::test_stats_fraction ... ok [INFO] [stdout] test shot_type::tests::test_stats_most_common ... ok [INFO] [stdout] test shot_type::tests::test_stats_most_common_empty ... ok [INFO] [stdout] test shot_type::tests::test_stats_total ... ok [INFO] [stdout] test shot_type::tests::test_typical_focal_ranges_ordered ... ok [INFO] [stdout] test storyboard::tests::test_frame_is_empty ... ok [INFO] [stdout] test storyboard::tests::test_frame_not_empty_notes ... ok [INFO] [stdout] test storyboard::tests::test_frame_not_empty_thumbnail ... ok [INFO] [stdout] test storyboard::tests::test_keyframe_selector_basic ... ok [INFO] [stdout] test storyboard::tests::test_keyframe_selector_n_exceeds_frames ... ok [INFO] [stdout] test storyboard::tests::test_keyframe_selector_single ... ok [INFO] [stdout] test storyboard::tests::test_keyframe_selector_zero_n ... ok [INFO] [stdout] test storyboard::tests::test_panel_frame_count ... ok [INFO] [stdout] test storyboard::tests::test_panel_key_frames ... ok [INFO] [stdout] test storyboard::tests::test_panel_no_key_frames ... ok [INFO] [stdout] test storyboard::tests::test_storyboard_export_summary_counts ... ok [INFO] [stdout] test storyboard::tests::test_storyboard_export_summary_title ... ok [INFO] [stdout] test storyboard::tests::test_storyboard_panel_count ... ok [INFO] [stdout] test storyboard::tests::test_storyboard_total_frames ... ok [INFO] [stdout] test storyboard::tests::test_storyboard_total_frames_empty ... ok [INFO] [stdout] test summarization::tests::test_avg_shot_duration ... ok [INFO] [stdout] test summarization::tests::test_avg_shot_duration_zero ... ok [INFO] [stdout] test summarization::tests::test_has_dialog_no_key_shots ... ok [INFO] [stdout] test summarization::tests::test_has_dialog_with_key_shots ... ok [INFO] [stdout] test summarization::tests::test_is_key_shot_dialog ... ok [INFO] [stdout] test summarization::tests::test_is_key_shot_faces ... ok [INFO] [stdout] test summarization::tests::test_is_key_shot_motion ... ok [INFO] [stdout] test summarization::tests::test_is_key_shot_motion_boundary ... ok [INFO] [stdout] test segmentation::tests::test_segmenter_new ... ok [INFO] [stdout] test summarization::tests::test_is_not_key_shot ... ok [INFO] [stdout] test summarization::tests::test_narrative_importance_ratio ... ok [INFO] [stdout] test segmentation::tests::test_detect_dissolve_transition ... ok [INFO] [stdout] test summarization::tests::test_select_key_shots_limit ... ok [INFO] [stdout] test summarization::tests::test_summarization_config_default ... ok [INFO] [stdout] test summarization::tests::test_summarize_empty ... ok [INFO] [stdout] test summarization::tests::test_summarize_total_frames ... ok [INFO] [stdout] test summarization::tests::test_summarize_with_id ... ok [INFO] [stdout] test tests::test_confidence ... ok [INFO] [stdout] test tests::test_rect_area ... ok [INFO] [stdout] test tests::test_rect_center ... ok [INFO] [stdout] test tests::test_rect_contains ... ok [INFO] [stdout] test tests::test_rect_iou ... ok [INFO] [stdout] test text_detect::tests::test_classify_overlay_bottom ... ok [INFO] [stdout] test text_detect::tests::test_classify_scene_text_center ... ok [INFO] [stdout] test text_detect::tests::test_compute_confidence_range ... ok [INFO] [stdout] test tests::test_point_distance ... ok [INFO] [stdout] test text_detect::tests::test_create_default ... ok [INFO] [stdout] test text_detect::tests::test_create_with_config ... ok [INFO] [stdout] test text_detect::tests::test_detect_orientation_horizontal ... ok [INFO] [stdout] test text_detect::tests::test_detect_orientation_vertical ... ok [INFO] [stdout] test text_detect::tests::test_edge_density_score_good_range ... ok [INFO] [stdout] test text_detect::tests::test_edge_density_score_low ... ok [INFO] [stdout] test text_detect::tests::test_estimate_rotation_angle_flat ... ok [INFO] [stdout] test text_detect::tests::test_gradient_directions_length ... ok [INFO] [stdout] test text_detect::tests::test_invalid_dimensions ... ok [INFO] [stdout] test text_detect::tests::test_merge_rects_close ... ok [INFO] [stdout] test text_detect::tests::test_merge_rects_disjoint ... ok [INFO] [stdout] test text_detect::tests::test_merge_rects_empty ... ok [INFO] [stdout] test text_detect::tests::test_projection_variance_constant ... ok [INFO] [stdout] test text_detect::tests::test_projection_variance_varying ... ok [INFO] [stdout] test text_detect::tests::test_rects_close_false ... ok [INFO] [stdout] test text_detect::tests::test_rects_close_true ... ok [INFO] [stdout] test text_detect::tests::test_region_contrast_full_range ... ok [INFO] [stdout] test text_detect::tests::test_region_contrast_uniform ... ok [INFO] [stdout] test text_detect::tests::test_region_intensity_uniformity_solid ... ok [INFO] [stdout] test text_detect::tests::test_rgb_to_gray_length ... ok [INFO] [stdout] test text_detect::tests::test_rgb_to_gray_white ... ok [INFO] [stdout] test event::detector::tests::test_event_detector ... ok [INFO] [stdout] test text_detect::tests::test_sobel_edges_gradient ... ok [INFO] [stdout] test text_detect::tests::test_sobel_edges_solid ... ok [INFO] [stdout] test text_detect::tests::test_solid_image_no_text ... ok [INFO] [stdout] test text_detect::tests::test_text_region_fields ... ok [INFO] [stdout] test text_detect::tests::test_too_small_image ... ok [INFO] [stdout] test text_detect::tests::test_union_rect ... ok [INFO] [stdout] test text_detect::tests::test_window_edge_density_empty ... ok [INFO] [stdout] test text_detect::tests::test_window_edge_density_full ... ok [INFO] [stdout] test thumbnail_selector::tests::test_color_diversity_uniform ... ok [INFO] [stdout] test thumbnail_selector::tests::test_color_diversity_varied ... ok [INFO] [stdout] test thumbnail_selector::tests::test_custom_config ... ok [INFO] [stdout] test thumbnail_selector::tests::test_invalid_dimensions ... ok [INFO] [stdout] test saliency::temporal::tests::test_temporal_saliency_custom_config ... ok [INFO] [stdout] test saliency::detect::tests::test_spectral_saliency_uniform_image ... ok [INFO] [stdout] test thumbnail_selector::tests::test_score_uniform_frame ... ok [INFO] [stdout] test thumbnail_selector::tests::test_score_varied_frame ... ok [INFO] [stdout] test thumbnail_selector::tests::test_select_best_empty ... ok [INFO] [stdout] test thumbnail_selector::tests::test_select_best_single ... ok [INFO] [stdout] test thumbnail_selector::tests::test_sharpness_range ... ok [INFO] [stdout] test transition::tests::test_analyzer_avg_duration ... ok [INFO] [stdout] test transition::tests::test_analyzer_cut_ratio ... ok [INFO] [stdout] test transition::tests::test_analyzer_cut_ratio_empty ... ok [INFO] [stdout] test transition::tests::test_analyzer_most_common ... ok [INFO] [stdout] test transition::tests::test_analyzer_most_common_empty ... ok [INFO] [stdout] test transition::tests::test_detect_transition_type_cut ... ok [INFO] [stdout] test transition::tests::test_detect_transition_type_dissolve ... ok [INFO] [stdout] test transition::tests::test_detect_transition_type_empty ... ok [INFO] [stdout] test transition::tests::test_detect_transition_type_fade ... ok [INFO] [stdout] test transition::tests::test_duration_frames ... ok [INFO] [stdout] test transition::tests::test_is_hard_cut_false_for_dissolve ... ok [INFO] [stdout] test transition::tests::test_is_hard_cut_true ... ok [INFO] [stdout] test transition::tests::test_scene_transition_confidence_clamping ... ok [INFO] [stdout] test transition::tests::test_scene_transition_new ... ok [INFO] [stdout] test transition::tests::test_transition_type_is_gradual ... ok [INFO] [stdout] test transition::tests::test_transition_type_label ... ok [INFO] [stdout] test visual_rhythm::tests::test_column_extraction ... ok [INFO] [stdout] test visual_rhythm::tests::test_compute_stats_empty ... ok [INFO] [stdout] test visual_rhythm::tests::test_compute_stats_values ... ok [INFO] [stdout] test visual_rhythm::tests::test_default_config ... ok [INFO] [stdout] test visual_rhythm::tests::test_detect_events_empty ... ok [INFO] [stdout] test visual_rhythm::tests::test_detect_no_events_uniform ... ok [INFO] [stdout] test visual_rhythm::tests::test_detect_scene_cut ... ok [INFO] [stdout] test visual_rhythm::tests::test_extract_rhythm_mean_projection ... ok [INFO] [stdout] test visual_rhythm::tests::test_extract_rhythm_multiple_frames ... ok [INFO] [stdout] test visual_rhythm::tests::test_extract_rhythm_no_frames ... ok [INFO] [stdout] test visual_rhythm::tests::test_extract_rhythm_single_frame ... ok [INFO] [stdout] test visual_rhythm::tests::test_extract_rhythm_stride ... ok [INFO] [stdout] test visual_rhythm::tests::test_get_out_of_bounds ... ok [INFO] [stdout] test visual_rhythm::tests::test_visual_rhythm_empty ... ok [INFO] [stdout] test thumbnail_selector::tests::test_select_best_multiple ... ok [INFO] [stdout] test segment::tests::test_segmenter_large_image_parallel ... ok [INFO] [stdout] test storyboard::tests::test_keyframe_selector_zero_frames ... ok [INFO] [stdout] test text_detect::tests::test_stroke_consistency_empty ... ok [INFO] [stdout] test saliency::temporal::tests::test_temporal_saliency_reset ... ok [INFO] [stdout] test detect::face::tests::test_face_detection_uniform ... ok [INFO] [stdout] test segment::tests::test_segmenter_parallel_same_as_sequential ... ok [INFO] [stdout] test saliency::temporal::tests::test_temporal_saliency_two_frames ... ok [INFO] [stdout] test saliency::temporal::tests::test_temporal_saliency_identical_frames ... ok [INFO] [stdout] test text_detect::tests::test_detect_text_bar ... ok [INFO] [stdout] test text_detect::tests::test_confidence_sorted_descending ... ok [INFO] [stdout] test activity::recognize::tests::test_activity_recognizer ... ok [INFO] [stdout] test detect::object::tests::test_object_detector ... ok [INFO] [stdout] test saliency::detect::tests::test_saliency_detector ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 640 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.64s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_scene [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test src/adaptive_scene.rs - adaptive_scene::RollingSceneDetector (line 549) ... ok [INFO] [stdout] test src/adaptive_scene.rs - adaptive_scene::AdaptiveSceneDetector (line 327) ... ok [INFO] [stdout] test src/lib.rs - (line 43) ... ok [INFO] [stdout] test src/complexity_detector.rs - complexity_detector (line 41) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.21s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "f9ff8dd9ca18d68c3227a43531d35ffb10c164fe87a533730239a7a41ecbc273", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f9ff8dd9ca18d68c3227a43531d35ffb10c164fe87a533730239a7a41ecbc273", kill_on_drop: false }` [INFO] [stdout] f9ff8dd9ca18d68c3227a43531d35ffb10c164fe87a533730239a7a41ecbc273