[INFO] fetching crate oximedia-subtitle 0.1.5...
[INFO] testing oximedia-subtitle-0.1.5 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate oximedia-subtitle 0.1.5 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate oximedia-subtitle 0.1.5
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate oximedia-subtitle 0.1.5
[INFO] tweaked toml for crates.io crate oximedia-subtitle 0.1.5 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate oximedia-subtitle 0.1.5 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oximedia-subtitle 0.1.5 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f59bae2c88e558ed00a204b4dfdb41e686e255a1cdac95d8eecfb9979f8e031a
[INFO] running `Command { std: "docker" "start" "-a" "f59bae2c88e558ed00a204b4dfdb41e686e255a1cdac95d8eecfb9979f8e031a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f59bae2c88e558ed00a204b4dfdb41e686e255a1cdac95d8eecfb9979f8e031a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f59bae2c88e558ed00a204b4dfdb41e686e255a1cdac95d8eecfb9979f8e031a", kill_on_drop: false }`
[INFO] [stdout] f59bae2c88e558ed00a204b4dfdb41e686e255a1cdac95d8eecfb9979f8e031a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d0cb9acbe2cfee3ccc8b601294b69a063123e2de26981fa0e1cae1f94d8d5e8e
[INFO] running `Command { std: "docker" "start" "-a" "d0cb9acbe2cfee3ccc8b601294b69a063123e2de26981fa0e1cae1f94d8d5e8e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling oxiarc-deflate v0.2.6
[INFO] [stderr]    Compiling ttf-parser v0.21.1
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling oximedia-core v0.1.5
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling fontdue v0.9.3
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling oximedia-io v0.1.5
[INFO] [stderr]    Compiling oximedia-codec v0.1.5
[INFO] [stderr]    Compiling oximedia-subtitle v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 00s
[INFO] running `Command { std: "docker" "inspect" "d0cb9acbe2cfee3ccc8b601294b69a063123e2de26981fa0e1cae1f94d8d5e8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d0cb9acbe2cfee3ccc8b601294b69a063123e2de26981fa0e1cae1f94d8d5e8e", kill_on_drop: false }`
[INFO] [stdout] d0cb9acbe2cfee3ccc8b601294b69a063123e2de26981fa0e1cae1f94d8d5e8e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 86b7bfbc38758c9793f9cfe249674bfd55cf64ff4ab30bd8e75dbe5617e37431
[INFO] running `Command { std: "docker" "start" "-a" "86b7bfbc38758c9793f9cfe249674bfd55cf64ff4ab30bd8e75dbe5617e37431", kill_on_drop: false }`
[INFO] [stderr]    Compiling oximedia-subtitle v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.79s
[INFO] running `Command { std: "docker" "inspect" "86b7bfbc38758c9793f9cfe249674bfd55cf64ff4ab30bd8e75dbe5617e37431", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "86b7bfbc38758c9793f9cfe249674bfd55cf64ff4ab30bd8e75dbe5617e37431", kill_on_drop: false }`
[INFO] [stdout] 86b7bfbc38758c9793f9cfe249674bfd55cf64ff4ab30bd8e75dbe5617e37431
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e234b3682f8c9cce7f9d843d7eee2dc414fcc7b53093c51a1d6ab00e3da8c2e0
[INFO] running `Command { std: "docker" "start" "-a" "e234b3682f8c9cce7f9d843d7eee2dc414fcc7b53093c51a1d6ab00e3da8c2e0", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_subtitle-c4b927e8058990e7)
[INFO] [stdout] 
[INFO] [stdout] running 726 tests
[INFO] [stdout] test accessibility::tests::test_accessibility_profile_description_not_empty ... ok
[INFO] [stdout] test accessibility::tests::test_reading_speed_check_too_fast ... ok
[INFO] [stdout] test accessibility::tests::test_reading_speed_check_slow ... ok
[INFO] [stdout] test accessibility::tests::test_reading_speed_recommended_duration ... ok
[INFO] [stdout] test accessibility::tests::test_sdh_event_construction ... ok
[INFO] [stdout] test accessibility::tests::test_sdh_formatter_alarm_with_desc ... ok
[INFO] [stdout] test accessibility::tests::test_sdh_formatter_applause ... ok
[INFO] [stdout] test accessibility::tests::test_sdh_formatter_laughter_with_speaker ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_bitmap_font_has_ascii_digits ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_bitmap_font_has_lowercase ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_bitmap_font_has_uppercase ... ok
[INFO] [stdout] test accessibility::tests::test_sdh_formatter_music_with_desc ... ok
[INFO] [stdout] test accessibility::tests::test_sound_description_confidence_clamped ... ok
[INFO] [stdout] test accessibility::tests::test_sound_type_labels ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_bitmap_font_glyph_size ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_burn_frame_no_active_entries_noop ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_bitmap_font_glyph_correct_length ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_burn_in_new ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_burn_frame_with_background_box ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_get_active_returns_matching_entries ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_render_text_scale_zero_returns_empty ... ok
[INFO] [stdout] test burn_in::tests::test_alignment_is_top ... ok
[INFO] [stdout] test burn_in::tests::test_burn_in_color_to_yuv ... ok
[INFO] [stdout] test burn_in::tests::test_burn_in_color_white ... ok
[INFO] [stdout] test burn_in::tests::test_burn_in_job_estimated_broadcast ... ok
[INFO] [stdout] test burn_in::tests::test_burn_in_job_estimated_web ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_burn_frame_modifies_pixels ... ok
[INFO] [stdout] test burn_in::tests::test_alignment_is_left ... ok
[INFO] [stdout] test burn_in::tests::test_compute_position_bottom_center ... ok
[INFO] [stdout] test burn_in::tests::test_burn_in_job_fields ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_get_active_no_match ... ok
[INFO] [stdout] test burn_in::tests::test_broadcast_config_font_size ... ok
[INFO] [stdout] test burn_in::tests::test_glyph_render_char_dimensions ... ok
[INFO] [stdout] test burn_in::tests::test_compute_position_bottom_right ... ok
[INFO] [stdout] test burn_in::tests::test_render_text_bitmap_space ... ok
[INFO] [stdout] test burn_in::tests::test_compute_position_top_left ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_render_text_empty_string ... ok
[INFO] [stdout] test burn_in::tests::test_render_to_rgba_buffer_too_small ... ok
[INFO] [stdout] test burn_in::tests::test_validate_safe_area_inside ... ok
[INFO] [stdout] test burn_in::tests::test_validate_safe_area_outside_left ... ok
[INFO] [stdout] test burn_in::bitmap_tests::test_render_text_dimensions ... ok
[INFO] [stdout] test burn_in::tests::test_render_to_yuv420p_basic ... ok
[INFO] [stdout] test burn_in::tests::test_validate_safe_area_outside_right ... ok
[INFO] [stdout] test burn_in::tests::test_web_config_no_background ... ok
[INFO] [stdout] test cea708::tests::test_backspace_removes_last_char ... ok
[INFO] [stdout] test cea708::tests::test_carriage_return_appends_newline ... ok
[INFO] [stdout] test cea708::tests::test_clear_windows_by_bitmask ... ok
[INFO] [stdout] test cea708::tests::test_decode_printable_text_appends_to_current_window ... ok
[INFO] [stdout] test burn_in::tests::test_render_text_bitmap_not_empty ... ok
[INFO] [stdout] test cea708::tests::test_delete_windows_clears_text_and_visibility ... ok
[INFO] [stdout] test cea708::tests::test_display_windows_makes_window_visible ... ok
[INFO] [stdout] test cea708::tests::test_form_feed_clears_current_window ... ok
[INFO] [stdout] test cea708::tests::test_mixed_control_and_text ... ok
[INFO] [stdout] test cea708::tests::test_new_decoder_all_windows_empty_text ... ok
[INFO] [stdout] test cea708::tests::test_new_decoder_all_windows_invisible ... ok
[INFO] [stdout] test cea708::tests::test_sequence_number_stored ... ok
[INFO] [stdout] test cea708::tests::test_set_current_window_switches_active ... ok
[INFO] [stdout] test cea708::tests::test_set_pen_location ... ok
[INFO] [stdout] test cea708::tests::test_text_accumulates_across_multiple_decodes ... ok
[INFO] [stdout] test cea708::tests::test_window_id_bounds ... ok
[INFO] [stdout] test cea708::tests::test_new_decoder_has_eight_windows ... ok
[INFO] [stdout] test cea::embed::tests::test_frame_rate_conversion ... ok
[INFO] [stdout] test cea::embed::tests::test_line21_encoding ... ok
[INFO] [stdout] test cea708::tests::test_decode_empty_packet_returns_eight_windows ... ok
[INFO] [stdout] test cea::embed::tests::test_parity_check ... ok
[INFO] [stdout] test cea::embed::tests::test_sei_builder ... ok
[INFO] [stdout] test burn_in::tests::test_render_to_rgba_basic ... ok
[INFO] [stdout] test cea708::tests::test_hide_windows_makes_invisible ... ok
[INFO] [stdout] test cea::encoder::tests::test_cea608_basic_text ... ok
[INFO] [stdout] test cea::encoder::tests::test_framerate_codes ... ok
[INFO] [stdout] test burn_in::tests::test_render_to_rgba_with_background ... ok
[INFO] [stdout] test cea::encoder::tests::test_parity_calculation ... ok
[INFO] [stdout] test convert::tests::test_color_mapping ... ok
[INFO] [stdout] test convert::tests::test_split_lines ... ok
[INFO] [stdout] test convert::tests::test_timing_adjuster ... ok
[INFO] [stdout] test convert::tests::test_strip_html_tags ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_document_active_at ... ok
[INFO] [stdout] test convert::tests::test_position_mapping ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_entry_is_valid_empty_text ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_document_duration_ms ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_entry_duration_ms ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_document_valid_entries ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_entry_is_valid_inverted_times ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_entry_is_valid_ok ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_parser_multiple_entries ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_parser_parse_webvtt_block ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_timestamp_parse_invalid ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_timestamp_parse_three_part ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_timestamp_total_ms_hours ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_timestamp_parse_two_part ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_timestamp_total_ms_simple ... ok
[INFO] [stdout] test cue_point::tests::test_by_type_chapter ... ok
[INFO] [stdout] test cue_point::tests::test_cue_point_in_range ... ok
[INFO] [stdout] test cue_parser::tests::test_cue_timestamp_parse_comma_separator ... ok
[INFO] [stdout] test cue_point::tests::test_cue_type_label_custom ... ok
[INFO] [stdout] test cue_point::tests::test_by_type_no_match ... ok
[INFO] [stdout] test cue_point::tests::test_cue_type_label_standard ... ok
[INFO] [stdout] test cea::encoder::tests::test_cea708_service_block ... ok
[INFO] [stdout] test cue_point::tests::test_empty_list ... ok
[INFO] [stdout] test cue_point::tests::test_in_range_exclusive_end ... ok
[INFO] [stdout] test convert::tests::test_format_converter ... ok
[INFO] [stdout] test cue_point::tests::test_list_is_sorted ... ok
[INFO] [stdout] test cue_point::tests::test_in_range_basic ... ok
[INFO] [stdout] test cue_point::tests::test_latest_at_none ... ok
[INFO] [stdout] test cue_point::tests::test_list_len ... ok
[INFO] [stdout] test cue_timing::tests::test_average_duration_empty ... ok
[INFO] [stdout] test cue_timing::tests::test_average_duration ... ok
[INFO] [stdout] test cue_point::tests::test_remove_type ... ok
[INFO] [stdout] test cue_point::tests::test_in_range_empty ... ok
[INFO] [stdout] test cue_timing::tests::test_convert_frame_rate ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_clamp ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_duration ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_gap_to ... ok
[INFO] [stdout] test cue_point::tests::test_latest_at ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_no_overlap ... ok
[INFO] [stdout] test cue_point::tests::test_with_duration ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_contains ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_overlaps ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_is_valid ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_scale ... ok
[INFO] [stdout] test cue_timing::tests::test_cue_span_shift ... ok
[INFO] [stdout] test cue_timing::tests::test_enforce_minimum_gap ... ok
[INFO] [stdout] test cue_timing::tests::test_shift_all ... ok
[INFO] [stdout] test cue_timing::tests::test_snap_to_frame_24fps ... ok
[INFO] [stdout] test cue_timing::tests::test_snap_to_frame_zero_fps ... ok
[INFO] [stdout] test cue_timing::tests::test_minimum_gap ... ok
[INFO] [stdout] test cue_timing::tests::test_find_overlaps ... ok
[INFO] [stdout] test cue_timing::tests::test_subtitle_density ... ok
[INFO] [stdout] test cue_timing::tests::test_subtitle_density_zero_duration ... ok
[INFO] [stdout] test cue_timing::tests::test_total_display_time ... ok
[INFO] [stdout] test font::font_chain_tests::test_chained_font_universal_covers_all ... ok
[INFO] [stdout] test font::font_chain_tests::test_chained_font_specific_covers ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_arabic ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_arabic_presentation ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_cjk_hangul ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_cjk_hiragana ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_arabic_extended ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_cjk_main_block ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_katakana ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_devanagari ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_cjk_extension ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_latin ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_latin_extended ... ok
[INFO] [stdout] test font::font_chain_tests::test_script_of_other ... ok
[INFO] [stdout] test forced_subtitle::tests::test_custom_config ... ok
[INFO] [stdout] test forced_subtitle::tests::test_extract_forced ... ok
[INFO] [stdout] test forced_subtitle::tests::test_flag_forced ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_classification_enum ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_detection_empty_track ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_detection_non_latin ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_config_default ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_detector_default_trait ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_detection_bracketed ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_detection_normal_dialogue ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_report_fraction_empty ... ok
[INFO] [stdout] test forced_subtitle::tests::test_full_translation_detection ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_italic_signal ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_report_fraction ... ok
[INFO] [stdout] test forced_subtitle::tests::test_forced_signal_enum ... ok
[INFO] [stdout] test forced_subtitle::tests::test_is_bracketed_music ... ok
[INFO] [stdout] test forced_subtitle::tests::test_is_bracketed_square ... ok
[INFO] [stdout] test forced_subtitle::tests::test_is_bracketed_none ... ok
[INFO] [stdout] test forced_subtitle::tests::test_non_latin_ratio_empty ... ok
[INFO] [stdout] test forced_subtitle::tests::test_non_latin_ratio_latin ... ok
[INFO] [stdout] test format_convert::tests::test_entry_duration_ms ... ok
[INFO] [stdout] test format_convert::tests::test_entry_duration_saturating ... ok
[INFO] [stdout] test format_convert::tests::test_entry_line_count_empty ... ok
[INFO] [stdout] test format_convert::tests::test_entry_line_count_multi ... ok
[INFO] [stdout] test forced_subtitle::tests::test_is_bracketed_parens ... ok
[INFO] [stdout] test format_convert::tests::test_entry_line_count_single ... ok
[INFO] [stdout] test format_convert::tests::test_format_ms_to_srt_complex ... ok
[INFO] [stdout] test forced_subtitle::tests::test_is_bracketed_short ... ok
[INFO] [stdout] test format_convert::tests::test_format_ms_to_srt_one_hour ... ok
[INFO] [stdout] test format_convert::tests::test_format_ms_to_vtt_zero ... ok
[INFO] [stdout] test format_convert::tests::test_format_ms_to_srt_zero ... ok
[INFO] [stdout] test format_convert::tests::test_srt_parser_invalid_sequence ... ok
[INFO] [stdout] test format_convert::tests::test_srt_parser_multi_entry ... ok
[INFO] [stdout] test format_convert::tests::test_srt_parser_roundtrip ... ok
[INFO] [stdout] test format_convert::tests::test_format_ms_to_vtt_complex ... ok
[INFO] [stdout] test format_convert::tests::test_vtt_serializer_empty ... ok
[INFO] [stdout] test format_convert::tests::test_vtt_serializer_header ... ok
[INFO] [stdout] test format_convert::tests::test_vtt_serializer_timing_format ... ok
[INFO] [stdout] test format_convert::tests::test_srt_serializer_basic ... ok
[INFO] [stdout] test format_convert::tests::test_srt_serializer_empty ... ok
[INFO] [stdout] test format_converter::parallel_tests::test_parallel_batch_empty ... ok
[INFO] [stdout] test format_converter::parallel_tests::test_parallel_batch_error_propagation ... ok
[INFO] [stdout] test format_converter::parallel_tests::test_parallel_batch_srt ... ok
[INFO] [stdout] test format_converter::parallel_tests::test_parallel_batch_mixed_formats ... ok
[INFO] [stdout] test format_converter::parallel_tests::test_parallel_batch_vtt ... ok
[INFO] [stdout] test format_converter::tests::test_convert_srt_to_vtt ... ok
[INFO] [stdout] test format_converter::tests::test_format_supports_styling ... ok
[INFO] [stdout] test format_converter::tests::test_merge_sorted_by_start_time ... ok
[INFO] [stdout] test format_converter::tests::test_parse_ass_basic ... ok
[INFO] [stdout] test format_converter::tests::test_parse_ass_styles ... ok
[INFO] [stdout] test format_converter::tests::test_parse_lrc_basic ... ok
[INFO] [stdout] test format_converter::tests::test_parse_lrc_metadata ... ok
[INFO] [stdout] test format_converter::parallel_tests::test_parallel_batch_owned ... ok
[INFO] [stdout] test format_converter::tests::test_parse_sbv_basic ... ok
[INFO] [stdout] test format_converter::tests::test_parse_srt_basic ... ok
[INFO] [stdout] test format_converter::tests::test_parse_srt_index ... ok
[INFO] [stdout] test format_converter::tests::test_parse_srt_italic_tag ... ok
[INFO] [stdout] test format_converter::parallel_tests::test_parse_one_scc_unsupported ... ok
[INFO] [stdout] test format_converter::tests::test_merge_two_documents ... ok
[INFO] [stdout] test format_converter::tests::test_parse_vtt_missing_header ... ok
[INFO] [stdout] test format_converter::tests::test_parse_vtt_timing ... ok
[INFO] [stdout] test format_converter::parallel_tests::test_parallel_batch_order_preserved ... ok
[INFO] [stdout] test format_converter::tests::test_shift_timing ... ok
[INFO] [stdout] test format_converter::tests::test_parse_vtt_basic ... ok
[INFO] [stdout] test format_converter::tests::test_scale_timing ... ok
[INFO] [stdout] test format_converter::tests::test_shift_timing_negative_clamps ... ok
[INFO] [stdout] test format_converter::tests::test_to_sbv_format ... ok
[INFO] [stdout] test format_converter::tests::test_to_ass_has_sections ... ok
[INFO] [stdout] test format_converter::tests::test_to_srt_roundtrip ... ok
[INFO] [stdout] test format_converter::tests::test_to_vtt_has_header ... ok
[INFO] [stdout] test format_converter::tests::test_to_ttml_valid_xml ... ok
[INFO] [stdout] test line_break::tests::test_fits_within_false ... ok
[INFO] [stdout] test line_break::tests::test_fits_within_true ... ok
[INFO] [stdout] test line_break::tests::test_default_config_max_chars ... ok
[INFO] [stdout] test line_break::tests::test_max_line_length_empty ... ok
[INFO] [stdout] test line_break::tests::test_max_line_length_multiline ... ok
[INFO] [stdout] test line_break::tests::test_max_line_length_single ... ok
[INFO] [stdout] test line_break::tests::test_wrap_empty_string ... ok
[INFO] [stdout] test line_break::tests::test_wrap_max_lines_truncation ... ok
[INFO] [stdout] test line_break::tests::test_split_with_hyphen_exact_multiple ... ok
[INFO] [stdout] test line_break::tests::test_wrap_oversized_word_no_hyphenation ... ok
[INFO] [stdout] test line_break::tests::test_wrap_oversized_word_with_hyphenation ... ok
[INFO] [stdout] test line_break::tests::test_wrap_short_text_unchanged ... ok
[INFO] [stdout] test line_break::tests::test_wrap_and_join_uses_separator ... ok
[INFO] [stdout] test overlap_detect::tests::test_detectable_cue_overlap_type_full ... ok
[INFO] [stdout] test line_break::tests::test_wrap_single_word_no_hyphenation ... ok
[INFO] [stdout] test overlap_detect::tests::test_detectable_cue_overlap_type_partial ... ok
[INFO] [stdout] test line_break::tests::test_wrap_splits_long_line ... ok
[INFO] [stdout] test overlap_detect::tests::test_detectable_cue_overlap_window ... ok
[INFO] [stdout] test overlap_detect::tests::test_detectable_cue_no_overlap ... ok
[INFO] [stdout] test overlap_detect::tests::test_detector_finds_partial_overlap ... ok
[INFO] [stdout] test overlap_detect::tests::test_detectable_cue_overlaps_with ... ok
[INFO] [stdout] test overlap_detect::tests::test_detector_no_overlaps_sequential ... ok
[INFO] [stdout] test overlap_detect::tests::test_overlap_type_label ... ok
[INFO] [stdout] test overlap_detect::tests::test_report_is_clean_when_no_overlaps ... ok
[INFO] [stdout] test overlap_detect::tests::test_overlap_type_severity ... ok
[INFO] [stdout] test overlap_detect::tests::test_report_has_full_overlaps ... ok
[INFO] [stdout] test overlap_detect::tests::test_report_overlaps_for_cue ... ok
[INFO] [stdout] test overlap_detect::tests::test_subtitle_overlap_duration_ms ... ok
[INFO] [stdout] test parser::cea608_decoder::tests::test_basic_character_decoding ... ok
[INFO] [stdout] test overlap_detect::tests::test_subtitle_overlap_is_full ... ok
[INFO] [stdout] test parser::cea708_decoder::tests::test_decoder_creation ... ok
[INFO] [stdout] test parser::cea608_decoder::tests::test_pac_row_calculation ... ok
[INFO] [stdout] test parser::dvb::tests::test_2bit_rle_single_pixel ... ok
[INFO] [stdout] test parser::dvb::tests::test_2bit_rle_transparent_pair ... ok
[INFO] [stdout] test parser::cea708_decoder::tests::test_window_definition ... ok
[INFO] [stdout] test parser::dvb::tests::test_4bit_rle_single_pixels ... ok
[INFO] [stdout] test parser::dvb::tests::test_4bit_rle_colour_run ... ok
[INFO] [stdout] test parser::dvb::tests::test_4bit_rle_transparent_run ... ok
[INFO] [stdout] test parser::dvb::tests::test_8bit_rle_end_of_line ... ok
[INFO] [stdout] test parser::dvb::tests::test_8bit_rle_single_pixel ... ok
[INFO] [stdout] test parser::dvb::tests::test_8bit_rle_colour_run ... ok
[INFO] [stdout] test parser::dvb::tests::test_decode_segment_page_composition ... ok
[INFO] [stdout] test parser::dvb::tests::test_decoder_creation ... ok
[INFO] [stdout] test parser::dvb::tests::test_decode_segment_invalid_sync ... ok
[INFO] [stdout] test parser::dvb::tests::test_8bit_rle_transparent_run ... ok
[INFO] [stdout] test parser::dvb::tests::test_ycrcb_conversion_white ... ok
[INFO] [stdout] test parser::dvb::tests::test_ycrcb_conversion_black ... ok
[INFO] [stdout] test parser::pgs::tests::test_ycrcb_conversion ... ok
[INFO] [stdout] test parser::pgs::tests::test_decoder_creation ... ok
[INFO] [stdout] test overlap_detect::tests::test_detector_finds_full_overlap ... ok
[INFO] [stdout] test parser::srt::tests::test_empty_formatted_text ... ok
[INFO] [stdout] test parser::srt::tests::test_formatted_segment_has_formatting ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_formatted_plain_text ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_formatted_text_font_color ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_formatted_text_italic ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_formatted_text_font_face_size ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_formatted_text_bold ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_formatted_text_mixed_segments ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_formatted_text_nested_bold_italic ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_srt_with_formatting ... ok
[INFO] [stdout] test parser::srt::tests::test_parse_srt_with_formatting_font_tag ... ok
[INFO] [stdout] test parser::srt::tests::test_strip_html_preserves_newlines ... ok
[INFO] [stdout] test parser::srt::tests::test_strip_html_tags_basic ... ok
[INFO] [stdout] test parser::srt::tests::test_strip_html_tags_font ... ok
[INFO] [stdout] test parser::srt::tests::test_strip_html_tags_nested ... ok
[INFO] [stdout] test parser::srt::tests::test_strip_html_tags_no_tags ... ok
[INFO] [stdout] test parser::srt::tests::test_unclosed_tag_handling ... ok
[INFO] [stdout] test parser::srt::tests::test_to_tagged_string_font_color ... ok
[INFO] [stdout] test parser::srt::tests::test_strip_html_tags_mixed ... ok
[INFO] [stdout] test parser::srt::tests::test_to_tagged_string_roundtrip ... ok
[INFO] [stdout] test parser::srt::tests::test_underline_and_strikethrough ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_clip_rect_fields ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_move_animation_no_time ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_origin_fields ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_clip_basic ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_fad_timing_fields ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_iclip ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_fad ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_combined_tags ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_fad_zero ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_move_insufficient_args_returns_none ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_org ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_override_no_tags ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_strip_tags_with_override ... ok
[INFO] [stdout] test parser::ttml::tests::test_format_timestamp ... ok
[INFO] [stdout] test parser::ttml::tests::test_parse_clock_time ... ok
[INFO] [stdout] test parser::ttml::tests::test_parse_font_size ... ok
[INFO] [stdout] test parser::ttml::tests::test_parse_offset_time ... ok
[INFO] [stdout] test parser::ttml::tests::test_parse_simple_ttml ... ok
[INFO] [stdout] test parser::ttml::tests::test_parse_ttml_color ... ok
[INFO] [stdout] test parser::ttml::tests::test_write_ttml ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_move_with_time ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_move_without_time ... ok
[INFO] [stdout] test parser::ssa::ass_override_tests::test_parse_multiple_blocks ... ok
[INFO] [stdout] test parser::webvtt::tests::test_cue_settings_default_horizontal ... ok
[INFO] [stdout] test parser::webvtt::tests::test_format_timestamp_ms_only ... ok
[INFO] [stdout] test parser::webvtt::tests::test_format_timestamp_hms ... ok
[INFO] [stdout] test parser::webvtt::tests::test_missing_webvtt_header ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_cue_identifier ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_empty_vtt ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_bom_prefix ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_multiple_cue_settings ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_position_setting ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_region_anchor_in_cue ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_multiline_cue ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_region_definition ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_vertical_text_lr ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_basic_webvtt ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_vtt_timestamp_short ... ok
[INFO] [stdout] test parser::webvtt::tests::test_skip_note_block ... ok
[INFO] [stdout] test parser::webvtt::tests::test_region_default_values ... ok
[INFO] [stdout] test parser::webvtt::tests::test_strip_vtt_tags ... ok
[INFO] [stdout] test parser::webvtt::tests::test_write_document_with_region ... ok
[INFO] [stdout] test position_calc::tests::test_avoid_collision_no_overlap ... ok
[INFO] [stdout] test position_calc::tests::test_avoid_collision_with_overlap ... ok
[INFO] [stdout] test position_calc::tests::test_compute_position_center_bottom ... ok
[INFO] [stdout] test position_calc::tests::test_compute_position_left_top ... ok
[INFO] [stdout] test position_calc::tests::test_compute_position_right_middle ... ok
[INFO] [stdout] test position_calc::tests::test_multi_line_total_height ... ok
[INFO] [stdout] test position_calc::tests::test_multi_line_y_positions ... ok
[INFO] [stdout] test position_calc::tests::test_multi_line_total_height_zero_lines ... ok
[INFO] [stdout] test position_calc::tests::test_rect_area ... ok
[INFO] [stdout] test position_calc::tests::test_rect_center ... ok
[INFO] [stdout] test position_calc::tests::test_rect_contains_point ... ok
[INFO] [stdout] test position_calc::tests::test_rect_contains_rect ... ok
[INFO] [stdout] test position_calc::tests::test_rect_no_overlap ... ok
[INFO] [stdout] test position_calc::tests::test_rect_overlaps ... ok
[INFO] [stdout] test position_calc::tests::test_rect_right_bottom ... ok
[INFO] [stdout] test position_calc::tests::test_safe_area_broadcast ... ok
[INFO] [stdout] test position_calc::tests::test_safe_area_streaming ... ok
[INFO] [stdout] test reading_speed::tests::test_analyzer_detects_violation ... ok
[INFO] [stdout] test reading_speed::tests::test_analyzer_no_violations_slow_text ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_vertical_text_rl ... ok
[INFO] [stdout] test reading_speed::tests::test_complexity_analyzer_detects_fast_complex_text ... ok
[INFO] [stdout] test parser::webvtt::tests::test_parse_vtt_timestamp_long ... ok
[INFO] [stdout] test reading_speed::tests::test_complexity_analyzer_no_violation_slow ... ok
[INFO] [stdout] test parser::webvtt::tests::test_write_roundtrip ... ok
[INFO] [stdout] test reading_speed::tests::test_complexity_check_fields ... ok
[INFO] [stdout] test reading_speed::tests::test_estimate_syllables_empty ... ok
[INFO] [stdout] test reading_speed::tests::test_estimate_syllables_one ... ok
[INFO] [stdout] test reading_speed::tests::test_estimate_syllables_polysyllabic ... ok
[INFO] [stdout] test reading_speed::tests::test_estimate_syllables_single_char ... ok
[INFO] [stdout] test reading_speed::tests::test_estimate_syllables_two ... ok
[INFO] [stdout] test reading_speed::tests::test_reading_level_cps_limit_children ... ok
[INFO] [stdout] test reading_speed::tests::test_reading_level_cps_limit_unlimited ... ok
[INFO] [stdout] test reading_speed::tests::test_report_compliance_pct_full ... ok
[INFO] [stdout] test reading_speed::tests::test_report_compliance_pct_partial ... ok
[INFO] [stdout] test reading_speed::tests::test_report_empty_cues ... ok
[INFO] [stdout] test reading_speed::tests::test_speed_cue_char_count_excludes_spaces ... ok
[INFO] [stdout] test reading_speed::tests::test_reading_level_labels ... ok
[INFO] [stdout] test reading_speed::tests::test_reading_speed_check_is_too_fast ... ok
[INFO] [stdout] test reading_speed::tests::test_reading_speed_check_not_too_fast ... ok
[INFO] [stdout] test reading_speed::tests::test_speed_cue_cps ... ok
[INFO] [stdout] test reading_speed::tests::test_speed_cue_duration_secs ... ok
[INFO] [stdout] test reading_speed::tests::test_speed_cue_zero_duration_cps ... ok
[INFO] [stdout] test reading_speed::tests::test_word_complexity_config_custom ... ok
[INFO] [stdout] test reading_speed::tests::test_word_complexity_score_complex_higher ... ok
[INFO] [stdout] test reading_speed::tests::test_word_complexity_score_digits_penalty ... ok
[INFO] [stdout] test reading_speed::tests::test_word_complexity_empty_text ... ok
[INFO] [stdout] test reading_speed::tests::test_word_complexity_score_punctuation_penalty ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_equality ... ok
[INFO] [stdout] test reading_speed::tests::test_word_complexity_score_simple_text ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_is_empty_zero_height ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_not_empty ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_is_empty_zero_width ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_union_adjacent ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_union_basic ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_union_with_empty ... ok
[INFO] [stdout] test renderer::incremental_tests::test_incremental_renderer_invalidate_resets_state ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_new ... ok
[INFO] [stdout] test segmentation::tests::test_block_optimizer_reflow ... ok
[INFO] [stdout] test segmentation::tests::test_line_breaker_max_lines_truncates ... ok
[INFO] [stdout] test segmentation::tests::test_line_breaker_wraps_at_max ... ok
[INFO] [stdout] test segmentation::tests::test_no_orphan_rule ... ok
[INFO] [stdout] test segmentation::tests::test_readability_score_empty_block ... ok
[INFO] [stdout] test segmentation::tests::test_readability_score_range ... ok
[INFO] [stdout] test segmentation::tests::test_subtitle_block_char_count ... ok
[INFO] [stdout] test segmentation::tests::test_subtitle_block_line_count ... ok
[INFO] [stdout] test segmentation::tests::test_subtitle_block_to_plain_text ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_gaussian_blur_empty_returns_empty ... ok
[INFO] [stdout] test segmentation::tests::test_line_breaker_natural_breaks_at_conjunction ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_gaussian_blur_preserves_size ... ok
[INFO] [stdout] test renderer::incremental_tests::test_dirty_rect_union_both_empty ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_gaussian_blur_spreads_signal ... ok
[INFO] [stdout] test segmentation::tests::test_line_breaker_empty_text ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_gaussian_blur_zero_radius_is_near_identity ... ok
[INFO] [stdout] test segmentation::tests::test_line_breaker_simple ... ok
[INFO] [stdout] test accessibility::tests::test_sdh_formatter_music_no_desc ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_soft_shadow_config_broadcast ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_render_soft_shadow_basic ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_render_soft_shadow_shadow_precedes_text ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_render_soft_shadow_buffer_too_small ... ok
[INFO] [stdout] test soft_shadow::soft_shadow_tests::test_soft_shadow_config_defaults ... ok
[INFO] [stdout] test spell_check::tests::test_autocorrect_fixes_word ... ok
[INFO] [stdout] test spell_check::tests::test_dictionary_case_insensitive ... ok
[INFO] [stdout] test spell_check::tests::test_dictionary_len ... ok
[INFO] [stdout] test spell_check::tests::test_edit_distance_empty_strings ... ok
[INFO] [stdout] test spell_check::tests::test_dictionary_missing_word ... ok
[INFO] [stdout] test spell_check::tests::test_check_sentence_finds_misspelling ... ok
[INFO] [stdout] test spell_check::tests::test_edit_distance_identical ... ok
[INFO] [stdout] test spell_check::tests::test_dictionary_contains_existing ... ok
[INFO] [stdout] test spell_check::tests::test_edit_distance_one_insertion ... ok
[INFO] [stdout] test spell_check::tests::test_edit_distance_one_substitution ... ok
[INFO] [stdout] test spell_check::tests::test_edit_distance_one_vs_empty ... ok
[INFO] [stdout] test spell_check::tests::test_spell_checker_correct_word ... ok
[INFO] [stdout] test spell_check::tests::test_spell_checker_incorrect_word ... ok
[INFO] [stdout] test spell_check::tests::test_spell_checker_suggestions_close ... ok
[INFO] [stdout] test spell_check::tests::test_spell_checker_suggestions_too_far ... ok
[INFO] [stdout] test spell_check::tests::test_strip_punctuation_removes_comma ... ok
[INFO] [stdout] test spell_check::tests::test_suggestion_ordering ... ok
[INFO] [stdout] test sub_style::tests::test_alignment_is_bottom ... ok
[INFO] [stdout] test sub_style::tests::test_alignment_is_centered ... ok
[INFO] [stdout] test sub_style::tests::test_color_black ... ok
[INFO] [stdout] test sub_style::tests::test_color_is_opaque_false ... ok
[INFO] [stdout] test sub_style::tests::test_color_is_opaque_true ... ok
[INFO] [stdout] test sub_style::tests::test_color_to_hex_rgba_black ... ok
[INFO] [stdout] test sub_style::tests::test_color_to_hex_rgba_white ... ok
[INFO] [stdout] test sub_style::tests::test_color_white ... ok
[INFO] [stdout] test sub_style::tests::test_color_yellow ... ok
[INFO] [stdout] test sub_style::tests::test_font_style_bold ... ok
[INFO] [stdout] test sub_style::tests::test_font_style_italic ... ok
[INFO] [stdout] test sub_style::tests::test_font_style_plain ... ok
[INFO] [stdout] test sub_style::tests::test_subtitle_style_default ... ok
[INFO] [stdout] test sub_style::tests::test_subtitle_style_forced_is_yellow ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_config_default ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_constant_offset ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_empty_reference ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_empty_source ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_large_offset ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_entry_duration ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_identical_tracks ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_match_contains_source_idx ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_align_similarity_high_for_identical_text ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_estimate_constant_offset_empty_reference ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_estimate_constant_offset_empty_source ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_estimate_constant_offset_simple ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_estimate_offset_low_similarity_yields_none ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_levenshtein_equal ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_levenshtein_single_delete ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_levenshtein_single_insert ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_levenshtein_substitution ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_text_similarity_identical ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_text_similarity_close ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_text_similarity_empty_both ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_text_similarity_one_empty ... ok
[INFO] [stdout] test subtitle_alignment::tests::test_text_similarity_unrelated ... ok
[INFO] [stdout] test subtitle_api_tests::test_ass_parser_basic ... ok
[INFO] [stdout] test subtitle_api_tests::test_srt_parser_basic ... ok
[INFO] [stdout] test subtitle_api_tests::test_srt_parser_second_entry ... ok
[INFO] [stdout] test subtitle_api_tests::test_subtitle_duration ... ok
[INFO] [stdout] test subtitle_api_tests::test_subtitle_id_field ... ok
[INFO] [stdout] test subtitle_api_tests::test_subtitle_is_active ... ok
[INFO] [stdout] test subtitle_api_tests::test_subtitle_new_has_no_id ... ok
[INFO] [stdout] test subtitle_api_tests::test_webvtt_parser_basic ... ok
[INFO] [stdout] test subtitle_api_tests::test_webvtt_parser_timing ... ok
[INFO] [stdout] test subtitle_diff::tests::test_count_diff_kinds ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_both_changed ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_entry_text_matches ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_entry_text_matches_ignore_case ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_entry_timing_matches ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_identical_tracks ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_summary_empty ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_ignore_case_config ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_only_in_first ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_only_in_second ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_result_is_changed ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_summary_identity_percentage ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_text_changed ... ok
[INFO] [stdout] test subtitle_diff::tests::test_diff_timing_changed ... ok
[INFO] [stdout] test subtitle_diff::tests::test_edit_distance_different ... ok
[INFO] [stdout] test subtitle_diff::tests::test_edit_distance_empty ... ok
[INFO] [stdout] test subtitle_diff::tests::test_edit_distance_identical ... ok
[INFO] [stdout] test subtitle_export::tests::test_ass_format_contains_dialogue ... ok
[INFO] [stdout] test subtitle_export::tests::test_ass_timestamp_format ... ok
[INFO] [stdout] test subtitle_export::tests::test_export_all_srt ... ok
[INFO] [stdout] test subtitle_export::tests::test_export_target_extension ... ok
[INFO] [stdout] test subtitle_export::tests::test_export_target_mime_type ... ok
[INFO] [stdout] test subtitle_export::tests::test_ms_to_srt_ts_zero ... ok
[INFO] [stdout] test subtitle_export::tests::test_ms_to_vtt_ts_hours ... ok
[INFO] [stdout] test subtitle_export::tests::test_srt_no_header ... ok
[INFO] [stdout] test subtitle_export::tests::test_srt_sequence_number ... ok
[INFO] [stdout] test subtitle_export::tests::test_srt_text_present ... ok
[INFO] [stdout] test subtitle_export::tests::test_srt_timestamp_format ... ok
[INFO] [stdout] test subtitle_export::tests::test_ttml_has_header_and_footer ... ok
[INFO] [stdout] test subtitle_export::tests::test_vtt_header ... ok
[INFO] [stdout] test subtitle_export::tests::test_ttml_format ... ok
[INFO] [stdout] test subtitle_export::tests::test_vtt_no_sequence_number ... ok
[INFO] [stdout] test subtitle_export::tests::test_vtt_timestamp_format ... ok
[INFO] [stdout] test subtitle_index::tests::test_active_at_end_exclusive ... ok
[INFO] [stdout] test subtitle_index::tests::test_active_at_first_cue ... ok
[INFO] [stdout] test subtitle_index::tests::test_active_at_second_cue ... ok
[INFO] [stdout] test subtitle_index::tests::test_empty_index_active_at ... ok
[INFO] [stdout] test subtitle_index::tests::test_first_last_entry ... ok
[INFO] [stdout] test subtitle_index::tests::test_index_entry_is_active_at ... ok
[INFO] [stdout] test subtitle_index::tests::test_new_is_empty ... ok
[INFO] [stdout] test subtitle_index::tests::test_push_and_build ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_after_all ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_all_entries ... ok
[INFO] [stdout] test subtitle_index::tests::test_active_at_before_start ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_basic ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_before_all ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_binary_search_empty_index ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_inverted_range ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_no_match ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_partial_overlap_end ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_partial_overlap_start ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_single_match ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_tight_window ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merge_drop_on_conflict ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merge_keep_all_marks_conflicts ... ok
[INFO] [stdout] test subtitle_index::tests::test_range_query_large_index_perf ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merge_prefer_first_drops_conflict ... ok
[INFO] [stdout] test subtitle_index::tests::test_active_at_overlap ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merge_prefer_last_replaces ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merge_result_span_ms ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merge_sorted_output ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merge_strategy_name ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merger_add_track ... ok
[INFO] [stdout] test subtitle_merge::tests::test_subtitle_entry_duration_ms ... ok
[INFO] [stdout] test subtitle_merge::tests::test_subtitle_entry_mark_conflicted ... ok
[INFO] [stdout] test subtitle_merge::tests::test_subtitle_entry_overlaps_false ... ok
[INFO] [stdout] test subtitle_merge::tests::test_subtitle_entry_overlaps_true ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_has_encoding_issues_clean ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_has_encoding_issues_mojibake ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_limit_line_breaks ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_normalize_whitespace ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_remove_empty_lines ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_remove_hi_descriptions ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_remove_hi_nested ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_sanitize_full ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_strip_html_tags_basic ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_strip_html_tags_nested ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_strip_html_tags_no_tags ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_strip_ssa_tags ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_strip_ssa_tags_no_tags ... ok
[INFO] [stdout] test subtitle_sanitize::tests::test_trim_lines ... ok
[INFO] [stdout] test subtitle_search::tests::test_basic_search ... ok
[INFO] [stdout] test subtitle_search::tests::test_count_occurrences ... ok
[INFO] [stdout] test subtitle_search::tests::test_empty_query ... ok
[INFO] [stdout] test subtitle_search::tests::test_max_results ... ok
[INFO] [stdout] test subtitle_search::tests::test_search_hit_byte_offset ... ok
[INFO] [stdout] test subtitle_search::tests::test_search_in_time_range ... ok
[INFO] [stdout] test subtitle_search::tests::test_search_time_range_no_match ... ok
[INFO] [stdout] test subtitle_search::tests::test_whole_word_no_partial ... ok
[INFO] [stdout] test subtitle_search::tests::test_whole_word_search ... ok
[INFO] [stdout] test subtitle_search::tests::test_word_index_build_and_lookup ... ok
[INFO] [stdout] test subtitle_search::tests::test_word_index_missing_word ... ok
[INFO] [stdout] test subtitle_search::tests::test_word_index_word_count ... ok
[INFO] [stdout] test subtitle_stats::tests::test_average_gap ... ok
[INFO] [stdout] test subtitle_search::tests::test_case_sensitive_search ... ok
[INFO] [stdout] test subtitle_stats::tests::test_average_gap_single ... ok
[INFO] [stdout] test subtitle_stats::tests::test_chars_per_second ... ok
[INFO] [stdout] test subtitle_stats::tests::test_char_count_excludes_whitespace ... ok
[INFO] [stdout] test subtitle_stats::tests::test_compute_gaps ... ok
[INFO] [stdout] test subtitle_stats::tests::test_count_fast_cues ... ok
[INFO] [stdout] test subtitle_stats::tests::test_stat_subtitle_duration ... ok
[INFO] [stdout] test subtitle_stats::tests::test_track_stats_avg_words_per_cue ... ok
[INFO] [stdout] test subtitle_stats::tests::test_track_stats_basic ... ok
[INFO] [stdout] test subtitle_stats::tests::test_track_stats_empty ... ok
[INFO] [stdout] test subtitle_stats::tests::test_word_count_simple ... ok
[INFO] [stdout] test subtitle_stats::tests::test_words_per_minute ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_preset_library_add_and_find ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_preset_library_names ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_preset_library_with_defaults ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_attribute_is_visual_font_family_false ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_attribute_is_visual_font_size ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_attribute_key ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_set_is_empty ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_set_len ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_set_merge_adds_new_keys ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_set_merge_overrides ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_set_remove ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_set_set_and_get ... ok
[INFO] [stdout] test subtitle_style_ext::tests::test_style_set_visual_attributes ... ok
[INFO] [stdout] test subtitle_validator::tests::test_report_by_rule ... ok
[INFO] [stdout] test subtitle_validator::tests::test_report_error_count ... ok
[INFO] [stdout] test subtitle_validator::tests::test_subtitle_violation_is_timing_error_false ... ok
[INFO] [stdout] test subtitle_validator::tests::test_subtitle_violation_is_timing_error_true ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validate_clean_entries ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validate_end_before_start ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validate_max_chars_per_line ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validate_max_duration ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validate_max_lines ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validate_min_duration ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validate_min_gap ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validate_negative_start ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validation_rule_name ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validator_entry_duration_ms ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validator_entry_empty_text_line_count ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validator_entry_line_count ... ok
[INFO] [stdout] test subtitle_validator::tests::test_validator_entry_max_line_length ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_contrast_ratio_symmetric ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_fails_wcag_aa_large_similar ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_fails_wcag_aa_similar_colors ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_fails_wcag_aaa_moderate_contrast ... ok
[INFO] [stdout] test subtitle_stats::tests::test_chars_per_second_zero_duration ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_passes_wcag_aa_large_white_on_dark_grey ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_passes_wcag_aa_white_on_black ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_passes_wcag_aa_yellow_on_black ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_passes_wcag_aaa_white_black ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_relative_luminance_black ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_relative_luminance_mid_grey ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_relative_luminance_white ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_same_color_contrast_is_1 ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_srgb_color_new ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_wcag_level_aa ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_wcag_level_aa_large ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_wcag_level_aaa ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_wcag_level_fail ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_wcag_level_ordering ... ok
[INFO] [stdout] test subtitle_validator::wcag_tests::test_white_black_contrast_is_21 ... ok
[INFO] [stdout] test timing::tests::test_fix_overlaps ... ok
[INFO] [stdout] test timing::tests::test_frame_to_ms ... ok
[INFO] [stdout] test timing::tests::test_linear_correction ... ok
[INFO] [stdout] test timing::tests::test_merge_similar ... ok
[INFO] [stdout] test timing::tests::test_ms_to_frame ... ok
[INFO] [stdout] test timing::tests::test_offset_subtitles ... ok
[INFO] [stdout] test timing::tests::test_remove_duplicates ... ok
[INFO] [stdout] test timing::tests::test_scale_subtitles ... ok
[INFO] [stdout] test timing::tests::test_split_long_subtitles ... ok
[INFO] [stdout] test timing::tests::test_timing_adjuster ... ok
[INFO] [stdout] test timing_adjust::tests::test_convert_timestamps_list ... ok
[INFO] [stdout] test timing_adjust::tests::test_frame_rate_convert_24_to_25 ... ok
[INFO] [stdout] test timing_adjust::tests::test_frame_rate_convert_same_rate ... ok
[INFO] [stdout] test timing_adjust::tests::test_frame_rate_frames_to_ms ... ok
[INFO] [stdout] test timing_adjust::tests::test_frame_rate_ms_to_frames ... ok
[INFO] [stdout] test timing_adjust::tests::test_shift_timestamps_list ... ok
[INFO] [stdout] test timing_adjust::tests::test_speed_adjust_double ... ok
[INFO] [stdout] test timing_adjust::tests::test_speed_adjust_half_speed ... ok
[INFO] [stdout] test timing_adjust::tests::test_speed_adjust_identity ... ok
[INFO] [stdout] test timing_adjust::tests::test_speed_adjust_timestamps_list ... ok
[INFO] [stdout] test cea::embed::tests::test_timecode_calculation ... ok
[INFO] [stdout] test cue_timing::tests::test_minimum_gap_single ... ok
[INFO] [stdout] test spell_check::tests::test_dictionary_insert ... ok
[INFO] [stdout] test timing_adjust::tests::test_speed_adjust_with_origin ... ok
[INFO] [stdout] test subtitle_index::tests::test_active_at_gap ... ok
[INFO] [stdout] test subtitle_index::tests::test_from_ranges_length ... ok
[INFO] [stdout] test subtitle_merge::tests::test_merge_no_overlap ... ok
[INFO] [stdout] test timing_adjuster::tests::test_adjust_entry ... ok
[INFO] [stdout] test timing_adjuster::tests::test_adjust_ms_clamp_to_zero ... ok
[INFO] [stdout] test timing_adjust::tests::test_time_shift_clamped_no_underflow ... ok
[INFO] [stdout] test timing_adjust::tests::test_time_shift_negative ... ok
[INFO] [stdout] test timing_adjuster::tests::test_adjust_document ... ok
[INFO] [stdout] test timing_adjuster::tests::test_adjust_ms_fps_scale ... ok
[INFO] [stdout] test timing_adjuster::tests::test_detect_offset_empty_docs ... ok
[INFO] [stdout] test timing_adjuster::tests::test_detect_offset_zero ... ok
[INFO] [stdout] test timing_adjuster::tests::test_identity_no_change ... ok
[INFO] [stdout] test timing_adjuster::tests::test_detect_offset_shifted ... ok
[INFO] [stdout] test timing_adjuster::tests::test_invalid_fps_fallback ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_double_speed ... ok
[INFO] [stdout] test timing_adjuster::tests::test_new_stores_fields ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_default_trait ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_empty_is_identity ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_extrapolation_after ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_identity_two_keyframes ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_multi_segment_ramp ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_remap_document ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_half_speed ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_remap_entry ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_extrapolation_before ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_remap_ms_u64_clamp ... ok
[INFO] [stdout] test timing_adjuster::tests::test_adjust_ms_pure_offset ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_speed_at_double ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_speed_at_empty ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_speed_at_normal ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_speed_ramp ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_vfr_correction ... ok
[INFO] [stdout] test timing_adjuster::tests::test_pal_to_ntsc_scale ... ok
[INFO] [stdout] test timing_adjuster::tests::test_nonlinear_single_keyframe_offset ... ok
[INFO] [stdout] test translation::tests::test_bilingual_subtitle_duration ... ok
[INFO] [stdout] test timing_adjuster::tests::test_ntsc_to_pal_adjust_entry ... ok
[INFO] [stdout] test translation::tests::test_bilingual_subtitle_is_active ... ok
[INFO] [stdout] test translation::tests::test_language_all_known_codes ... ok
[INFO] [stdout] test translation::tests::test_language_from_code_hebrew ... ok
[INFO] [stdout] test translation::tests::test_language_from_code_unknown ... ok
[INFO] [stdout] test translation::tests::test_language_from_code_known ... ok
[INFO] [stdout] test translation::tests::test_language_from_code_rtl ... ok
[INFO] [stdout] test translation::tests::test_levenshtein_empty ... ok
[INFO] [stdout] test translation::tests::test_levenshtein_equal ... ok
[INFO] [stdout] test translation::tests::test_levenshtein_single_insertion ... ok
[INFO] [stdout] test translation::tests::test_translation_memory_fuzzy_match ... ok
[INFO] [stdout] test translation::tests::test_translation_memory_empty ... ok
[INFO] [stdout] test translation::tests::test_translation_memory_exact_match ... ok
[INFO] [stdout] test translation::tests::test_translation_memory_no_match_wrong_lang ... ok
[INFO] [stdout] test ttml_v2::tests::test_invalid_time ... ok
[INFO] [stdout] test ttml_v2::tests::test_clock_time_hh_mm_ss_ms ... ok
[INFO] [stdout] test ttml_v2::tests::test_clock_time_mm_ss ... ok
[INFO] [stdout] test ttml_v2::tests::test_offset_time ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_document_styles ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_document_regions ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_two_percentage_values_basic ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_two_percentage_values_no_suffix ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_two_percentage_values_zero ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_basic ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_empty_span_text ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_is_active ... ok
[INFO] [stdout] test timing_adjuster::tests::test_ntsc_to_pal_scale ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_multiple_cues ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_no_region_defaults_to_none ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_multiple_regions ... ok
[INFO] [stdout] test translation::tests::test_bilingual_subtitle_formatted ... ok
[INFO] [stdout] test translation::tests::test_levenshtein_simple_substitution ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_offset_timing ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_no_style_defaults_to_none ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_region_ref ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_span_aggregated_text ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_with_spans ... ok
[INFO] [stdout] test ttml_v2::tests::test_parse_v2_style_ref ... ok
[INFO] [stdout] test ttml_v2::tests::test_style_background_color ... ok
[INFO] [stdout] test timing_adjust::tests::test_time_shift_clamped_positive ... ok
[INFO] [stdout] test timing_adjust::tests::test_time_shift_positive ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 726 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests oximedia_subtitle
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test src/font.rs - font::FontChain (line 276) ... ignored
[INFO] [stdout] test src/lib.rs - (line 21) ... ignored
[INFO] [stdout] test src/lib.rs - SrtParser (line 229) ... ignored
[INFO] [stdout] test src/renderer.rs - renderer::IncrementalSubtitleRenderer (line 347) ... ignored
[INFO] [stdout] test src/subtitle_validator.rs - subtitle_validator::wcag_contrast_ratio (line 545) ... ok
[INFO] [stdout] test src/subtitle_validator.rs - subtitle_validator::passes_wcag_aa (line 591) ... ok
[INFO] [stdout] test src/cue_point.rs - cue_point::CuePoint (line 47) ... ok
[INFO] [stdout] test src/subtitle_index.rs - subtitle_index::SubtitleIndex (line 44) ... ok
[INFO] [stdout] test src/parser/ssa.rs - parser::ssa::parse_override_tags (line 438) ... ok
[INFO] [stdout] test src/timing_adjuster.rs - timing_adjuster::NonLinearRemapper (line 184) ... ignored
[INFO] [stdout] test src/cue_point.rs - cue_point::CuePointList (line 103) ... ok
[INFO] [stdout] test src/subtitle_export.rs - subtitle_export::SubtitleExporter (line 108) ... ok
[INFO] [stdout] test src/format_converter.rs - format_converter::parallel_parse_batch (line 1529) ... ok
[INFO] [stdout] test src/timing.rs - timing::frame_to_ms (line 251) ... ok
[INFO] [stdout] test src/timing.rs - timing::ms_to_frame (line 232) ... ok
[INFO] [stdout] test src/timing.rs - timing::scale_subtitles (line 163) ... ok
[INFO] [stdout] test src/timing.rs - timing::offset_subtitles (line 134) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 5.59s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e234b3682f8c9cce7f9d843d7eee2dc414fcc7b53093c51a1d6ab00e3da8c2e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e234b3682f8c9cce7f9d843d7eee2dc414fcc7b53093c51a1d6ab00e3da8c2e0", kill_on_drop: false }`
[INFO] [stdout] e234b3682f8c9cce7f9d843d7eee2dc414fcc7b53093c51a1d6ab00e3da8c2e0
