[INFO] fetching crate oximedia-watermark 0.1.3... [INFO] testing oximedia-watermark-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-watermark 0.1.3 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate oximedia-watermark 0.1.3 [INFO] finished tweaking crates.io crate oximedia-watermark 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-watermark 0.1.3 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-watermark 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-watermark 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] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-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] cd5de25ab4b971bbbd5d97d556c93d436efeb59089d23744871b479ebf30ad28 [INFO] running `Command { std: "docker" "start" "-a" "cd5de25ab4b971bbbd5d97d556c93d436efeb59089d23744871b479ebf30ad28", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cd5de25ab4b971bbbd5d97d556c93d436efeb59089d23744871b479ebf30ad28", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cd5de25ab4b971bbbd5d97d556c93d436efeb59089d23744871b479ebf30ad28", kill_on_drop: false }` [INFO] [stdout] cd5de25ab4b971bbbd5d97d556c93d436efeb59089d23744871b479ebf30ad28 [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] 11a8b1f0810a581ef5a72ebf9cf2fa198cb791c9bfc9fb610235cfad6156eba0 [INFO] running `Command { std: "docker" "start" "-a" "11a8b1f0810a581ef5a72ebf9cf2fa198cb791c9bfc9fb610235cfad6156eba0", kill_on_drop: false }` [INFO] [stderr] Compiling rand_core v0.10.1 [INFO] [stderr] Compiling ahash v0.7.8 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling audio-core v0.2.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.8.6 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling instant v0.1.13 [INFO] [stderr] Compiling oxifft v0.2.0 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling scirs2-core v0.4.2 [INFO] [stderr] Compiling oxifft-codegen v0.2.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling visibility v0.1.1 [INFO] [stderr] Compiling audioadapter v3.0.0 [INFO] [stderr] Compiling audioadapter-sample v3.0.0 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling windowfunctions v0.1.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling primal-check v0.3.4 [INFO] [stderr] Compiling transpose v0.2.3 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling spin v0.10.0 [INFO] [stderr] Compiling seahash v4.1.0 [INFO] [stderr] Compiling reed-solomon-erasure v6.0.0 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling audioadapter-buffers v3.0.0 [INFO] [stderr] Compiling parking_lot v0.11.2 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling rand_chacha v0.10.0 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling oxiarc-core v0.2.6 [INFO] [stderr] Compiling safe_arch v1.0.0 [INFO] [stderr] Compiling rand_distr v0.5.1 [INFO] [stderr] Compiling rand_distr v0.6.0 [INFO] [stderr] Compiling lru v0.7.8 [INFO] [stderr] Compiling oxiarc-lz4 v0.2.6 [INFO] [stderr] Compiling oxiarc-zstd v0.2.6 [INFO] [stderr] Compiling wide v1.3.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling oximedia-core v0.1.3 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling oxiblas-core v0.2.1 [INFO] [stderr] Compiling ndarray v0.17.2 [INFO] [stderr] Compiling rustfft v6.4.1 [INFO] [stderr] Compiling oxiblas-matrix v0.2.1 [INFO] [stderr] Compiling oxiblas-blas v0.2.1 [INFO] [stderr] Compiling oxiblas-lapack v0.2.1 [INFO] [stderr] Compiling ndarray-rand v0.16.0 [INFO] [stderr] Compiling realfft v3.5.0 [INFO] [stderr] Compiling rubato v2.0.0 [INFO] [stderr] Compiling oximedia-audio v0.1.3 [INFO] [stderr] Compiling oxiblas-ndarray v0.2.1 [INFO] [stderr] Compiling oximedia-watermark v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 11s [INFO] running `Command { std: "docker" "inspect" "11a8b1f0810a581ef5a72ebf9cf2fa198cb791c9bfc9fb610235cfad6156eba0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "11a8b1f0810a581ef5a72ebf9cf2fa198cb791c9bfc9fb610235cfad6156eba0", kill_on_drop: false }` [INFO] [stdout] 11a8b1f0810a581ef5a72ebf9cf2fa198cb791c9bfc9fb610235cfad6156eba0 [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] 06fce4a83df07a1978e72727c9b4de9cae027e47d5d20d1ae1e44d3a15ae4cea [INFO] running `Command { std: "docker" "start" "-a" "06fce4a83df07a1978e72727c9b4de9cae027e47d5d20d1ae1e44d3a15ae4cea", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-watermark v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 6.68s [INFO] running `Command { std: "docker" "inspect" "06fce4a83df07a1978e72727c9b4de9cae027e47d5d20d1ae1e44d3a15ae4cea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "06fce4a83df07a1978e72727c9b4de9cae027e47d5d20d1ae1e44d3a15ae4cea", kill_on_drop: false }` [INFO] [stdout] 06fce4a83df07a1978e72727c9b4de9cae027e47d5d20d1ae1e44d3a15ae4cea [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] a002d868bf8faa4f537336926fddf3d98ac742b0e28db06b0e63ad089e02f45f [INFO] running `Command { std: "docker" "start" "-a" "a002d868bf8faa4f537336926fddf3d98ac742b0e28db06b0e63ad089e02f45f", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_watermark-fa1639384b34ffda) [INFO] [stdout] [INFO] [stdout] running 563 tests [INFO] [stdout] test attacks::tests::test_inversion ... ok [INFO] [stdout] test attacks::tests::test_amplitude_scale ... ok [INFO] [stdout] test audio_watermark::tests::test_decode_bit_fsk_empty ... ok [INFO] [stdout] test audio_watermark::tests::test_config_default_duration ... ok [INFO] [stdout] test attacks::tests::test_compression ... ok [INFO] [stdout] test audio_watermark::tests::test_config_default_carrier ... ok [INFO] [stdout] test audio_watermark::tests::test_decode_bit_fsk_zero_bit ... ok [INFO] [stdout] test attacks::tests::test_time_stretch ... ok [INFO] [stdout] test audio_watermark::tests::test_decoder_returns_none_for_short_audio ... ok [INFO] [stdout] test audio_watermark::tests::test_encode_bit_fsk_amplitude_range ... ok [INFO] [stdout] test audio_watermark::tests::test_samples_per_bit ... ok [INFO] [stdout] test audio_watermark::tests::test_config_default_bits ... ok [INFO] [stdout] test attacks::tests::test_resampling ... ok [INFO] [stdout] test attacks::tests::test_mp3_compression ... ok [INFO] [stdout] test audio_watermark::tests::test_decode_bit_fsk_one_bit ... ok [INFO] [stdout] test audio_watermark::tests::test_embed_preserves_length ... ok [INFO] [stdout] test attacks::tests::test_noise_addition ... ok [INFO] [stdout] test audio_watermark::tests::test_encode_bit_fsk_differs_by_bit ... ok [INFO] [stdout] test audio_watermark::tests::test_encode_bit_fsk_length ... ok [INFO] [stdout] test attacks::tests::test_lowpass_filter ... ok [INFO] [stdout] test audio_watermark::tests::test_encoder_encode_length ... ok [INFO] [stdout] test audio_watermark::tests::test_embed_adds_watermark ... ok [INFO] [stdout] test bark_masking::tests::test_bark_roundtrip ... ok [INFO] [stdout] test bark_masking::tests::test_erb_bandwidth ... ok [INFO] [stdout] test bark_masking::tests::test_hz_to_bark_known_values ... ok [INFO] [stdout] test bark_masking::tests::test_schroeder_spreading ... ok [INFO] [stdout] test bark_masking::tests::test_bark_masking_model_48k ... ok [INFO] [stdout] test bark_masking::tests::test_critical_band_coverage ... ok [INFO] [stdout] test bark_masking::tests::test_bark_masking_model_construction ... ok [INFO] [stdout] test audio_watermark::tests::test_encode_decode_roundtrip ... ok [INFO] [stdout] test bark_masking::tests::test_tonality_estimation_tone ... ok [INFO] [stdout] test bark_masking::tests::test_terhardt_threshold ... ok [INFO] [stdout] test bark_masking::tests::test_masking_analysis_1khz_tone ... ok [INFO] [stdout] test bark_masking::tests::test_temporal_masking ... ok [INFO] [stdout] test batch_embed::tests::test_empty_batch ... ok [INFO] [stdout] test batch_embed::tests::test_metrics_present_when_enabled ... ok [INFO] [stdout] test batch_embed::tests::test_output_same_length_as_input ... ok [INFO] [stdout] test bark_masking::tests::test_watermark_budget ... ok [INFO] [stdout] test batch_embed::tests::test_batch_id_increments ... ok [INFO] [stdout] test batch_embed::tests::test_batch_embedder_creation ... ok [INFO] [stdout] test batch_embed::tests::test_metrics_absent_when_disabled ... ok [INFO] [stdout] test batch_embed::tests::test_embed_single_segment ... ok [INFO] [stdout] test batch_embed::tests::test_compute_segment_metrics_zero_len ... ok [INFO] [stdout] test batch_embed::tests::test_skip_short_segment ... ok [INFO] [stdout] test bit_packing::tests::test_bits_needed_three ... ok [INFO] [stdout] test batch_embed::tests::test_watermark_modifies_samples ... ok [INFO] [stdout] test bit_packing::tests::test_bits_needed_256 ... ok [INFO] [stdout] test bit_packing::tests::test_bits_needed_one ... ok [INFO] [stdout] test bit_packing::tests::test_bits_needed_two ... ok [INFO] [stdout] test batch_embed::tests::test_embed_multiple_segments ... ok [INFO] [stdout] test batch_embed::tests::test_is_eligible ... ok [INFO] [stdout] test bark_masking::tests::test_masking_threshold_shape ... ok [INFO] [stdout] test bit_packing::tests::test_crc8_deterministic ... ok [INFO] [stdout] test bit_packing::tests::test_crc8_different_data ... ok [INFO] [stdout] test bit_packing::tests::test_crc8_empty ... ok [INFO] [stdout] test batch_embed::tests::test_default_config ... ok [INFO] [stdout] test bit_packing::tests::test_echo_capacity ... ok [INFO] [stdout] test bit_packing::tests::test_pack_bits_zero_byte ... ok [INFO] [stdout] test bit_packing::tests::test_payload_header_roundtrip ... ok [INFO] [stdout] test bit_packing::tests::test_reassemble_empty ... ok [INFO] [stdout] test bit_packing::tests::test_payload_header_validate ... ok [INFO] [stdout] test bit_packing::tests::test_spread_spectrum_capacity ... ok [INFO] [stdout] test bit_packing::tests::test_spread_spectrum_capacity_zero_chips ... ok [INFO] [stdout] test bit_packing::tests::test_lsb_capacity ... ok [INFO] [stdout] test bit_packing::tests::test_pack_bits_ff_byte ... ok [INFO] [stdout] test bit_packing::tests::test_unpack_bits_empty ... ok [INFO] [stdout] test bit_packing::tests::test_payload_header_invalid_magic ... ok [INFO] [stdout] test chain_of_custody::tests::test_chain_add_event ... ok [INFO] [stdout] test bark_masking::tests::test_tonality_estimation_noise ... ok [INFO] [stdout] test bit_packing::tests::test_fragment_empty_chunk_size ... ok [INFO] [stdout] test chain_of_custody::tests::test_chain_new_empty ... ok [INFO] [stdout] test bit_packing::tests::test_pack_unpack_roundtrip ... ok [INFO] [stdout] test chain_of_custody::tests::test_chain_verify_empty ... ok [INFO] [stdout] test chain_of_custody::tests::test_chain_verify_equal_timestamps_ok ... ok [INFO] [stdout] test bit_packing::tests::test_pack_bits_single_byte ... ok [INFO] [stdout] test batch_embed::tests::test_snr_positive_for_small_strength ... ok [INFO] [stdout] test chain_of_custody::tests::test_chain_verify_monotone ... ok [INFO] [stdout] test chain_of_custody::tests::test_chain_verify_not_monotone ... ok [INFO] [stdout] test bit_packing::tests::test_fragment_reassemble_roundtrip ... ok [INFO] [stdout] test chain_of_custody::tests::test_watermark_different_chains_differ ... ok [INFO] [stdout] test chain_of_custody::tests::test_watermark_empty_chain ... ok [INFO] [stdout] test chain_of_custody::tests::test_watermark_event_count ... ok [INFO] [stdout] test chain_of_custody::tests::test_watermark_extract_too_small ... ok [INFO] [stdout] test chain_of_custody::tests::test_watermark_from_chain_deterministic ... ok [INFO] [stdout] test chain_of_custody::tests::test_watermark_embed_too_small ... ok [INFO] [stdout] test dct_watermark::tests::test_dct_block_from_slice_wrong_len ... ok [INFO] [stdout] test dct_watermark::tests::test_config_strength_clamped ... ok [INFO] [stdout] test dct_watermark::tests::test_dc_not_modified ... ok [INFO] [stdout] test dct_watermark::tests::test_dct_block_dc ... ok [INFO] [stdout] test dct_watermark::tests::test_dct_block_from_slice_ok ... ok [INFO] [stdout] test dct_watermark::tests::test_dct_block_zero ... ok [INFO] [stdout] test dct_watermark::tests::test_extract_matches_embed_false ... ok [INFO] [stdout] test dct_watermark::tests::test_extract_matches_embed_true ... ok [INFO] [stdout] test dct_watermark::tests::test_embed_extract_sequence ... ok [INFO] [stdout] test dct_watermark::tests::test_mid_freq_coefficients_length ... ok [INFO] [stdout] test chain_of_custody::tests::test_watermark_embed_roundtrip ... ok [INFO] [stdout] test detection_map::tests::test_detection_map_confidence_normalized ... ok [INFO] [stdout] test dct_watermark::tests::test_embed_bit_one_increases_mid_freq ... ok [INFO] [stdout] test detection_map::tests::test_detection_map_cell_count ... ok [INFO] [stdout] test detection_map::tests::test_detection_map_empty_correlations ... ok [INFO] [stdout] test chain_of_custody::tests::test_custody_event_types ... ok [INFO] [stdout] test detection_map::tests::test_detection_map_max_confidence_is_one ... ok [INFO] [stdout] test detection_map::tests::test_detection_map_threshold_applied ... ok [INFO] [stdout] test detection_map::tests::test_detection_rate_none_detected ... ok [INFO] [stdout] test detection_map::tests::test_detection_rate_all_detected ... ok [INFO] [stdout] test detection_map::tests::test_mean_confidence_uniform ... ok [INFO] [stdout] test detection_map::tests::test_normalized_xcorr_empty ... ok [INFO] [stdout] test detection_map::tests::test_find_peaks_single_peak ... ok [INFO] [stdout] test detection_map::tests::test_normalized_xcorr_orthogonal ... ok [INFO] [stdout] test detection_map::tests::test_normalized_xcorr_identical ... ok [INFO] [stdout] test detection_map::tests::test_smoothed_confidence_length ... ok [INFO] [stdout] test detection_map::tests::test_split_into_segments_no_overlap ... ok [INFO] [stdout] test detection_map::tests::test_split_into_segments_empty ... ok [INFO] [stdout] test detection_map::tests::test_mean_confidence_empty ... ok [INFO] [stdout] test detection_map::tests::test_split_into_segments_with_overlap ... ok [INFO] [stdout] test detection_map::tests::test_tune_threshold_empty ... ok [INFO] [stdout] test detector::tests::test_ber_calculation ... ok [INFO] [stdout] test detector::tests::test_detection_probability ... ok [INFO] [stdout] test detector::tests::test_non_blind_detection ... ok [INFO] [stdout] test detection_map::tests::test_tune_threshold_low_fpr ... ok [INFO] [stdout] test forensic::tests::test_adjust_rgba_luma_clamp ... ok [INFO] [stdout] test forensic::tests::test_all_algorithms_embed_and_detect ... ok [INFO] [stdout] test forensic::tests::test_dct_detect_returns_some ... ok [INFO] [stdout] test forensic::tests::test_dct_embed_changes_frame ... ok [INFO] [stdout] test forensic::tests::test_dct_embed_returns_nonzero ... ok [INFO] [stdout] test forensic::tests::test_dct_too_small_frame ... ok [INFO] [stdout] test detector::tests::test_spectral_flatness ... ok [INFO] [stdout] test forensic::tests::test_detect_sequence_empty_frames ... ok [INFO] [stdout] test echo::tests::test_capacity ... ok [INFO] [stdout] test echo::tests::test_autocorrelation ... ok [INFO] [stdout] test chain_of_custody::tests::test_chain_verify_single ... ok [INFO] [stdout] test dct_watermark::tests::test_embed_bit_zero_decreases_mid_freq ... ok [INFO] [stdout] test echo::tests::test_triple_echo ... ok [INFO] [stdout] test forensic::tests::test_detect_sequence_returns_result ... ok [INFO] [stdout] test forensic::tests::test_embed_sequence_modifies_all_frames ... ok [INFO] [stdout] test forensic::tests::test_frame_size_boundary ... ok [INFO] [stdout] test forensic::tests::test_luma_from_rgba_grey ... ok [INFO] [stdout] test forensic::tests::test_pn_sequence_length ... ok [INFO] [stdout] test forensic::tests::test_pn_sequence_seed_sensitive ... ok [INFO] [stdout] test forensic::tests::test_pn_sequence_values ... ok [INFO] [stdout] test forensic::tests::test_resilience_score_unmodified ... ok [INFO] [stdout] test forensic::tests::test_scatter_hash_deterministic ... ok [INFO] [stdout] test forensic::tests::test_strength_clamped ... ok [INFO] [stdout] test forensic::tests::test_scatter_hash_range ... ok [INFO] [stdout] test forensic::tests::test_resilience_empty_payload ... ok [INFO] [stdout] test forensic::tests::test_large_payload_wraps_correctly ... ok [INFO] [stdout] test forensic::tests::test_spread_embed_returns_nonzero ... ok [INFO] [stdout] test forensic::tests::test_resilience_score_bounds ... ok [INFO] [stdout] test forensic::tests::test_temporal_different_frames_differ ... ok [INFO] [stdout] test forensic::tests::test_temporal_embed_changes_frame ... ok [INFO] [stdout] test forensic::tests::test_temporal_embed_empty_payload ... ok [INFO] [stdout] test forensic::tests::test_spread_detect_returns_some ... ok [INFO] [stdout] test forensic::tests::test_temporal_embed_returns_nonzero ... ok [INFO] [stdout] test forensic::tests::test_temporal_detect_empty_payload ... ok [INFO] [stdout] test forensic::tests::test_temporal_detect_returns_some ... ok [INFO] [stdout] test forensic::tests::test_pn_sequence_deterministic ... ok [INFO] [stdout] test forensic::tests::test_spread_embed_changes_frame ... ok [INFO] [stdout] test forensic::tests::test_new_default_algorithm ... ok [INFO] [stdout] test forensic::tests::test_with_algorithm ... ok [INFO] [stdout] test forensic_watermark::tests::test_bits_to_u64_roundtrip ... ok [INFO] [stdout] test forensic_watermark::tests::test_decode_known_value ... ok [INFO] [stdout] test forensic_watermark::tests::test_dct_forward_inverse_roundtrip ... ok [INFO] [stdout] test echo::tests::test_echo_embedding ... ok [INFO] [stdout] test forensic_watermark::tests::test_detector_returns_none_for_tiny_image ... ok [INFO] [stdout] test forensic_watermark::tests::test_encode_decode_roundtrip ... ok [INFO] [stdout] test forensic_watermark::tests::test_encode_session_truncated_to_16_bits ... ok [INFO] [stdout] test forensic_watermark::tests::test_payload_to_bits_msb_first ... ok [INFO] [stdout] test forensic_watermark::tests::test_encode_zero_payload ... ok [INFO] [stdout] test forensic_watermark::tests::test_most_likely_empty ... ok [INFO] [stdout] test forensic_watermark::tests::test_most_likely_highest_confidence ... ok [INFO] [stdout] test forensic_watermark::tests::test_most_likely_single ... ok [INFO] [stdout] test forensic_watermark::tests::test_qim_distortion_bounded ... ok [INFO] [stdout] test forensic_watermark::tests::test_encode_max_customer_id ... ok [INFO] [stdout] test forensic_watermark::tests::test_embedder_does_not_panic_small_image ... ok [INFO] [stdout] test forensic_watermark::tests::test_qim_embed_extract_roundtrip_true ... ok [INFO] [stdout] test forensic_watermark::tests::test_suspect_count ... ok [INFO] [stdout] test forensic_watermark::tests::test_variant_describe_contains_variant_id ... ok [INFO] [stdout] test forensic_watermark::tests::test_qim_embed_extract_roundtrip_false ... ok [INFO] [stdout] test forensic_watermark::tests::test_variant_describe_contains_customer_id ... ok [INFO] [stdout] test fragile::tests::test_generate_pattern_deterministic ... ok [INFO] [stdout] test fragile::tests::test_generate_pattern_not_all_true ... ok [INFO] [stdout] test fragile::tests::test_embed_sets_lsbs ... ok [INFO] [stdout] test fragile::tests::test_embed_preserves_upper_bits ... ok [INFO] [stdout] test fragile::tests::test_tampered_block_count ... ok [INFO] [stdout] test fragile::tests::test_verify_empty_image_100_pct ... ok [INFO] [stdout] test fragile::tests::test_generate_pattern_different_seeds_differ ... ok [INFO] [stdout] test fragile::tests::test_generate_pattern_length ... ok [INFO] [stdout] test fragile::tests::test_generate_pattern_not_all_false ... ok [INFO] [stdout] test fragile::tests::test_is_intact_above_threshold ... ok [INFO] [stdout] test fragile::tests::test_is_intact_below_threshold ... ok [INFO] [stdout] test fragile::tests::test_verify_tampered_after_flip ... ok [INFO] [stdout] test gold_code::tests::test_auto_correlation_peak ... ok [INFO] [stdout] test gold_code::tests::test_cross_correlation_different_seeds ... ok [INFO] [stdout] test gold_code::tests::test_gold_code_generator_10bit ... ok [INFO] [stdout] test gold_code::tests::test_deterministic_generation ... ok [INFO] [stdout] test gold_code::tests::test_gold_code_generator_5bit ... ok [INFO] [stdout] test gold_code::tests::test_gold_code_generator_7bit ... ok [INFO] [stdout] test gold_code::tests::test_gold_code_balanced ... ok [INFO] [stdout] test gold_code::tests::test_unsupported_register_length ... ok [INFO] [stdout] test gold_code::tests::test_generate_gold_sequence_convenience ... ok [INFO] [stdout] test gold_code::tests::test_gold_vs_pn_cross_correlation ... ok [INFO] [stdout] test invisible_wm::tests::test_analyse_domain_high_zcr ... ok [INFO] [stdout] test gold_code::tests::test_cross_correlation_low ... ok [INFO] [stdout] test gold_code::tests::test_lfsr_m_sequence_properties ... ok [INFO] [stdout] test fragile::tests::test_verify_intact_after_embed ... ok [INFO] [stdout] test invisible_wm::tests::test_batch_embed ... ok [INFO] [stdout] test gold_code::tests::test_different_code_indices_produce_different_codes ... ok [INFO] [stdout] test invisible_wm::tests::test_analyse_domain_silence ... ok [INFO] [stdout] test gold_code::tests::test_gold_code_generator_9bit ... ok [INFO] [stdout] test invisible_wm::tests::test_embed_extract_roundtrip ... ok [INFO] [stdout] test invisible_wm::tests::test_quality_perfect ... ok [INFO] [stdout] test invisible_wm::tests::test_empty_payload ... ok [INFO] [stdout] test invisible_wm::tests::test_perceptual_mask_silence ... ok [INFO] [stdout] test invisible_wm::tests::test_quality_with_noise ... ok [INFO] [stdout] test invisible_wm::tests::test_majority_vote_with_noise ... ok [INFO] [stdout] test invisible_wm::tests::test_bytes_to_bits_roundtrip ... ok [INFO] [stdout] test key_schedule::tests::test_derive_for_sequence_matches ... ok [INFO] [stdout] test invisible_wm::tests::test_repeat_and_vote ... ok [INFO] [stdout] test key_schedule::tests::test_derive_key_different_indices ... ok [INFO] [stdout] test invisible_wm::tests::test_spread_sequence_deterministic ... ok [INFO] [stdout] test key_schedule::tests::test_force_rotate ... ok [INFO] [stdout] test key_schedule::tests::test_derive_key_deterministic ... ok [INFO] [stdout] test key_schedule::tests::test_generate_key_table_length ... ok [INFO] [stdout] test invisible_wm::tests::test_capacity ... ok [INFO] [stdout] test key_schedule::tests::test_derive_key_different_parents ... ok [INFO] [stdout] test invisible_wm::tests::test_default_config ... ok [INFO] [stdout] test invisible_wm::tests::test_perceptual_mask ... ok [INFO] [stdout] test key_schedule::tests::test_generate_key_table_unique ... ok [INFO] [stdout] test key_schedule::tests::test_scheduler_rotation_by_time ... ok [INFO] [stdout] test key_schedule::tests::test_key_for_sequence_current ... ok [INFO] [stdout] test key_schedule::tests::test_history_bounded ... ok [INFO] [stdout] test key_schedule::tests::test_key_for_sequence_historical ... ok [INFO] [stdout] test key_schedule::tests::test_scheduler_initial_state ... ok [INFO] [stdout] test key_schedule::tests::test_scheduler_never_rotates ... ok [INFO] [stdout] test key_schedule::tests::test_scheduler_rotation_by_segments ... ok [INFO] [stdout] test media_watermark::tests::test_config_builder ... ok [INFO] [stdout] test media_watermark::tests::test_cross_verify_inconsistent ... ok [INFO] [stdout] test media_watermark::tests::test_cross_verify_partial_no_fsk ... ok [INFO] [stdout] test lsb::tests::test_multi_bit_lsb ... ok [INFO] [stdout] test lsb::tests::test_gray_code ... ok [INFO] [stdout] test media_watermark::tests::test_cross_verify_consistent ... ok [INFO] [stdout] test media_watermark::tests::test_audio_capacity_check ... ok [INFO] [stdout] test lsb::tests::test_capacity ... ok [INFO] [stdout] test media_watermark::tests::test_estimate_snr_empty ... ok [INFO] [stdout] test media_watermark::tests::test_media_watermark_config_defaults ... ok [INFO] [stdout] test media_watermark::tests::test_estimate_snr_with_noise ... ok [INFO] [stdout] test media_watermark::tests::test_video_frame_sufficient ... ok [INFO] [stdout] test media_watermark::tests::test_video_only_skips_audio ... ok [INFO] [stdout] test media_watermark::tests::test_estimate_snr_identical ... ok [INFO] [stdout] test metrics::tests::test_correlation ... ok [INFO] [stdout] test metrics::tests::test_odg_estimation ... ok [INFO] [stdout] test metrics::tests::test_psnr_calculation ... ok [INFO] [stdout] test metrics::tests::test_segmental_snr ... ok [INFO] [stdout] test metrics::tests::test_snr_calculation ... ok [INFO] [stdout] test metrics::tests::test_mos_estimation ... ok [INFO] [stdout] test metrics::tests::test_spectral_centroid ... ok [INFO] [stdout] test media_watermark::tests::test_audio_only_skips_video ... ok [INFO] [stdout] test lsb::tests::test_lsb_embedding ... ok [INFO] [stdout] test metrics::tests::test_spectral_flatness ... ok [INFO] [stdout] test metrics::tests::test_comprehensive_metrics ... ok [INFO] [stdout] test multichannel::tests::test_deinterleave_interleave_roundtrip ... ok [INFO] [stdout] test multichannel::tests::test_interleaved_invalid_length ... ok [INFO] [stdout] test multichannel::tests::test_invalid_channel_count ... ok [INFO] [stdout] test multichannel::tests::test_mid_only_mono_fails ... ok [INFO] [stdout] test lsb::tests::test_randomized_positions ... ok [INFO] [stdout] test multichannel::tests::test_channel_layout_counts ... ok [INFO] [stdout] test forensic_watermark::tests::test_pixels_clamped_to_valid_range ... ok [INFO] [stdout] test patchwork::tests::test_block_patchwork ... ok [INFO] [stdout] test patchwork::tests::test_detection_statistic ... ok [INFO] [stdout] test patchwork::tests::test_normalized_correlation ... ok [INFO] [stdout] test forensic_watermark::tests::test_embed_extract_roundtrip ... ok [INFO] [stdout] test payload::tests::test_bit_packing ... ok [INFO] [stdout] test payload::tests::test_crc32 ... ok [INFO] [stdout] test payload::tests::test_payload_encode_decode ... ok [INFO] [stdout] test patchwork::tests::test_correlation_patchwork ... ok [INFO] [stdout] test payload::tests::test_pn_sequence ... ok [INFO] [stdout] test forensic_watermark::tests::test_embed_extract_high_strength ... ok [INFO] [stdout] test payload_encoder::tests::test_encoded_payload_bit_count ... ok [INFO] [stdout] test payload_encoder::tests::test_encoded_payload_bit_msb_first ... ok [INFO] [stdout] test payload_encoder::tests::test_encoder_format_accessor ... ok [INFO] [stdout] test forensic_watermark::tests::test_embedder_modifies_pixels ... ok [INFO] [stdout] test payload_encoder::tests::test_encoded_payload_bit_out_of_range ... ok [INFO] [stdout] test payload_encoder::tests::test_format_names ... ok [INFO] [stdout] test payload_encoder::tests::test_format_overhead_bytes ... ok [INFO] [stdout] test payload_encoder::tests::test_length_prefixed_missing_header_error ... ok [INFO] [stdout] test payload_encoder::tests::test_nul_terminated_missing_terminator ... ok [INFO] [stdout] test payload_encoder::tests::test_nul_terminated_roundtrip ... ok [INFO] [stdout] test payload_encoder::tests::test_raw_roundtrip ... ok [INFO] [stdout] test payload_encoder::tests::test_varint_roundtrip_larger_data ... ok [INFO] [stdout] test payload_encoder::tests::test_varint_roundtrip_small ... ok [INFO] [stdout] test perceptual_hash::tests::test_bits_to_hash_roundtrip ... ok [INFO] [stdout] test perceptual_hash::tests::test_different_length_hashes_no_distance ... ok [INFO] [stdout] test payload_encoder::tests::test_length_prefixed_roundtrip ... ok [INFO] [stdout] test payload_encoder::tests::test_length_prefixed_truncated_data_error ... ok [INFO] [stdout] test perceptual_hash::tests::test_hamming_distance_different ... ok [INFO] [stdout] test perceptual_hash::tests::test_hamming_distance_identical ... ok [INFO] [stdout] test perceptual_hash::tests::test_hash_database_insert_get ... ok [INFO] [stdout] test perceptual_hash::tests::test_hash_database_empty ... ok [INFO] [stdout] test perceptual_hash::tests::test_hash_database_find_similar ... ok [INFO] [stdout] test perceptual_hash::tests::test_hash_empty_input ... ok [INFO] [stdout] test perceptual_hash::tests::test_hasher_config ... ok [INFO] [stdout] test perceptual_hash::tests::test_is_similar_identical ... ok [INFO] [stdout] test perceptual_hash::tests::test_hash_deterministic ... ok [INFO] [stdout] test patchwork::tests::test_patchwork_embedding ... ok [INFO] [stdout] test payload::tests::test_sync_detection ... ok [INFO] [stdout] test perceptual_hash::tests::test_normalised_distance_range ... ok [INFO] [stdout] test psychoacoustic::tests::test_db_conversion ... ok [INFO] [stdout] test media_watermark::tests::test_video_embed_detect_roundtrip ... ok [INFO] [stdout] test psychoacoustic::tests::test_bark_conversion ... ok [INFO] [stdout] test psychoacoustic::tests::test_spreading_function ... ok [INFO] [stdout] test phase::tests::test_capacity ... ok [INFO] [stdout] test phase::tests::test_relative_phase ... ok [INFO] [stdout] test psychoacoustic::tests::test_psychoacoustic_model ... ok [INFO] [stdout] test qim::tests::test_dc_qim ... ok [INFO] [stdout] test qim::tests::test_capacity ... ok [INFO] [stdout] test qr_watermark::tests::test_ec_level_h_redundancy ... ok [INFO] [stdout] test qr_watermark::tests::test_ec_level_m_redundancy ... ok [INFO] [stdout] test qr_watermark::tests::test_ec_level_q_redundancy ... ok [INFO] [stdout] test qim::tests::test_quantization ... ok [INFO] [stdout] test qr_watermark::tests::test_embed_in_frame_out_of_bounds ... ok [INFO] [stdout] test qim::tests::test_qim_time_domain ... ok [INFO] [stdout] test qr_watermark::tests::test_embed_modifies_frame ... ok [INFO] [stdout] test qr_watermark::tests::test_embed_in_frame_success ... ok [INFO] [stdout] test qr_watermark::tests::test_fnv_encode_deterministic ... ok [INFO] [stdout] test qr_watermark::tests::test_ec_level_l_redundancy ... ok [INFO] [stdout] test qr_watermark::tests::test_fnv_encode_empty ... ok [INFO] [stdout] test qr_watermark::tests::test_fnv_encode_non_empty ... ok [INFO] [stdout] test qr_watermark::tests::test_format_info_bits_known_value ... ok [INFO] [stdout] test qr_watermark::tests::test_encode_data_length_v1 ... ok [INFO] [stdout] test qr_watermark::tests::test_gf256_mul_commutativity ... ok [INFO] [stdout] test qr_watermark::tests::test_encode_data_length_v2 ... ok [INFO] [stdout] test qr_watermark::tests::test_fnv_encode_different_inputs_differ ... ok [INFO] [stdout] test qr_watermark::tests::test_gf256_mul_identity ... ok [INFO] [stdout] test qr_watermark::tests::test_gf256_mul_zero ... ok [INFO] [stdout] test qr_watermark::tests::test_image_size_px_scales_with_module_size ... ok [INFO] [stdout] test qr_watermark::tests::test_payload_encoded_size_h_level ... ok [INFO] [stdout] test qr_watermark::tests::test_image_size_px_version1 ... ok [INFO] [stdout] test qr_watermark::tests::test_qr_finder_pattern_centre_light ... ok [INFO] [stdout] test qr_watermark::tests::test_payload_encoded_size_larger_than_data ... ok [INFO] [stdout] test qr_watermark::tests::test_qr_finder_pattern_top_left ... ok [INFO] [stdout] test qr_watermark::tests::test_qr_no_unknown_cells ... ok [INFO] [stdout] test qr_watermark::tests::test_qr_matrix_size_version4 ... ok [INFO] [stdout] test qr_watermark::tests::test_payload_encoded_size_empty ... ok [INFO] [stdout] test qr_watermark::tests::test_qr_timing_pattern ... ok [INFO] [stdout] test qr_watermark::tests::test_rs_remainder_length ... ok [INFO] [stdout] test robust::tests::test_detect_no_crash_on_small_frame ... ok [INFO] [stdout] test robust::tests::test_embed_clamps_values ... ok [INFO] [stdout] test robust::tests::test_embed_empty_payload_no_change ... ok [INFO] [stdout] test robust::tests::test_embed_produces_different_frame ... ok [INFO] [stdout] test robust::tests::test_embed_same_length ... ok [INFO] [stdout] test robust::tests::test_golay_decode_no_error ... ok [INFO] [stdout] test robust::tests::test_golay_decode_one_bit_error ... ok [INFO] [stdout] test robust::tests::test_golay_decode_syndrome_zero_clean ... ok [INFO] [stdout] test robust::tests::test_golay_encode_nonzero ... ok [INFO] [stdout] test robust::tests::test_golay_encode_zero ... ok [INFO] [stdout] test robust::tests::test_payload_decode_empty ... ok [INFO] [stdout] test robust::tests::test_payload_decode_invalid_checksum ... ok [INFO] [stdout] test robust::tests::test_payload_decode_valid ... ok [INFO] [stdout] test robust::tests::test_payload_encode_checksum ... ok [INFO] [stdout] test robust::tests::test_payload_roundtrip_empty_data ... ok [INFO] [stdout] test robust::tests::test_payload_to_bytes_format ... ok [INFO] [stdout] test robustness::tests::test_aggregate_survival_score_average ... ok [INFO] [stdout] test robustness::tests::test_aggregate_survival_score_empty ... ok [INFO] [stdout] test robustness::tests::test_apply_amplitude_scale_doubles ... ok [INFO] [stdout] test robustness::tests::test_apply_amplitude_scale_zero ... ok [INFO] [stdout] test robustness::tests::test_apply_awgn_empty ... ok [INFO] [stdout] test robustness::tests::test_apply_awgn_high_snr_close_to_original ... ok [INFO] [stdout] test robustness::tests::test_apply_awgn_same_length ... ok [INFO] [stdout] test robustness::tests::test_apply_low_pass_same_length ... ok [INFO] [stdout] test robustness::tests::test_apply_low_pass_zero_kernel ... ok [INFO] [stdout] test robustness::tests::test_apply_quantization_reduces_precision ... ok [INFO] [stdout] test robustness::tests::test_apply_quantization_same_length ... ok [INFO] [stdout] test robustness::tests::test_ber_to_survival_rate_clamped ... ok [INFO] [stdout] test robustness::tests::test_ber_to_survival_rate_half_ber ... ok [INFO] [stdout] test robustness::tests::test_ber_to_survival_rate_zero_ber ... ok [INFO] [stdout] test robustness::tests::test_estimate_ber_all_flipped ... ok [INFO] [stdout] test robustness::tests::test_estimate_ber_empty ... ok [INFO] [stdout] test robustness::tests::test_estimate_ber_half_flipped ... ok [INFO] [stdout] test robustness::tests::test_estimate_ber_identical ... ok [INFO] [stdout] test robustness::tests::test_robustness_config_default ... ok [INFO] [stdout] test robustness::tests::test_run_robustness_suite_count ... ok [INFO] [stdout] test qr_watermark::tests::test_qr_matrix_size_version1 ... ok [INFO] [stdout] test qr_watermark::tests::test_qr_quiet_zone_is_white ... ok [INFO] [stdout] test robustness_suite::tests::test_bit_error_rate_different ... ok [INFO] [stdout] test robustness_suite::tests::test_bit_error_rate_partial ... ok [INFO] [stdout] test robustness_suite::tests::test_bit_error_rate_different_lengths ... ok [INFO] [stdout] test robustness_suite::tests::test_bit_error_rate_identical ... ok [INFO] [stdout] test media_watermark::tests::test_embed_video_frame_with_payload ... ok [INFO] [stdout] test qim::tests::test_qim_frequency_domain ... ok [INFO] [stdout] test detector::tests::test_blind_detection ... ok [INFO] [stdout] test phase::tests::test_phase_embedding ... ok [INFO] [stdout] test detector::tests::test_multi_detector ... ok [INFO] [stdout] test attacks::tests::test_robustness_suite ... ok [INFO] [stdout] test media_watermark::tests::test_embed_media_batch ... ok [INFO] [stdout] test multichannel::tests::test_mid_only_stereo ... ok [INFO] [stdout] test spatial_watermark::tests::test_embed_changes_frame ... ok [INFO] [stdout] test spatial_watermark::tests::test_embed_clamps_to_valid_range ... ok [INFO] [stdout] test spatial_watermark::tests::test_extract_length_mismatch_returns_zero ... ok [INFO] [stdout] test spatial_watermark::tests::test_extract_positive_correlation ... ok [INFO] [stdout] test spatial_watermark::tests::test_spatial_config_is_robust_high_strength ... ok [INFO] [stdout] test spatial_watermark::tests::test_spatial_config_is_robust_low_strength ... ok [INFO] [stdout] test spatial_watermark::tests::test_spatial_config_is_robust_via_perceptual ... ok [INFO] [stdout] test spatial_watermark::tests::test_spatial_pattern_get_in_bounds ... ok [INFO] [stdout] test spatial_watermark::tests::test_spatial_pattern_get_out_of_bounds ... ok [INFO] [stdout] test spatial_watermark::tests::test_spatial_pattern_new_wrong_size ... ok [INFO] [stdout] test spatial_watermark::tests::test_spatial_pattern_pixel_count ... ok [INFO] [stdout] test spatial_watermark::tests::test_tiling_covers_larger_frame ... ok [INFO] [stdout] test spread_spectrum::tests::test_capacity_calculation ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_cropping ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_echo_attack ... ok [INFO] [stdout] test ss_audio_wm::tests::test_default_config_amplitude ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_amplitude_scaling ... ok [INFO] [stdout] test ss_audio_wm::tests::test_detect_confidence_in_range ... ok [INFO] [stdout] test ss_audio_wm::tests::test_detect_empty_samples_returns_empty ... ok [INFO] [stdout] test ss_audio_wm::tests::test_default_config_sample_rate ... ok [INFO] [stdout] test ss_audio_wm::tests::test_detect_roundtrip_true_bits ... ok [INFO] [stdout] test spread_spectrum::tests::test_spread_spectrum_time_domain ... ok [INFO] [stdout] test ss_audio_wm::tests::test_detect_roundtrip_false_bits ... ok [INFO] [stdout] test ss_audio_wm::tests::test_embed_empty_bits_no_change ... ok [INFO] [stdout] test ss_audio_wm::tests::test_inaudible_config_low_amplitude ... ok [INFO] [stdout] test ss_audio_wm::tests::test_pn_sequence_length ... ok [INFO] [stdout] test ss_audio_wm::tests::test_pn_sequence_not_all_same ... ok [INFO] [stdout] test ss_audio_wm::tests::test_pn_sequence_values_pm1 ... ok [INFO] [stdout] test ss_audio_wm::tests::test_snr_empty_returns_zero ... ok [INFO] [stdout] test ss_audio_wm::tests::test_embed_does_not_panic_short_buffer ... ok [INFO] [stdout] test ss_audio_wm::tests::test_embed_changes_samples ... ok [INFO] [stdout] test steganography::tests::test_capacity_bytes_basic ... ok [INFO] [stdout] test steganography::tests::test_capacity_bytes_single_channel ... ok [INFO] [stdout] test ss_audio_wm::tests::test_snr_identical_signals_infinite ... ok [INFO] [stdout] test ss_audio_wm::tests::test_snr_known_value ... ok [INFO] [stdout] test steganography::tests::test_detect_lsb_anomaly_all_zero_lsb ... ok [INFO] [stdout] test steganography::tests::test_lsb_embed_fits ... ok [INFO] [stdout] test steganography::tests::test_detect_lsb_anomaly_tiny_input ... ok [INFO] [stdout] test steganography::tests::test_lsb_embed_too_large_returns_false ... ok [INFO] [stdout] test steganography::tests::test_detect_lsb_anomaly_uniform_returns_high ... ok [INFO] [stdout] test steganography::tests::test_lsb_encoder_default_bits_per_channel ... ok [INFO] [stdout] test steganography::tests::test_lsb_roundtrip ... ok [INFO] [stdout] test steganography::tests::test_stego_payload_deserialize_bad_magic ... ok [INFO] [stdout] test steganography::tests::test_stego_payload_deserialize_too_short ... ok [INFO] [stdout] test steganography::tests::test_lsb_encoder_default_channels ... ok [INFO] [stdout] test steganography::tests::test_lsb_extract_empty_payload ... ok [INFO] [stdout] test steganography::tests::test_stego_payload_serialize_deserialize ... ok [INFO] [stdout] test steganography::tests::test_stego_payload_magic ... ok [INFO] [stdout] test tests::test_all_algorithms ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_dynamic_compression ... ok [INFO] [stdout] test multichannel::tests::test_complementary_embed ... ok [INFO] [stdout] test video_watermark::tests::test_capacity_calculation ... ok [INFO] [stdout] test video_watermark::tests::test_crop_attack ... ok [INFO] [stdout] test video_watermark::tests::test_dct_roundtrip ... ok [INFO] [stdout] test video_watermark::tests::test_default_config ... ok [INFO] [stdout] test tests::test_quality_metrics ... ok [INFO] [stdout] test video_watermark::tests::test_frame_from_pixels_invalid ... ok [INFO] [stdout] test video_watermark::tests::test_frame_psnr ... ok [INFO] [stdout] test video_watermark::tests::test_jpeg_compression_attack ... ok [INFO] [stdout] test video_watermark::tests::test_noise_attack ... ok [INFO] [stdout] test video_watermark::tests::test_scale_attack ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_compression ... ok [INFO] [stdout] test video_watermark::tests::test_video_frame_creation ... ok [INFO] [stdout] test video_watermark::tests::test_video_frame_get_set ... ok [INFO] [stdout] test video_watermark::tests::test_spatial_embed_detect ... ok [INFO] [stdout] test visible::tests::test_alpha_blend_full_opacity ... ok [INFO] [stdout] test visible::tests::test_alpha_blend_zero_opacity ... ok [INFO] [stdout] test visible::tests::test_apply_logo_modifies_frame ... ok [INFO] [stdout] test visible::tests::test_apply_logo_zero_opacity_no_change ... ok [INFO] [stdout] test visible::tests::test_apply_text_digits ... ok [INFO] [stdout] test visible::tests::test_apply_text_empty_string_no_change ... ok [INFO] [stdout] test visible::tests::test_apply_text_modifies_frame ... ok [INFO] [stdout] test visible::tests::test_position_bottom_left ... ok [INFO] [stdout] test visible::tests::test_position_bottom_right ... ok [INFO] [stdout] test visible::tests::test_position_center ... ok [INFO] [stdout] test visible::tests::test_position_custom ... ok [INFO] [stdout] test visible::tests::test_position_top_left ... ok [INFO] [stdout] test visible::tests::test_position_top_right ... ok [INFO] [stdout] test visible::tests::test_psnr_empty ... ok [INFO] [stdout] test visible::tests::test_psnr_identical ... ok [INFO] [stdout] test visible::tests::test_psnr_small_diff_high_value ... ok [INFO] [stdout] test visible::tests::test_psnr_totally_different ... ok [INFO] [stdout] test visible_watermark::tests::test_apply_correct_coordinates_top_left ... ok [INFO] [stdout] test visible_watermark::tests::test_apply_dimensions_preserved ... ok [INFO] [stdout] test visible_watermark::tests::test_apply_returns_application_when_visible ... ok [INFO] [stdout] test visible_watermark::tests::test_apply_returns_none_when_transparent ... ok [INFO] [stdout] test visible_watermark::tests::test_bottom_left_position ... ok [INFO] [stdout] test visible_watermark::tests::test_bottom_right_position ... ok [INFO] [stdout] test visible_watermark::tests::test_center_position ... ok [INFO] [stdout] test visible_watermark::tests::test_custom_position ... ok [INFO] [stdout] test visible_watermark::tests::test_opacity_clamping_above ... ok [INFO] [stdout] test visible_watermark::tests::test_opacity_clamping_below ... ok [INFO] [stdout] test visible_watermark::tests::test_opacity_transparent_flag ... ok [INFO] [stdout] test visible_watermark::tests::test_top_left_position ... ok [INFO] [stdout] test visible_watermark::tests::test_top_right_position ... ok [INFO] [stdout] test watermark_database::tests::test_all_returns_all_records ... ok [INFO] [stdout] test watermark_database::tests::test_empty_on_new ... ok [INFO] [stdout] test watermark_database::tests::test_find_by_algorithm ... ok [INFO] [stdout] test watermark_database::tests::test_find_by_hash_no_match ... ok [INFO] [stdout] test watermark_database::tests::test_find_by_hash_two_results ... ok [INFO] [stdout] test watermark_database::tests::test_find_by_owner ... ok [INFO] [stdout] test watermark_database::tests::test_get_by_id ... ok [INFO] [stdout] test watermark_database::tests::test_insert_custom_record ... ok [INFO] [stdout] test watermark_database::tests::test_insert_duplicate_id_returns_false ... ok [INFO] [stdout] test watermark_database::tests::test_record_fields ... ok [INFO] [stdout] test watermark_database::tests::test_register_increments_len ... ok [INFO] [stdout] test watermark_database::tests::test_register_returns_sequential_ids ... ok [INFO] [stdout] test watermark_database::tests::test_remove_existing ... ok [INFO] [stdout] test watermark_database::tests::test_remove_nonexistent_returns_none ... ok [INFO] [stdout] test watermark_robustness::tests::test_attack_type_names_non_empty ... ok [INFO] [stdout] test watermark_robustness::tests::test_attack_type_snr_loss_positive ... ok [INFO] [stdout] test watermark_robustness::tests::test_compress_more_damaging_than_noise ... ok [INFO] [stdout] test watermark_robustness::tests::test_passes_ber_threshold_false ... ok [INFO] [stdout] test watermark_robustness::tests::test_passes_ber_threshold_true ... ok [INFO] [stdout] test watermark_robustness::tests::test_report_empty_passes_threshold ... ok [INFO] [stdout] test watermark_robustness::tests::test_report_failure_count ... ok [INFO] [stdout] test watermark_robustness::tests::test_report_mean_ber_computed ... ok [INFO] [stdout] test watermark_robustness::tests::test_report_mean_ber_empty ... ok [INFO] [stdout] test watermark_robustness::tests::test_report_run_all_count ... ok [INFO] [stdout] test watermark_robustness::tests::test_report_worst_test ... ok [INFO] [stdout] test watermark_robustness::tests::test_report_worst_test_empty ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_lowpass_filter ... ok [INFO] [stdout] test watermark_robustness::tests::test_simulate_attack_ber_in_range ... ok [INFO] [stdout] test watermark_robustness::tests::test_simulate_attack_snr_plausible ... ok [INFO] [stdout] test wm_detect::tests::test_autocorrelation_at ... ok [INFO] [stdout] test watermark_robustness::tests::test_robustness_test_ber_clamped ... ok [INFO] [stdout] test wm_detect::tests::test_bits_to_bytes ... ok [INFO] [stdout] test wm_detect::tests::test_candidate_to_bytes ... ok [INFO] [stdout] test wm_detect::tests::test_combine_empty ... ok [INFO] [stdout] test wm_detect::tests::test_combine_max ... ok [INFO] [stdout] test wm_detect::tests::test_combine_mean ... ok [INFO] [stdout] test wm_detect::tests::test_default_config ... ok [INFO] [stdout] test wm_detect::tests::test_detection_method_all ... ok [INFO] [stdout] test multichannel::tests::test_selective_embed ... ok [INFO] [stdout] test wm_detect::tests::test_detection_method_names ... ok [INFO] [stdout] test wm_detect::tests::test_generate_report ... ok [INFO] [stdout] test wm_detect::tests::test_pipeline_empty_signal ... ok [INFO] [stdout] test multichannel::tests::test_independent_stereo_embed_detect ... ok [INFO] [stdout] test wm_detect::tests::test_result_best ... ok [INFO] [stdout] test wm_strength::tests::test_analyser_produces_profile ... ok [INFO] [stdout] test wm_strength::tests::test_db_to_linear ... ok [INFO] [stdout] test wm_strength::tests::test_default_config ... ok [INFO] [stdout] test wm_strength::tests::test_empty_signal ... ok [INFO] [stdout] test wm_strength::tests::test_envelope_follower ... ok [INFO] [stdout] test wm_strength::tests::test_frame_rms_constant ... ok [INFO] [stdout] test wm_strength::tests::test_frame_rms_silence ... ok [INFO] [stdout] test wm_strength::tests::test_histogram_from_profile ... ok [INFO] [stdout] test wm_strength::tests::test_optimal_uniform ... ok [INFO] [stdout] test wm_strength::tests::test_strength_profile_stats ... ok [INFO] [stdout] test wm_detect::tests::test_result_by_method ... ok [INFO] [stdout] test wm_strength::tests::test_temporal_smooth_passthrough ... ok [INFO] [stdout] test wm_strength::tests::test_temporal_smooth_window ... ok [INFO] [stdout] test wm_strength::tests::test_validate_strength_fails ... ok [INFO] [stdout] test wm_detect::tests::test_pipeline_silence ... ok [INFO] [stdout] test wm_strength::tests::test_validate_strength_passes ... ok [INFO] [stdout] test wm_detect::tests::test_combine_weighted_mean ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_jitter ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_spread_spectrum_noise_40db ... ok [INFO] [stdout] test tests::test_spread_spectrum_watermarking ... ok [INFO] [stdout] test spread_spectrum::tests::test_spread_spectrum_frequency_domain ... ok [INFO] [stdout] test multichannel::tests::test_interleaved_embed_detect ... ok [INFO] [stdout] test tests::test_robustness ... ok [INFO] [stdout] test video_watermark::tests::test_dct_embed_detect ... ok [INFO] [stdout] test video_watermark::tests::test_watermark_survives_mild_noise ... ok [INFO] [stdout] test video_watermark::tests::test_detection_confidence ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_report_structure ... ok [INFO] [stdout] test robustness_suite::tests::test_compare_algorithms ... ok [INFO] [stdout] test robustness_suite::tests::test_robustness_suite_baseline ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 563 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.82s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_watermark [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/lib.rs - (line 24) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "a002d868bf8faa4f537336926fddf3d98ac742b0e28db06b0e63ad089e02f45f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a002d868bf8faa4f537336926fddf3d98ac742b0e28db06b0e63ad089e02f45f", kill_on_drop: false }` [INFO] [stdout] a002d868bf8faa4f537336926fddf3d98ac742b0e28db06b0e63ad089e02f45f