[INFO] fetching crate olga 0.1.1...
[INFO] testing olga-0.1.1 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] extracting crate olga 0.1.1 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate olga 0.1.1
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate olga 0.1.1
[INFO] tweaked toml for crates.io crate olga 0.1.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate olga 0.1.1 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate olga 0.1.1 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded scraper v0.26.0
[INFO] [stderr]   Downloaded servo_arc v0.4.3
[INFO] [stderr]   Downloaded phf_codegen v0.13.1
[INFO] [stderr]   Downloaded tendril v0.5.0
[INFO] [stderr]   Downloaded selectors v0.36.1
[INFO] [stderr]   Downloaded phf_shared v0.13.1
[INFO] [stderr]   Downloaded string_cache_codegen v0.6.1
[INFO] [stderr]   Downloaded phf_generator v0.13.1
[INFO] [stderr]   Downloaded lzw v0.10.0
[INFO] [stderr]   Downloaded phf_macros v0.13.1
[INFO] [stderr]   Downloaded markup5ever v0.39.0
[INFO] [stderr]   Downloaded phf v0.13.1
[INFO] [stderr]   Downloaded dtoa v1.0.11
[INFO] [stderr]   Downloaded web_atoms v0.2.4
[INFO] [stderr]   Downloaded ego-tree v0.11.0
[INFO] [stderr]   Downloaded rstar v0.12.2
[INFO] [stderr]   Downloaded block-padding v0.4.2
[INFO] [stderr]   Downloaded string_cache v0.9.0
[INFO] [stderr]   Downloaded cbc v0.2.0
[INFO] [stderr]   Downloaded cpubits v0.1.0
[INFO] [stderr]   Downloaded qcms v0.3.0
[INFO] [stderr]   Downloaded cssparser v0.36.0
[INFO] [stderr]   Downloaded portable-atomic-util v0.2.7
[INFO] [stderr]   Downloaded cipher v0.5.1
[INFO] [stderr]   Downloaded heapless v0.8.0
[INFO] [stderr]   Downloaded assert_cmd v2.2.1
[INFO] [stderr]   Downloaded html5ever v0.39.0
[INFO] [stderr]   Downloaded clap_derive v4.6.1
[INFO] [stderr]   Downloaded zip v8.5.1
[INFO] [stderr]   Downloaded aes v0.9.0
[INFO] [stderr]   Downloaded image v0.24.9
[INFO] [stderr]   Downloaded pdf_oxide v0.3.36
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ae1ff2fd574489fe5f59d5e7a708c5ac1507b09d85544e3e8706e36b0af26370
[INFO] running `Command { std: "docker" "start" "-a" "ae1ff2fd574489fe5f59d5e7a708c5ac1507b09d85544e3e8706e36b0af26370", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ae1ff2fd574489fe5f59d5e7a708c5ac1507b09d85544e3e8706e36b0af26370", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ae1ff2fd574489fe5f59d5e7a708c5ac1507b09d85544e3e8706e36b0af26370", kill_on_drop: false }`
[INFO] [stdout] ae1ff2fd574489fe5f59d5e7a708c5ac1507b09d85544e3e8706e36b0af26370
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 676756d4134271d75369564eed501d847b6f4a48ad07e73f15b632226504003f
[INFO] running `Command { std: "docker" "start" "-a" "676756d4134271d75369564eed501d847b6f4a48ad07e73f15b632226504003f", kill_on_drop: false }`
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]    Compiling phf_codegen v0.13.1
[INFO] [stderr]    Compiling string_cache_codegen v0.6.1
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling hybrid-array v0.4.10
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling web_atoms v0.2.4
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dtoa v1.0.11
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling string_cache v0.9.0
[INFO] [stderr]    Compiling weezl v0.1.12
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling block-padding v0.4.2
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling inout v0.2.2
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling tendril v0.5.0
[INFO] [stderr]    Compiling selectors v0.36.1
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling zune-core v0.5.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling typed-path v0.12.3
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling cipher v0.5.1
[INFO] [stderr]    Compiling zune-jpeg v0.5.15
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling brotli-decompressor v5.0.0
[INFO] [stderr]    Compiling jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling servo_arc v0.4.3
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling hash32 v0.3.1
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling debug_unsafe v0.1.4
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling cpubits v0.1.0
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling aes v0.9.0
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling atoi_simd v0.17.0
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling brotli v8.0.2
[INFO] [stderr]    Compiling zip v7.2.0
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling cbc v0.2.0
[INFO] [stderr]    Compiling md-5 v0.11.0
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling codepage v0.1.2
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling fast-float2 v0.2.3
[INFO] [stderr]    Compiling ttf-parser v0.25.1
[INFO] [stderr]    Compiling qcms v0.3.0
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling phf v0.13.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling cssparser v0.36.0
[INFO] [stderr]    Compiling fax v0.2.6
[INFO] [stderr]    Compiling markup5ever v0.39.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling html5ever v0.39.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling ego-tree v0.11.0
[INFO] [stderr]    Compiling lzw v0.10.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rstar v0.12.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling scraper v0.26.0
[INFO] [stderr]    Compiling zip v8.5.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling calamine v0.34.0
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling tiff v0.11.3
[INFO] [stderr]    Compiling pdf_oxide v0.3.36
[INFO] [stderr]    Compiling olga v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 46s
[INFO] running `Command { std: "docker" "inspect" "676756d4134271d75369564eed501d847b6f4a48ad07e73f15b632226504003f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "676756d4134271d75369564eed501d847b6f4a48ad07e73f15b632226504003f", kill_on_drop: false }`
[INFO] [stdout] 676756d4134271d75369564eed501d847b6f4a48ad07e73f15b632226504003f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 27faef3fe39e481132d92fc7dbc73a5ff4a2f682c402d019e5efed923c3e1776
[INFO] running `Command { std: "docker" "start" "-a" "27faef3fe39e481132d92fc7dbc73a5ff4a2f682c402d019e5efed923c3e1776", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling selectors v0.36.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling assert_cmd v2.2.1
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling scraper v0.26.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling calamine v0.34.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling pdf_oxide v0.3.36
[INFO] [stderr]    Compiling olga v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 59s
[INFO] running `Command { std: "docker" "inspect" "27faef3fe39e481132d92fc7dbc73a5ff4a2f682c402d019e5efed923c3e1776", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27faef3fe39e481132d92fc7dbc73a5ff4a2f682c402d019e5efed923c3e1776", kill_on_drop: false }`
[INFO] [stdout] 27faef3fe39e481132d92fc7dbc73a5ff4a2f682c402d019e5efed923c3e1776
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3f61af7c00c57b6be94d21e9b22c7b9bca6ab34d33e082e01be88d530b19f41a
[INFO] running `Command { std: "docker" "start" "-a" "3f61af7c00c57b6be94d21e9b22c7b9bca6ab34d33e082e01be88d530b19f41a", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.56s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/olga-dabdf472dc80861b)
[INFO] [stdout] 
[INFO] [stdout] running 775 tests
[INFO] [stdout] test api::tests::detect_format_rejects_unknown_bytes ... ok
[INFO] [stdout] test api::tests::detects_pdf_from_magic_bytes ... ok
[INFO] [stdout] test api::tests::detects_html_from_preview_prefix ... ok
[INFO] [stdout] test api::tests::detects_docx_from_zip_layout ... ok
[INFO] [stdout] test api::tests::document_is_send_and_sync ... ok
[INFO] [stdout] test api::tests::detects_xlsx_from_zip_layout ... ok
[INFO] [stdout] test api::tests::cross_page_table_shows_on_every_page_it_covers ... ok
[INFO] [stdout] test api::tests::document_table_count_matches_tables_len ... ok
[INFO] [stdout] test api::tests::empty_query_returns_no_hits ... ok
[INFO] [stdout] test api::tests::chunks_by_page_pairs_up_with_text_by_page ... ok
[INFO] [stdout] test api::tests::docx_text_by_page_covers_pages ... ok
[INFO] [stdout] test api::tests::html_exposes_hyperlinks_from_anchor_tags ... ok
[INFO] [stdout] test api::tests::html_single_page_images_filter_to_page_1 ... ok
[INFO] [stdout] test api::tests::docx_exposes_hyperlinks_when_present ... ok
[INFO] [stdout] test api::tests::opens_bytes_with_explicit_hint ... ok
[INFO] [stdout] test api::tests::opens_bytes_without_hint_uses_sniffing ... ok
[INFO] [stdout] test api::tests::html_always_has_single_page_entry ... ok
[INFO] [stdout] test api::tests::opens_docx_from_path ... ok
[INFO] [stdout] test api::tests::opens_html_from_path ... ok
[INFO] [stdout] test api::tests::opens_pdf_from_path ... ok
[INFO] [stdout] test api::tests::opens_xlsx_from_path ... ok
[INFO] [stdout] test api::tests::markdown_by_page_is_one_based_for_pdf ... ok
[INFO] [stdout] test api::tests::page_chunk_matches_document_chunks ... ok
[INFO] [stdout] test api::tests::docx_images_mirror_primitive_images ... ok
[INFO] [stdout] test api::tests::docx_tables_carry_cells ... ok
[INFO] [stdout] test api::tests::page_links_are_a_subset_of_document_links ... ok
[INFO] [stdout] test api::tests::pages_are_one_based ... ok
[INFO] [stdout] test api::tests::pages_iterator_covers_all_pages ... ok
[INFO] [stdout] test api::tests::outline_is_collected_in_document_order ... ok
[INFO] [stdout] test api::tests::page_images_filter_matches_document_images ... ok
[INFO] [stdout] test api::tests::page_search_restricts_to_that_page ... ok
[INFO] [stdout] test api::tests::page_text_matches_document_text_by_page ... ok
[INFO] [stdout] test api::tests::processability_from_decode_failure_flags_decode_failed ... ok
[INFO] [stdout] test api::tests::processability_from_inputs_blocks_on_empty_content ... ok
[INFO] [stdout] test api::tests::processability_from_inputs_flags_heuristic_structure_as_degradation ... ok
[INFO] [stdout] test api::tests::processability_from_inputs_groups_warnings_deterministically ... ok
[INFO] [stdout] test api::tests::processability_from_blocked_metadata_flags_encrypted ... ok
[INFO] [stdout] test api::tests::processability_from_inputs_reports_ok_on_clean_signals ... ok
[INFO] [stdout] test api::tests::pdf_exposes_images_channel ... ok
[INFO] [stdout] test api::tests::pdf_link_coalescing_is_deterministic ... ok
[INFO] [stdout] test api::tests::processability_helpers_agree_with_health_variant ... ok
[INFO] [stdout] test api::tests::processability_is_idempotent_across_repeated_calls ... ok
[INFO] [stdout] test api::tests::brick_d_processability_is_non_invasive ... ok
[INFO] [stdout] test api::tests::brick_c_accessors_are_non_invasive ... ok
[INFO] [stdout] test api::tests::images_channel_is_non_invasive_for_text_and_markdown ... ok
[INFO] [stdout] test api::tests::search_hit_coordinates_point_to_the_right_line ... ok
[INFO] [stdout] test api::tests::search_is_case_insensitive ... ok
[INFO] [stdout] test api::tests::text_by_page_is_one_based_and_nonempty_for_pdf ... ok
[INFO] [stdout] test api::tests::processability_is_processable_mirrors_blockers ... ok
[INFO] [stdout] test api::tests::processability_for_every_format_is_not_blocked ... ok
[INFO] [stdout] test api::tests::xlsx_has_no_images_in_v1 ... ok
[INFO] [stdout] test formats::docx::decode::pagination::tests::app_xml_wins_when_higher_than_body_signals ... ok
[INFO] [stdout] test formats::docx::decode::pagination::tests::explicit_beats_stale_rendered_markers ... ok
[INFO] [stdout] test formats::docx::decode::pagination::tests::explicit_breaks_beat_under_reporting_app_xml ... ok
[INFO] [stdout] test formats::docx::decode::pagination::tests::no_signals_falls_back_to_one ... ok
[INFO] [stdout] test formats::docx::decode::pagination::tests::rendered_markers_win_provenance_when_they_equal_the_max ... ok
[INFO] [stdout] test formats::docx::decode::pagination::tests::single_signal_app_only ... ok
[INFO] [stdout] test formats::docx::decode::pagination::tests::single_signal_rendered_only ... ok
[INFO] [stdout] test formats::docx::tests::guess_image_format_jpeg ... ok
[INFO] [stdout] test formats::docx::tests::guess_image_format_png ... ok
[INFO] [stdout] test api::tests::xlsx_sheets_expose_at_least_one_table_per_sheet ... ok
[INFO] [stdout] test formats::docx::tests::guess_image_format_unknown ... ok
[INFO] [stdout] test api::tests::processability_serializes_round_trip_via_serde ... ok
[INFO] [stdout] test formats::docx::tests::is_w_element_checks ... ok
[INFO] [stdout] test formats::docx::tests::parse_hex_color_auto ... ok
[INFO] [stdout] test formats::docx::tests::parse_hex_color_valid ... ok
[INFO] [stdout] test formats::docx::tests::local_name_without_prefix ... ok
[INFO] [stdout] test formats::docx::tests::parse_hex_color_with_hash ... ok
[INFO] [stdout] test formats::docx::tests::rel_type_parsing ... ok
[INFO] [stdout] test formats::docx::tests::local_name_with_prefix ... ok
[INFO] [stdout] test formats::docx::tests::style_circular_reference_returns_default ... ok
[INFO] [stdout] test formats::docx::tests::style_missing_parent_returns_own_values ... ok
[INFO] [stdout] test formats::docx::tests::style_resolution_with_inheritance ... ok
[INFO] [stdout] test formats::html::tests::all_primitives_are_page_zero ... ok
[INFO] [stdout] test formats::html::tests::decode_blockquote ... ok
[INFO] [stdout] test formats::html::tests::decode_definition_list ... ok
[INFO] [stdout] test formats::html::tests::decode_heading_levels ... ok
[INFO] [stdout] test formats::html::tests::decode_br_as_newline ... ok
[INFO] [stdout] test formats::html::tests::decode_empty_html ... ok
[INFO] [stdout] test api::tests::processability_pdf_is_not_blocked ... ok
[INFO] [stdout] test formats::html::tests::decode_lang_from_html_tag ... ok
[INFO] [stdout] test formats::html::tests::decode_image_with_alt ... ok
[INFO] [stdout] test formats::html::tests::decode_link ... ok
[INFO] [stdout] test formats::html::tests::decode_malformed_html_no_crash ... ok
[INFO] [stdout] test formats::html::tests::decode_ordered_list ... ok
[INFO] [stdout] test formats::html::tests::decode_pre_preserves_whitespace ... ok
[INFO] [stdout] test formats::html::tests::decode_section_markers ... ok
[INFO] [stdout] test formats::html::tests::decode_simple_paragraph ... ok
[INFO] [stdout] test formats::html::tests::decode_table_with_colspan ... ok
[INFO] [stdout] test formats::html::tests::decode_simple_table ... ok
[INFO] [stdout] test formats::html::tests::decode_title_extraction ... ok
[INFO] [stdout] test formats::html::tests::decode_skips_script_and_style ... ok
[INFO] [stdout] test formats::html::tests::decode_unordered_list ... ok
[INFO] [stdout] test formats::html::tests::decode_table_with_rowspan ... ok
[INFO] [stdout] test formats::html::walker::tests::heading_font_sizes ... ok
[INFO] [stdout] test formats::html::tests::decode_whitespace_collapsing ... ok
[INFO] [stdout] test api::tests::processability_pages_with_content_matches_text_by_page ... ok
[INFO] [stdout] test formats::html::tests::source_order_is_monotonic ... ok
[INFO] [stdout] test formats::html::walker::tests::infer_text_direction_detects_mixed_content ... ok
[INFO] [stdout] test formats::html::walker::tests::hidden_style_detection_recognizes_display_none ... ok
[INFO] [stdout] test formats::html::walker::tests::text_collector_preserves_line_breaks_for_pre_line ... ok
[INFO] [stdout] test formats::pdf::annotations::tests::overlap_score_prefers_better_center_match ... ok
[INFO] [stdout] test formats::pdf::annotations::tests::test_bbox_overlap_full ... ok
[INFO] [stdout] test formats::pdf::annotations::tests::test_bbox_no_vertical_overlap ... ok
[INFO] [stdout] test formats::pdf::annotations::tests::test_bbox_overlap_insufficient_horizontal ... ok
[INFO] [stdout] test formats::pdf::metadata::tests::page_dimensions_normalizes_abs ... ok
[INFO] [stdout] test formats::pdf::pages::tests::bold_italic_detection ... ok
[INFO] [stdout] test formats::pdf::pages::tests::char_bboxes_aligned_with_content ... ok
[INFO] [stdout] test formats::pdf::pages::tests::axis_aligned_multi_line_emits_top_to_bottom_left_to_right ... ok
[INFO] [stdout] test formats::pdf::pages::tests::clean_font_name_strips_subset_prefix ... ok
[INFO] [stdout] test formats::pdf::pages::tests::color_none_for_black_text ... ok
[INFO] [stdout] test formats::pdf::pages::tests::diag_two_lines_actually_emit_top_first ... ok
[INFO] [stdout] test formats::pdf::pages::tests::group_breaks_on_font_change ... ok
[INFO] [stdout] test formats::pdf::pages::tests::color_extraction_non_black ... ok
[INFO] [stdout] test formats::pdf::pages::tests::diag_two_skewed_lines_dont_merge ... ok
[INFO] [stdout] test formats::pdf::pages::tests::group_inserts_space_on_gap ... ok
[INFO] [stdout] test formats::pdf::metadata::tests::extract_page_dims_fallback_on_empty_doc ... ok
[INFO] [stdout] test formats::pdf::pages::tests::group_rtl_span_reverses_visual_order ... ok
[INFO] [stdout] test formats::pdf::pages::tests::group_empty_chars ... ok
[INFO] [stdout] test formats::pdf::pages::tests::group_single_word ... ok
[INFO] [stdout] test api::tests::to_json_returns_object_with_expected_top_level_keys ... ok
[INFO] [stdout] test formats::pdf::pages::tests::group_vertical_span_marks_top_to_bottom ... ok
[INFO] [stdout] test formats::pdf::pages::tests::inconsistent_rotation_falls_back_to_zero_theta ... ok
[INFO] [stdout] test formats::pdf::pages::tests::infer_document_language_detects_hebrew_and_japanese ... ok
[INFO] [stdout] test formats::html::tests::decode_nested_list ... ok
[INFO] [stdout] test formats::pdf::pages::tests::group_breaks_on_mcid_change ... ok
[INFO] [stdout] test formats::pdf::pages::tests::skewed_3_lines_read_top_to_bottom_with_rotation_signal ... ok
[INFO] [stdout] test formats::pdf::pages::tests::skewed_chars_given_in_reverse_order_still_read_left_to_right ... ok
[INFO] [stdout] test formats::pdf::pages::tests::single_line_5deg_skew_stays_one_line ... ok
[INFO] [stdout] test formats::pdf::pages::tests::tight_leading_with_skew_does_not_merge_lines ... ok
[INFO] [stdout] test formats::pdf::pages::tests::sorting_handles_unordered_chars ... ok
[INFO] [stdout] test formats::pdf::pages::tests::vertical_text_two_columns_stay_separated ... ok
[INFO] [stdout] test formats::pdf::pages::tests::subscript_superscript_joins_body_line ... ok
[INFO] [stdout] test formats::pdf::pages::tests::two_distinct_lines_are_ordered_top_to_bottom ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::apply::apply_tagged_structure_reports_unapplied_structural_end_hints ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::apply::apply_tagged_structure_reports_unmatched_items_and_fallback_spans ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::apply::apply_tagged_structure_uses_actual_text_replacement ... ok
[INFO] [stdout] test formats::pdf::pages::tests::skewed_line_preserves_ltr_reading_order ... ok
[INFO] [stdout] test api::tests::processability_issues_are_unique_per_kind ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::apply::apply_tagged_structure_uses_structure_tree_order ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::context::tagged_context_extracts_heading_and_paragraph_hints ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::context::tagged_context_extracts_document_title_from_source_role ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::context::tagged_context_extracts_table_coordinates ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::context::tagged_context_extracts_language_and_sidebar_hint ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::context::tagged_context_extracts_list_item_hint_with_observed_numbering ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::images::bind_alt_text_to_image_appearances_requires_matching_counts ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::images::tagged_context_reports_alt_text_without_descendant_mcid ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::structure::tagged_context_captures_object_refs_in_semantic_graph ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::structure::tagged_context_extracts_expanded_text_hint ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::structure::tagged_context_registers_section_nodes_and_boundaries ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::structure::tagged_context_reports_expanded_text_without_descendant_mcid ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_paths::build_artifact_path_candidate_classifies_manual_rectangles ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_paths::convert_images_filters_explicit_artifact_images ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_paths::build_artifact_path_candidate_classifies_stroked_lines ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_paths::filter_artifact_paths_filters_matching_rectangles ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_paths::finalize_artifact_path_candidate_tracks_unclassified_complex_artifacts ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_risk::emit_repeated_image_artifact_risk_warnings_marks_repeated_patterns ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_risk::emit_repeated_vector_artifact_risk_warnings_requires_repetition ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_risk::emit_repeated_vector_artifact_risk_warnings_marks_repeated_patterns ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_risk::repeated_image_artifact_signature_detects_top_band_images ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_risk::emit_repeated_image_artifact_risk_warnings_requires_repetition ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_risk::repeated_image_artifact_signature_ignores_small_mid_page_images ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_risk::repeated_vector_artifact_signature_detects_top_band_lines ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_risk::repeated_vector_artifact_signature_ignores_mid_page_shapes ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_text::active_marked_content_artifact_survives_nested_semantic_content ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_text::extract_artifact_type_from_properties_dict_handles_pagination_subtypes ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_text::repeated_tagged_residual_rules_require_cross_page_repetition ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_text::suppress_artifact_text_spans_keeps_body_text_with_same_content ... ok
[INFO] [stdout] test formats::pdf::tests::foundation::decoder_name_and_extensions ... ok
[INFO] [stdout] test formats::pdf::tests::artifact_text::suppress_artifact_text_spans_matches_explicit_mcid_rules ... ok
[INFO] [stdout] test formats::pdf::tests::foundation::decode_invalid_data_returns_error ... ok
[INFO] [stdout] test formats::pdf::tests::foundation::harmonize_text_direction_only_applies_without_span_signal ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::context::tagged_context_extracts_link_hint_from_link_attributes ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::images::bind_alt_text_to_image_appearances_marks_ambiguous_candidates ... ok
[INFO] [stdout] test formats::pdf::tagged::tests::images::tagged_context_extracts_figure_alt_text_candidates ... ok
[INFO] [stdout] test formats::pdf::tests::foundation::extract_declared_document_language_prefers_catalog_lang ... ok
[INFO] [stdout] test formats::xlsx::number_format::contract::tests::clean_carries_no_warnings ... ok
[INFO] [stdout] test formats::xlsx::number_format::contract::tests::warning_kinds_are_equatable_for_telemetry_histograms ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::backslash_escape_renders_next_char ... ok
[INFO] [stdout] test formats::xlsx::number_format::contract::tests::with_warning_preserves_text_and_attaches_warning ... ok
[INFO] [stdout] test formats::pdf::tests::foundation::metadata_invalid_data_returns_error ... ok
[INFO] [stdout] test formats::pdf::tests::foundation::image_format_from_image_data ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::elapsed_hours_display_total ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::elapsed_hours_with_minute_and_second_modular ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::elapsed_hours_zero_padded_to_two_digits_minimum ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::fractional_seconds_rounding_rollover_to_next_minute ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::fractional_seconds_three_digits ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::full_timestamp ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::hour_minute_past_midnight ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::hour_minute_twenty_four_hour ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::hour_thirteen_renders_as_one_pm ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::lowercase_am_pm_is_lowercase ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::hour_zero_renders_as_twelve_in_am_pm ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::mm_after_h_is_minute ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::elapsed_minutes_display_total ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::lotus_leap_year_bug_displays_feb_twenty_ninth ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::day_numeric_respects_pad ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::mm_after_y_dash_is_month ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::mm_before_am_pm_is_minute ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::elapsed_seconds_display_total ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::elapsed_with_fractional_seconds ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::mm_between_hh_and_ss_is_minute ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::month_first_letter ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::month_long_name ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::month_numeric_respects_pad ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::month_short_name ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::nineteen_oh_four_epoch_zero_is_jan_first ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::non_finite_serial_returns_malformed ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::quoted_literal_renders_verbatim ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::second_pad ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::serial_fifty_nine_is_feb_twenty_eight_nineteen_hundred ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::serial_one_is_nineteen_hundred_jan_first ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::serial_sixty_one_is_march_first_after_bug ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::single_letter_am_pm ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::star_fill_is_dropped ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::trailing_backslash_returns_malformed ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::twenty_twenty_six_serial_renders_correctly ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::two_digit_year_is_last_two_digits ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::underscore_pad_emits_space ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::unterminated_bracket_returns_malformed ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::unterminated_quote_returns_malformed ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::verbose_weekday_month_day_year ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::watchlist_canary_h_mm_am_pm ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::weekday_long_name ... ok
[INFO] [stdout] test formats::xlsx::number_format::date_formatter::tests::weekday_short_name ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::fractional_close_to_one_keeps_significant_digits ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::integer_at_or_above_1e11_uses_scientific ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::nan_renders_as_num_error ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::negative_fixed_point ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::negative_infinity_renders_as_num_error ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::negative_zero_renders_as_bare_zero ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::one_decimal_place ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::positive_infinity_renders_as_num_error ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::scientific_carry_propagates_to_exponent ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::scientific_negative_mantissa ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::small_decimal_above_threshold_uses_fixed ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::scientific_six_significant_digits_max ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::trailing_zeros_are_trimmed ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::very_large_with_mantissa ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::very_large_uses_scientific ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::small_positive_integer ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::very_small_uses_scientific ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::zero_renders_as_bare_zero ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::ten_digit_integer_renders_as_integer ... ok
[INFO] [stdout] test formats::xlsx::number_format::legacy::tests::date_formats_classify ... ok
[INFO] [stdout] test formats::xlsx::number_format::legacy::tests::plain_number_formats_classify ... ok
[INFO] [stdout] test formats::xlsx::number_format::legacy::tests::default_formats ... ok
[INFO] [stdout] test formats::xlsx::number_format::legacy::tests::percent_formats_classify ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::backslash_escape_emits_literal ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::currency_literal_prefix ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::decimal_dropped_when_all_fractional_optional_and_zero ... ok
[INFO] [stdout] test formats::xlsx::number_format::legacy::tests::currency_formats_classify ... ok
[INFO] [stdout] test formats::xlsx::number_format::general_formatter::tests::small_negative_integer ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_auto_denom_picks_best_rational ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_auto_two_digit_denom_improves_precision ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_fixed_denom_is_reduced_to_canonical_form ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_fixed_denom_renders_mixed_form ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_fixed_denom_rounding_carries_to_whole ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_fixed_denom_whole_only_suppresses_fraction ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_improper_no_whole_placeholder_keeps_integer_inline ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_negative_value_prepends_minus ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_without_numerator_placeholder_returns_warning ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::fraction_zero_value_with_required_whole ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::grouping_comma_inserts_thousands_separator ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::literal_x_suffix ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::grouping_plus_decimals ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::optional_trailing_zero_suppressed ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::percent_multiplies_by_hundred ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::plain_integer_negative_prepends_minus ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::plain_integer_no_padding ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::plain_integer_optional_no_pad ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::plain_integer_zero_pad ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::prepend_minus_applied_when_body_has_no_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::prepend_minus_not_applied_when_body_has_its_own_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::rounds_half_away_from_zero ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::scientific_minus_only_sign_suppresses_positive_plus ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::scientific_rounds_carries_exponent ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::scientific_small_value_renders_negative_exponent ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::scientific_zero_stable ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::star_fill_is_dropped ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::trailing_backslash_returns_malformed ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::trailing_comma_scales_by_thousand ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::two_decimals_required ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::underscore_pad_emits_single_space ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::unterminated_quoted_literal_renders_leniently_as_literal ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::watchlist_bps_positive_section ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::watchlist_bps_negative_section_renders_single_minus ... ok
[INFO] [stdout] test formats::xlsx::number_format::number_formatter::tests::watchlist_scientific_format_renders_correctly ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::conditional_sections_select_by_predicate ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::date_1904_epoch_shifts_serial_origin ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::date_us_slash_formats ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::date_long_form_names ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::elapsed_hours_total_count ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::date_iso_format_decomposes_serial_to_ymd ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::general_keyword_renders_via_general_formatter ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::empty_format_code_falls_through_to_general ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_currency_renders_dollar_prefix_with_grouping ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_decimal_required_emits_trailing_zeros ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::elapsed_minutes_total_count ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::elapsed_seconds_total_count ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_decimal_rounds_half_away ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_integer_placeholder_required_pads_with_zeros ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_integer_placeholder_optional_suppresses_short ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::text_section_echoes_at_substitution ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_percent_scales_by_100_and_appends_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_scientific_renders_signed_exponent ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::text_section_unicode_passes_through ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_grouping_inserts_thousand_separators ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::three_section_format_dispatches_pos_neg_zero ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::time_24_hour_clock ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::accounting_parens_has_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::time_12_hour_clock_with_am_pm ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::backslash_escape_protects_semicolon ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::condition_prefix_is_extracted ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::color_prefix_is_extracted ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::date_body_classifies_as_date ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::currency_plus_locale_prefix_is_extracted ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::conditional_sections_select_by_match ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::elapsed_body_classifies_as_elapsed ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::escaped_dash_counts_as_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::four_sections_split_pos_neg_zero_text ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::locale_prefix_is_extracted ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::four_sections_split_in_order ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::general_body_classifies_as_general ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::multiple_prefixes_all_extracted ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::number_body_classifies_as_number ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::one_section_selects_always_zero ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::negative_with_literal_minus_has_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::quoted_dash_does_not_count_as_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::positive_body_has_no_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::semicolon_inside_brackets_does_not_split ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::semicolon_inside_quotes_does_not_split ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::two_sections_split_on_semicolon ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::text_body_classifies_as_text ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::single_section_is_preserved_verbatim ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::three_sections_split_pos_neg_zero ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::unterminated_bracket_returns_malformed ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::unterminated_quote_falls_through_leniently ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::four_section_text_dispatches_for_string_input ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::watchlist_custom_bps_section_has_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_low_sig_digit_decimals_agree ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_mantissa_1e_minus_n_scientific ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_negative_seven_sig_digit_large_scientific ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_negative_seven_sig_digit_scientific ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_negative_integer_grid_agrees_with_ssf ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_negative_zero_collapses_to_zero ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_scientific_boundary_is_between_neg_4_and_neg_5 ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_powers_of_ten_render_as_integers_then_switch_to_scientific ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_seven_sig_digit_mantissa_at_large_negative_exp_scientific ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_three_significant_digit_integers ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_seven_significant_digit_mantissa_scientific_branch ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::general_two_significant_digit_integers ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_grouped_integer_basic ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_grouped_with_one_decimal ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_dollar_two_decimal_currency ... ok
[INFO] [stdout] test formats::xlsx::number_format::section::tests::two_sections_split_pos_zero_vs_neg ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_quoted_dash_prefix_is_literal_not_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_quoted_literal_prefix_currency ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_grouped_with_two_decimals ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_quoted_literal_suffix_renders_verbatim ... ok
[INFO] [stdout] test formats::xlsx::number_format::poi_fixtures::number_sign_bearing_sections_dispatch_correctly ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::elapsed_hours_total_does_not_wrap ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_zero_four_decimals ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_zero_three_decimals ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_zero_two_decimals ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::number_zero_one_decimal ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::poi_over_ssf_am_pm_case_preservation ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::poi_over_ssf_fixed_point_digit_budget_at_exp_neg_four ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::poi_over_ssf_multi_section_negative_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::poi_over_ssf_scientific_boundary_for_small_low_sig_digit_values ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::text_section_passes_boolean_strings_through ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::time_hh_mm_am_pm_fractional_day ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::time_hh_mm_ss_am_pm_uppercase_agrees ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::three_section_pos_neg_zero_quoted_literals_agreement_rows ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::two_section_pos_neg_zero_falls_back_to_positive ... ok
[INFO] [stdout] test formats::xlsx::number_format::ssf_fixtures::two_section_zero_zero_agreement_rows ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::empty_format_renders_via_poi_general_formatter ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::every_format_warning_kind_has_a_stable_tag ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::every_format_warning_kind_maps_to_a_warning_kind ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_value_renders_custom_sign_bearing_negative_without_double_sign ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_value_matches_legacy_for_currency ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_value_matches_legacy_for_date ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_value_renders_custom_sign_bearing_positive ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_value_matches_legacy_for_percent ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_value_renders_literal_suffix_faithfully ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_value_renders_h_mm_am_pm_as_time_of_day ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::general_format_renders_via_poi_general_formatter ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::malformed_format_code_bridges_to_malformed_content ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::at_plus_quoted_suffix ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::malformed_format_code_falls_back_to_general_with_warning ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_warning_histogram_handles_empty_input ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::push_format_warnings_into_bridges_each_attached_warning ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_warning_histogram_counts_by_kind ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::bare_at_echoes_text ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::backslash_escape_renders_next_char ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::at_twice_duplicates_text ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::body_without_at_is_just_literals ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::empty_body_renders_empty ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::quoted_prefix_plus_at ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::star_fill_is_dropped ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::trailing_backslash_returns_malformed ... ok
[INFO] [stdout] test formats::xlsx::sheets::metadata::comments::tests::legacy_downgrade_stub_recognized ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::unicode_text_passes_through ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::unterminated_quote_returns_malformed ... ok
[INFO] [stdout] test formats::xlsx::sheets::metadata::comments::tests::legacy_rich_text_with_rpr_extracts_text ... ok
[INFO] [stdout] test formats::xlsx::sheets::metadata::comments::tests::person_list_parses_displayname ... ok
[INFO] [stdout] test formats::xlsx::sheets::metadata::comments::tests::render_comment_strips_placeholder_author ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::comment_bounds_is_zero_zero_when_no_comments ... ok
[INFO] [stdout] test formats::xlsx::sheets::metadata::comments::tests::legacy_single_comment_with_author ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::comment_bounds_returns_exclusive_bounds_of_comment_cells ... ok
[INFO] [stdout] test formats::xlsx::sheets::metadata::comments::tests::threaded_thread_groups_into_reply_chain ... ok
[INFO] [stdout] test formats::xlsx::number_format::tests::format_value_renders_scientific_notation_faithfully ... ok
[INFO] [stdout] test formats::xlsx::sheets::metadata::comments::tests::threaded_single_comment_resolves_author_via_persons ... ok
[INFO] [stdout] test formats::xlsx::number_format::text_formatter::tests::underscore_pad_emits_single_space ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::determine_sheet_value_mode_keeps_raw_streaming_for_date_styled_numeric_cells ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::determine_sheet_value_mode_prefers_raw_streaming_for_simple_cells ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::determine_sheet_value_mode_allows_non_date_styled_numeric_cells ... ok
[INFO] [stdout] test formats::xlsx::tests::decode_invalid_data_returns_error ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::scan_raw_sheet_profile_no_comments_preserves_prior_bounds ... ok
[INFO] [stdout] test formats::xlsx::workbook_support::tests::builtin_date_style_resolves_to_date ... ok
[INFO] [stdout] test formats::xlsx::workbook_support::tests::builtin_currency_style_resolves_to_currency ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::load_shared_strings_concatenates_rich_text_runs ... ok
[INFO] [stdout] test formats::xlsx::workbook_support::tests::builtin_percent_style_resolves_to_percent ... ok
[INFO] [stdout] test formats::xlsx::workbook_support::tests::custom_num_fmt_resolves ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::parse_style_profile_marks_date_styles ... ok
[INFO] [stdout] test formats::xlsx::workbook_support::tests::reserved_builtin_ids_fall_through_to_default ... ok
[INFO] [stdout] test formats::xlsx::workbook_support::tests::unknown_and_missing_indices_fall_through_to_default ... ok
[INFO] [stdout] test output::col_resolve::tests::adjacent_words_get_a_forced_space_gap ... ok
[INFO] [stdout] test output::col_resolve::tests::cascade_of_three_on_one_row ... ok
[INFO] [stdout] test formats::xlsx::tests::decoder_name_and_extensions ... ok
[INFO] [stdout] test output::col_resolve::tests::comfortable_gap_same_row_untouched ... ok
[INFO] [stdout] test formats::xlsx::sheets::tests::scan_raw_sheet_profile_expands_bounds_to_cover_comment_only_cells ... ok
[INFO] [stdout] test output::col_resolve::tests::disjoint_rows_never_interact ... ok
[INFO] [stdout] test output::col_resolve::tests::empty_input_returns_empty ... ok
[INFO] [stdout] test output::col_resolve::tests::identical_intended_cols_preserve_input_order ... ok
[INFO] [stdout] test output::col_resolve::tests::multi_row_collisions_are_independent ... ok
[INFO] [stdout] test output::col_resolve::tests::single_item_returns_intended ... ok
[INFO] [stdout] test output::col_resolve::tests::long_word_cascades_through_later_items ... ok
[INFO] [stdout] test output::json::tests::json_includes_warnings ... ok
[INFO] [stdout] test output::json::tests::json_renders_simple_document ... ok
[INFO] [stdout] test output::markdown::words::tests::single_font_run_stays_one_word ... ok
[INFO] [stdout] test output::md_tree::tests::renders_gfm_table ... ok
[INFO] [stdout] test output::col_resolve::tests::never_move_left_when_natural_gap_already_large ... ok
[INFO] [stdout] test output::markdown::words::tests::overlapping_cells_with_different_fonts_yield_separate_words ... ok
[INFO] [stdout] test output::json::tests::json_renders_table_with_dual_representation ... ok
[INFO] [stdout] test output::col_resolve::tests::overlapping_words_push_right ... ok
[INFO] [stdout] test output::md_tree::tests::renders_heading_with_hashes ... ok
[INFO] [stdout] test output::md_tree::tests::renders_ordered_list ... ok
[INFO] [stdout] test output::prim_spatial::tests::list_items_get_prefixed ... ok
[INFO] [stdout] test output::prim_spatial::tests::markdown_renders_bold_text ... ok
[INFO] [stdout] test output::prim_spatial::tests::markdown_renders_heading_with_hashes ... ok
[INFO] [stdout] test output::row_cluster::tests::chain_does_not_fuse_distinct_rows ... ok
[INFO] [stdout] test output::prim_spatial::tests::multipage_renders_page_separators ... ok
[INFO] [stdout] test output::prim_spatial::tests::markdown_renders_table_cells_as_gfm ... ok
[INFO] [stdout] test output::row_cluster::tests::close_values_snap_to_mean ... ok
[INFO] [stdout] test output::row_cluster::tests::empty_in_empty_out ... ok
[INFO] [stdout] test output::row_cluster::tests::input_order_does_not_matter ... ok
[INFO] [stdout] test output::row_cluster::tests::just_past_tolerance_splits ... ok
[INFO] [stdout] test output::row_cluster::tests::real_world_jitter_same_line ... ok
[INFO] [stdout] test output::row_cluster::tests::isolated_values_unchanged ... ok
[INFO] [stdout] test output::row_cluster::tests::real_world_jitter_around_bottom ... ok
[INFO] [stdout] test output::row_cluster::tests::single_value_round_trips ... ok
[INFO] [stdout] test output::rules::tests::bounds_cover_all_endpoints ... ok
[INFO] [stdout] test output::rules::tests::bounds_ignore_non_finite_endpoints ... ok
[INFO] [stdout] test output::rules::tests::diagonal_nearly_horizontal_within_half_cell_is_horizontal ... ok
[INFO] [stdout] test output::rules::tests::empty_segments_have_no_bounds ... ok
[INFO] [stdout] test output::rules::tests::horizontal_collapsing_to_single_cell_is_dropped ... ok
[INFO] [stdout] test output::rules::tests::empty_grid_returns_no_rules ... ok
[INFO] [stdout] test output::rules::tests::horizontal_segment_classified_as_horizontal ... ok
[INFO] [stdout] test output::rules::tests::micro_segment_below_half_row_is_dropped_on_calibrated_grid ... ok
[INFO] [stdout] test output::rules::tests::micro_segment_passes_on_overstretched_grid_sanity ... ok
[INFO] [stdout] test output::rules::tests::non_finite_segments_are_dropped ... ok
[INFO] [stdout] test output::rules::tests::normalize_drops_on_degenerate_bounds ... ok
[INFO] [stdout] test output::rules::tests::normalize_flips_y_axis ... ok
[INFO] [stdout] test output::rules::tests::oblique_segment_is_dropped ... ok
[INFO] [stdout] test output::rules::tests::point_segment_is_dropped ... ok
[INFO] [stdout] test output::rules::tests::rule_at_bottom_boundary_lands_on_last_row ... ok
[INFO] [stdout] test output::rules::tests::segment_entirely_outside_grid_is_dropped ... ok
[INFO] [stdout] test output::rules::tests::rule_at_right_boundary_lands_on_last_col ... ok
[INFO] [stdout] test output::rules::tests::segment_partially_outside_grid_is_clipped ... ok
[INFO] [stdout] test output::rules::tests::vertical_segment_classified_as_vertical ... ok
[INFO] [stdout] test output::rules::tests::segment_exceeding_grid_is_clipped_to_max ... ok
[INFO] [stdout] test output::spatial::words::tests::overlapping_cells_with_different_fonts_yield_separate_words ... ok
[INFO] [stdout] test output::spatial::words::tests::padding_space_in_dedicated_font_does_not_fuse_period_and_next_word ... ok
[INFO] [stdout] test output::spatial::words::tests::single_font_run_stays_one_word ... ok
[INFO] [stdout] test output::text_tree::tests::renders_list ... ok
[INFO] [stdout] test output::text_tree::tests::renders_heading_and_paragraph ... ok
[INFO] [stdout] test structure::assembler::tests::content::artifacts::page_header_kept_when_strip_disabled ... ok
[INFO] [stdout] test structure::assembler::tests::content::artifacts::page_header_stripped_when_configured ... ok
[INFO] [stdout] test output::text_tree::tests::renders_table ... ok
[INFO] [stdout] test structure::assembler::tests::content::blocks::codeblock_assembled ... ok
[INFO] [stdout] test structure::assembler::tests::content::blocks::blockquote_assembled ... ok
[INFO] [stdout] test structure::assembler::tests::content::blocks::codeblock_merges_with_newlines ... ok
[INFO] [stdout] test structure::assembler::tests::content::metadata::emphasis_strong_propagated_to_metadata ... ok
[INFO] [stdout] test structure::assembler::tests::content::metadata::empty_text_primitive_not_emitted ... ok
[INFO] [stdout] test structure::assembler::tests::content::blocks::footnote_emitted_as_leaf ... ok
[INFO] [stdout] test structure::assembler::tests::content::metadata::expanded_text_propagated_to_metadata ... ok
[INFO] [stdout] test structure::assembler::tests::content::metadata::image_between_paragraphs ... ok
[INFO] [stdout] test structure::assembler::tests::content::metadata::link_url_propagated_to_paragraph_metadata ... ok
[INFO] [stdout] test structure::assembler::tests::content::metadata::only_decorations_produces_empty_document ... ok
[INFO] [stdout] test structure::assembler::tests::content::metadata::link_on_footnote_propagated ... ok
[INFO] [stdout] test structure::assembler::tests::content::misc::document_title_becomes_heading ... ok
[INFO] [stdout] test structure::assembler::tests::content::misc::inline_hints_ignored_at_block_level ... ok
[INFO] [stdout] test structure::assembler::tests::content::metadata::paragraph_confidence_tracks_minimum_across_primitives ... ok
[INFO] [stdout] test structure::assembler::tests::content::misc::multi_page_closes_blocks_at_boundary ... ok
[INFO] [stdout] test structure::assembler::tests::content::misc::section_spans_pages ... ok
[INFO] [stdout] test structure::assembler::tests::content::presentation::bare_image_emits_image_node ... ok
[INFO] [stdout] test structure::assembler::tests::content::misc::table_closes_on_paragraph ... ok
[INFO] [stdout] test structure::assembler::tests::content::presentation::bare_image_no_alt_text ... ok
[INFO] [stdout] test structure::assembler::tests::content::presentation::bare_line_acts_as_barrier ... ok
[INFO] [stdout] test structure::assembler::tests::content::presentation::bare_rectangle_skipped_silently ... ok
[INFO] [stdout] test structure::assembler::tests::content::presentation::decoration_between_different_blocks_does_not_merge ... ok
[INFO] [stdout] test structure::assembler::tests::content::presentation::hinted_image_uses_hint_role ... ok
[INFO] [stdout] test output::prim_spatial::tests::sequential_renders_paragraphs_in_order ... ok
[INFO] [stdout] test structure::assembler::tests::content::presentation::sidebar_emitted_as_paragraph_with_role ... ok
[INFO] [stdout] test output::row_cluster::tests::boundary_of_tolerance ... ok
[INFO] [stdout] test output::prim_spatial::tests::text_renders_table_as_ascii ... ok
[INFO] [stdout] test structure::assembler::tests::content::table_fallback::contained_in_table_cell_without_open_table_becomes_paragraph ... ok
[INFO] [stdout] test structure::assembler::tests::content::structure::mixed_document_structure ... ok
[INFO] [stdout] test structure::assembler::tests::content::table_fallback::contained_in_table_cell_routes_to_open_table ... ok
[INFO] [stdout] test structure::assembler::tests::content::presentation::empty_sidebar_skipped ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::classify::classify_bare_image_falls_through ... ok
[INFO] [stdout] test structure::assembler::tests::content::table_fallback::flattened_from_table_cell_routes_to_open_table ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::classify::classify_bare_text_falls_through ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::classify::classify_prefers_list_item_over_paragraph ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::classify::classify_prefers_table_cell_over_heading ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::classify::classify_prefers_table_cell_over_paragraph ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::classify::classify_sidebar_loses_to_table_cell ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::lists::list_survives_page_boundary_with_hints ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::lists::list_closes_when_next_page_has_no_list ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::mixed::is_continuation_text_detects_lowercase ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::paragraphs::paragraph_does_not_merge_when_uppercase_start ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::mixed::mixed_document_heading_para_table_two_pages_para ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::paragraphs::paragraph_merges_across_page_when_continuation_text ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::mixed::section_spans_pages_with_continuity ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::mixed::single_page_document_no_continuity_logic ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::paragraphs::hinted_paragraph_does_not_merge_across_pages ... ok
[INFO] [stdout] test structure::assembler::tests::core::document::empty_document_produces_document_root ... ok
[INFO] [stdout] test structure::assembler::tests::core::headings::heading_breaks_paragraph_accumulation ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::repeated_headers::repeated_table_header_skipped ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::tables::table_closes_when_next_page_has_no_table ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::tables::table_survives_page_boundary_with_hints ... ok
[INFO] [stdout] test structure::assembler::tests::core::headings::heading_emitted_as_leaf ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::mixed::is_continuation_text_detects_punctuation ... ok
[INFO] [stdout] test structure::assembler::tests::continuity::paragraphs::paragraph_merges_on_continuation_punctuation ... ok
[INFO] [stdout] test structure::assembler::tests::core::lists::list_from_item_hints ... ok
[INFO] [stdout] test structure::assembler::tests::core::lists::distinct_list_groups_emit_separate_list_nodes ... ok
[INFO] [stdout] test structure::assembler::tests::core::lists::list_confidence_tracks_minimum ... ok
[INFO] [stdout] test structure::assembler::tests::core::lists::ordered_list ... ok
[INFO] [stdout] test structure::assembler::tests::core::paragraphs::single_paragraph_from_hint_plus_bare ... ok
[INFO] [stdout] test structure::assembler::tests::core::paragraphs::bare_text_merges_into_open_paragraph ... ok
[INFO] [stdout] test structure::assembler::tests::core::lists::ordered_to_unordered_transition_splits_list ... ok
[INFO] [stdout] test structure::assembler::tests::core::paragraphs::consecutive_paragraph_hints_create_separate_paragraphs ... ok
[INFO] [stdout] test structure::assembler::tests::core::paragraphs::whitespace_aware_merge_leading_space ... ok
[INFO] [stdout] test structure::assembler::tests::core::lists::none_list_group_preserves_legacy_merge ... ok
[INFO] [stdout] test structure::assembler::tests::core::paragraphs::bare_text_becomes_implicit_paragraph ... ok
[INFO] [stdout] test structure::assembler::tests::core::lists::same_group_items_stay_merged_even_across_depth_change ... ok
[INFO] [stdout] test structure::assembler::tests::core::paragraphs::whitespace_aware_merge_no_double_spaces ... ok
[INFO] [stdout] test structure::assembler::tests::core::sections::section_end_without_start_warns ... ok
[INFO] [stdout] test structure::assembler::tests::core::sections::section_contains_children ... ok
[INFO] [stdout] test structure::assembler::tests::core::sections::unclosed_section_closed_on_finish ... ok
[INFO] [stdout] test structure::assembler::tests::core::sections::nested_sections ... ok
[INFO] [stdout] test structure::assembler::tests::core::sections::section_title_propagated_as_metadata ... ok
[INFO] [stdout] test structure::assembler::tests::core::tables::table_from_cell_hints ... ok
[INFO] [stdout] test structure::assembler::tests::core::tables::table_with_colspan ... ok
[INFO] [stdout] test structure::assembler::tests::core::tables::table_confidence_tracks_minimum ... ok
[INFO] [stdout] test structure::assembler::tests::table_continuation::table_continuation_merges_into_single_table ... ok
[INFO] [stdout] test structure::assembler::tests::table_continuation::table_continuation_keeps_table_open_at_page_boundary ... ok
[INFO] [stdout] test structure::assembler::tests::core::tables::table_header_marked_in_metadata ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::paragraph_geometry::list_depth_jump_at_page_boundary_warns ... ok
[INFO] [stdout] test structure::assembler::tests::table_continuation::table_continuation_row_offset_is_correct ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::boundaries::list_closes_at_page_boundary_when_no_list_on_next_page ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::paragraph_geometry::paragraph_does_not_merge_when_different_column ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::boundaries::table_closes_at_page_boundary_when_no_table_on_next_page ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::paragraph_geometry::list_depth_increment_by_one_no_warning ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::paragraph_geometry::paragraph_does_not_merge_when_different_font_size ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::paragraph_geometry::paragraph_merges_across_page_when_geometry_matches ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::paragraph_geometry::paragraph_does_not_merge_when_different_width ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::punctuation::geometry_merge_allowed_after_abbreviation ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::mixed_hints::table_assembles_correctly_with_paragraph_and_table_cell_hints ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::span_clamp::span_auto_corrected_when_exceeding_grid ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::punctuation::geometry_merge_blocked_by_sentence_ending_period ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::punctuation::geometry_merge_blocked_by_exclamation ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::span_clamp::span_not_clamped_for_single_row_table ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::span_clamp::span_not_clamped_when_within_grid ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::structural::repeated_header_detected_with_trailing_whitespace ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::structural::unclosed_sections_emit_warning ... ok
[INFO] [stdout] test structure::assembler::tests::warnings::structural::route_to_table_warns_on_span_mismatch ... ok
[INFO] [stdout] test structure::buffer::tests::empty_document_produces_no_flush ... ok
[INFO] [stdout] test structure::buffer::tests::font_histogram_survives_page_flush ... ok
[INFO] [stdout] test structure::buffer::tests::buffer_empty_after_flush ... ok
[INFO] [stdout] test structure::buffer::tests::font_histogram_tracks_sizes ... ok
[INFO] [stdout] test structure::buffer::tests::font_histogram_top_percentile ... ok
[INFO] [stdout] test structure::buffer::tests::max_primitives_warning_emitted ... ok
[INFO] [stdout] test structure::buffer::tests::non_consecutive_pages_flush_correctly ... ok
[INFO] [stdout] test structure::buffer::tests::out_of_order_page_emits_warning ... ok
[INFO] [stdout] test structure::buffer::tests::page_dims_attached_to_flush ... ok
[INFO] [stdout] test structure::buffer::tests::page_dims_reset_after_flush ... ok
[INFO] [stdout] test structure::buffer::tests::pages_flushed_counter_increments ... ok
[INFO] [stdout] test structure::buffer::tests::peak_page_primitives_tracks_maximum ... ok
[INFO] [stdout] test structure::buffer::tests::single_page_flush_on_finish ... ok
[INFO] [stdout] test structure::buffer::tests::take_warnings_clears_internal_vec ... ok
[INFO] [stdout] test structure::buffer::tests::total_primitives_counter ... ok
[INFO] [stdout] test structure::detectors::heading::tests::already_hinted_primitives_skipped ... ok
[INFO] [stdout] test structure::detectors::heading::tests::body_size_text_not_detected ... ok
[INFO] [stdout] test structure::detectors::heading::tests::large_non_bold_lower_confidence ... ok
[INFO] [stdout] test structure::buffer::tests::multi_page_flushes_on_boundary ... ok
[INFO] [stdout] test structure::detectors::heading::tests::empty_histogram_returns_no_hints ... ok
[INFO] [stdout] test structure::detectors::heading::tests::large_bold_text_detected_as_heading ... ok
[INFO] [stdout] test structure::detectors::heading::tests::validate_clamps_invalid_min_size_ratio ... ok
[INFO] [stdout] test structure::detectors::heading::tests::multiple_heading_levels ... ok
[INFO] [stdout] test structure::detectors::heading::tests::validate_clamps_invalid_percentile ... ok
[INFO] [stdout] test structure::buffer::tests::non_text_primitives_buffered_correctly ... ok
[INFO] [stdout] test structure::detectors::list::tests::already_hinted_skipped ... ok
[INFO] [stdout] test structure::detectors::heading::tests::level_map_caps_at_h6 ... ok
[INFO] [stdout] test structure::detectors::list::tests::consecutive_bullets_same_group ... ok
[INFO] [stdout] test structure::detectors::list::tests::bullet_items_detected ... ok
[INFO] [stdout] test structure::detectors::heading::tests::long_text_filtered_out ... ok
[INFO] [stdout] test structure::detectors::list::tests::dash_items_detected ... ok
[INFO] [stdout] test structure::detectors::heading::tests::validate_accepts_valid_config ... ok
[INFO] [stdout] test structure::detectors::list::tests::empty_page_no_hints ... ok
[INFO] [stdout] test structure::detectors::list::tests::definition_list_disabled_by_default ... ok
[INFO] [stdout] test structure::detectors::list::tests::indent_only_disabled_by_default ... ok
[INFO] [stdout] test structure::detectors::list::tests::indent_only_requires_three_consecutive ... ok
[INFO] [stdout] test structure::detectors::list::tests::indent_only_enabled_detects_indented_block ... ok
[INFO] [stdout] test structure::detectors::list::tests::definition_list_enabled_detects_pattern ... ok
[INFO] [stdout] test structure::detectors::list::tests::indented_items_get_depth ... ok
[INFO] [stdout] test structure::detectors::list::tests::indent_only_ignores_dominant_margin ... ok
[INFO] [stdout] test structure::detectors::list::tests::mixed_ordered_unordered_splits_groups ... ok
[INFO] [stdout] test structure::detectors::list::tests::non_list_text_ignored ... ok
[INFO] [stdout] test structure::detectors::list::tests::ordered_items_detected ... ok
[INFO] [stdout] test structure::detectors::list::tests::prefix_helpers ... ok
[INFO] [stdout] test structure::detectors::list::tests::paragraph_between_lists_splits_groups ... ok
[INFO] [stdout] test structure::detectors::list::tests::roman_numeral_items_detected ... ok
[INFO] [stdout] test structure::detectors::list::tests::validate_clamps_invalid_confidence ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::already_hinted_primitives_skipped ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::consecutive_lines_same_paragraph ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::empty_page_returns_no_hints ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::median_helper_works ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::non_text_breaks_paragraph ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::non_text_only_page_returns_no_hints ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::single_text_gets_paragraph_hint ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::validate_accepts_valid_config ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::large_gap_splits_paragraphs ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::validate_clamps_invalid_gap_factor ... ok
[INFO] [stdout] test structure::detectors::paragraph::tests::validate_clamps_invalid_confidence ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::char_level_assignment_majority_vote ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::assign_text_to_cells ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::char_level_falls_back_when_no_char_positions ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::construct_2x2_grid ... ok
[INFO] [stdout] test structure::detectors::list::tests::letter_items_detected ... ok
[INFO] [stdout] test structure::detectors::list::tests::parenthesized_numbers_detected ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::construct_3x3_grid ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::no_cells_from_too_few_intersections ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::corner_indexed_grouping_detects_adjacency ... ok
[INFO] [stdout] test structure::detectors::table::edges::tests::extract_horizontal_line ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::strict_validation_requires_all_four_edges ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::group_two_separate_tables ... ok
[INFO] [stdout] test structure::detectors::table::edges::tests::extract_vertical_line ... ok
[INFO] [stdout] test structure::detectors::table::edges::tests::extract_rectangle_produces_four_edges ... ok
[INFO] [stdout] test structure::detectors::table::edges::tests::non_overlapping_edges_not_merged ... ok
[INFO] [stdout] test structure::detectors::table::edges::tests::short_edges_filtered ... ok
[INFO] [stdout] test structure::detectors::table::edges::tests::thick_lines_filtered ... ok
[INFO] [stdout] test structure::detectors::heading::tests::short_text_filtered_out ... ok
[INFO] [stdout] test structure::detectors::table::intersections::tests::dedup_preserves_distant_points ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::unique_positions_clusters ... ok
[INFO] [stdout] test structure::detectors::table::intersections::tests::dedup_spatial_hash_removes_cluster ... ok
[INFO] [stdout] test structure::detectors::table::edges::tests::distant_edges_not_snapped ... ok
[INFO] [stdout] test structure::detectors::table::cells::tests::table_without_text_is_filtered ... ok
[INFO] [stdout] test structure::detectors::table::intersections::tests::grid_intersections ... ok
[INFO] [stdout] test structure::detectors::table::intersections::tests::near_duplicate_intersections_deduped ... ok
[INFO] [stdout] test structure::detectors::table::edges::tests::snap_merges_nearby_horizontal_edges ... ok
[INFO] [stdout] test structure::detectors::table::tests::benchmarks::bench_char_assignment_vs_primitive ... ignored
[INFO] [stdout] test structure::detectors::table::intersections::tests::intersection_at_edge_endpoint_within_tolerance ... ok
[INFO] [stdout] test structure::detectors::table::tests::benchmarks::bench_lattice_large ... ignored
[INFO] [stdout] test structure::detectors::table::tests::benchmarks::bench_lattice_small ... ignored
[INFO] [stdout] test structure::detectors::table::tests::benchmarks::bench_lattice_stress ... ignored
[INFO] [stdout] test structure::detectors::table::intersections::tests::simple_cross ... ok
[INFO] [stdout] test structure::detectors::table::intersections::tests::no_intersection_when_parallel ... ok
[INFO] [stdout] test structure::detectors::table::intersections::tests::no_intersection_when_not_overlapping ... ok
[INFO] [stdout] test structure::detectors::table::tests::benchmarks::bench_stream_large ... ignored
[INFO] [stdout] test structure::detectors::table::tests::benchmarks::bench_stream_small ... ignored
[INFO] [stdout] test structure::detectors::table::tests::headers::no_header_when_all_same_style ... ok
[INFO] [stdout] test structure::detectors::table::tests::headers::bold_header_detected_lattice ... ok
[INFO] [stdout] test structure::detectors::table::tests::lattice::lattice_rowspan_detected ... ok
[INFO] [stdout] test structure::detectors::table::tests::headers::bold_header_detected_stream ... ok
[INFO] [stdout] test structure::detectors::table::tests::headers::larger_font_header_detected ... ok
[INFO] [stdout] test structure::detectors::table::tests::lattice::partial_grid_hlines_only ... ok
[INFO] [stdout] test structure::detectors::table::tests::stream::already_hinted_skipped ... ok
[INFO] [stdout] test structure::detectors::table::tests::lattice::rectangle_produces_table ... ok
[INFO] [stdout] test structure::detectors::table::tests::stream::empty_page_no_hints ... ok
[INFO] [stdout] test structure::detectors::table::tests::lattice::ruled_table_detected ... ok
[INFO] [stdout] test structure::detectors::table::tests::stream::single_column_not_a_table ... ok
[INFO] [stdout] test structure::detectors::table::tests::lattice::lattice_3x3_table ... ok
[INFO] [stdout] test structure::detectors::table::tests::stream::borderless_table_detected ... ok
[INFO] [stdout] test structure::detectors::table::tests::lattice::text_at_exact_tolerance_boundary_included ... ok
[INFO] [stdout] test structure::detectors::table::tests::validation::validate_clamps_edge_config_fields ... ok
[INFO] [stdout] test structure::detectors::table::tests::lattice::lattice_colspan_detected ... ok
[INFO] [stdout] test structure::detectors::table::tests::stream::too_few_items_not_a_table ... ok
[INFO] [stdout] test structure::detectors::table::tests::validation::cluster_helper_three_pass_produces_six_positions ... ok
[INFO] [stdout] test structure::detectors::table::tests::validation::validate_clamps_invalid_confidence ... ok
[INFO] [stdout] test structure::detectors::table::tests::validation::validate_clamps_intersection_tolerance ... ok
[INFO] [stdout] test structure::detectors::table::tests::validation::validate_clamps_x_tolerance ... ok
[INFO] [stdout] test structure::detectors::table::tests::validation::validate_clamps_invalid_min_columns ... ok
[INFO] [stdout] test structure::detectors::table::tests::stream::stream_uneven_columns ... ok
[INFO] [stdout] test structure::engine::tests::assembly::section_nesting_through_engine ... ok
[INFO] [stdout] test structure::engine::tests::assembly::list_assembly_through_engine ... ok
[INFO] [stdout] test structure::engine::tests::assembly::three_page_document ... ok
[INFO] [stdout] test structure::engine::tests::basic::bare_text_without_detectors_wraps_as_paragraph ... ok
[INFO] [stdout] test structure::detectors::table::tests::validation::validate_clamps_y_gap_factor ... ok
[INFO] [stdout] test structure::detectors::table::tests::stream::y_gap_splits_separate_tables ... ok
[INFO] [stdout] test structure::engine::tests::assembly::table_assembly_through_engine ... ok
[INFO] [stdout] test structure::engine::tests::basic::heading_plus_paragraph_hinted ... ok
[INFO] [stdout] test structure::engine::tests::basic::hinted_document_skips_detection ... ok
[INFO] [stdout] test structure::engine::tests::basic::multi_page_document_assembled ... ok
[INFO] [stdout] test structure::engine::tests::config::low_threshold_forces_detection_on_hinted_pages ... ok
[INFO] [stdout] test structure::engine::tests::basic::single_hinted_paragraph ... ok
[INFO] [stdout] test structure::engine::tests::config::mixed_hinted_and_unhinted_pages ... ok
[INFO] [stdout] test structure::engine::tests::basic::single_unhinted_text_with_detectors ... ok
[INFO] [stdout] test structure::engine::tests::builder::with_default_detectors_registers_paragraph_and_heading ... ok
[INFO] [stdout] test structure::engine::tests::config::threshold_above_one_forces_detection_on_all_pages ... ok
[INFO] [stdout] test structure::engine::tests::warnings::metadata_passed_through ... ok
[INFO] [stdout] test structure::layout::tests::boxes_flow_high_flow_prefers_vertical ... ok
[INFO] [stdout] test structure::layout::tests::boxes_flow_sidebar_layout ... ok
[INFO] [stdout] test structure::layout::tests::empty_input ... ok
[INFO] [stdout] test structure::engine::tests::basic::empty_document_produces_empty_root ... ok
[INFO] [stdout] test structure::engine::tests::warnings::decode_warnings_propagated_to_result ... ok
[INFO] [stdout] test structure::layout::tests::non_text_primitives_are_ignored ... ok
[INFO] [stdout] test structure::engine::tests::builder::with_detector_adds_custom_detector ... ok
[INFO] [stdout] test structure::engine::tests::heuristics::heading_detected_by_font_size_heuristic ... ok
[INFO] [stdout] test structure::layout::tests::single_line_multiple_spans ... ok
[INFO] [stdout] test structure::layout::tests::reading_order_top_to_bottom ... ok
[INFO] [stdout] test structure::layout::tests::strict_line_margin_splits_more ... ok
[INFO] [stdout] test structure::layout::tests::single_line_single_span ... ok
[INFO] [stdout] test structure::layout::tests::textbox_bold_detection ... ok
[INFO] [stdout] test structure::layout::tests::textbox_primitive_indices ... ok
[INFO] [stdout] test structure::layout::tests::two_column_layout ... ok
[INFO] [stdout] test structure::layout::tests::two_boxes_large_gap ... ok
[INFO] [stdout] test structure::layout::tests::two_lines_same_box ... ok
[INFO] [stdout] test structure::layout::textbox::tests::test_large_vertical_gap_separates_boxes ... ok
[INFO] [stdout] test structure::layout::textbox::tests::test_no_horizontal_overlap_prevents_merge ... ok
[INFO] [stdout] test structure::reading_order::tests::columns::column_aware_non_text_assigned_to_columns ... ok
[INFO] [stdout] test structure::layout::tests::whitespace_only_spans_are_skipped ... ok
[INFO] [stdout] test structure::reading_order::tests::columns::column_aware_single_column_fallback ... ok
[INFO] [stdout] test structure::layout::textbox::tests::test_small_input_uses_greedy ... ok
[INFO] [stdout] test structure::reading_order::tests::columns::column_aware_three_columns ... ok
[INFO] [stdout] test structure::reading_order::tests::columns::column_aware_two_columns_rtl ... ok
[INFO] [stdout] test structure::reading_order::tests::columns::narrow_columns_filtered_as_noise ... ok
[INFO] [stdout] test structure::reading_order::tests::columns::column_detection_respects_gap_threshold ... ok
[INFO] [stdout] test structure::reading_order::tests::edge_cases::all_non_text_page_falls_back_to_simple_order ... ok
[INFO] [stdout] test structure::reading_order::tests::edge_cases::detect_dominant_direction_works ... ok
[INFO] [stdout] test structure::reading_order::tests::edge_cases::empty_primitives_reorder_is_noop ... ok
[INFO] [stdout] test structure::reading_order::tests::edge_cases::single_primitive_unchanged ... ok
[INFO] [stdout] test structure::reading_order::tests::selection::select_column_aware_when_multi_column_no_hints ... ok
[INFO] [stdout] test structure::reading_order::tests::selection::select_resolver_all_non_text_returns_simple ... ok
[INFO] [stdout] test structure::reading_order::tests::columns::column_aware_two_columns_ltr ... ok
[INFO] [stdout] test structure::layout::textbox::tests::test_rtree_large_input ... ok
[INFO] [stdout] test structure::layout::textbox::tests::test_greedy_vs_rtree_equivalence ... ok
[INFO] [stdout] test structure::reading_order::tests::selection::select_resolver_empty_returns_tagged ... ok
[INFO] [stdout] test structure::reading_order::tests::simple::simple_resolver_breaks_ties_left_to_right ... ok
[INFO] [stdout] test structure::reading_order::tests::simple::simple_resolver_sorts_top_to_bottom_ltr ... ok
[INFO] [stdout] test structure::reading_order::tests::simple::simple_resolver_rtl_breaks_ties_right_to_left ... ok
[INFO] [stdout] test structure::reading_order::tests::tagged::tagged_resolver_preserves_order ... ok
[INFO] [stdout] test structure::reading_order::tests::selection::select_tagged_when_hints_abundant ... ok
[INFO] [stdout] test structure::reading_order::tests::selection::select_simple_when_single_column_no_hints ... ok
[INFO] [stdout] test structure::visual_lines::tests::cv_layout_not_table ... ok
[INFO] [stdout] test structure::visual_lines::tests::proportional_spacing_preserved ... ok
[INFO] [stdout] test structure::visual_lines::tests::different_lines_separated ... ok
[INFO] [stdout] test structure::visual_lines::tests::render_line_output ... ok
[INFO] [stdout] test structure::visual_lines::tests::same_line_grouped_together ... ok
[INFO] [stdout] test structure::visual_lines::tests::y_overlap_ratio_basic ... ok
[INFO] [stdout] test structure::visual_lines::tests::table_detection_conservative ... ok
[INFO] [stdout] test structure::layout::tests::boxes_flow_negative_uses_proximity ... ok
[INFO] [stdout] test structure::layout::tests::boxes_flow_none_uses_top_left ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/olga-9bb5a7a8ca5d6513)
[INFO] [stdout] test api::tests::processability_warning_count_matches_structure_warnings ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 769 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 2.66s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_tests.rs (/opt/rustwide/target/debug/deps/cli_tests-c74868c872f74ffd)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test pages_out_of_range_fails_with_nonzero_exit ... ok
[INFO] [stdout] test search_empty_query_returns_no_hits ... ok
[INFO] [stdout] test search_page_filter_restricts_to_that_page ... ok
[INFO] [stdout] test pages_single_page_emits_rendered_text ... ok
[INFO] [stdout] test search_returns_hits_with_snippets ... ok
[INFO] [stdout] test default_process_command_still_produces_json ... ok
[INFO] [stdout] test search_limit_truncates_hits_but_keeps_total_before_limit ... ok
[INFO] [stdout] test pages_summary_lists_every_page_with_char_counts ... ok
[INFO] [stdout] test inspect_emits_enriched_metadata_with_health_report ... ok
[INFO] [stdout] test inspect_for_every_format_reports_health ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.73s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/corpus_tests.rs (/opt/rustwide/target/debug/deps/corpus_tests-58e51912ab306b59)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test corpus_docx_fixture_is_stable ... ok
[INFO] [stdout] test corpus_xlsx_fixture_is_stable ... ok
[INFO] [stdout] test corpus_html_fixture_is_stable ... ok
[INFO] [stdout] test corpus_pdf_fixture_is_stable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/docx_tests.rs (/opt/rustwide/target/debug/deps/docx_tests-c59e9476d133a21c)
[INFO] [stdout] 
[INFO] [stdout] running 90 tests
[INFO] [stdout] test foundation::decode_footnote_reference_attaches_id_hint ... ok
[INFO] [stdout] test foundation::decode_source_order_monotonic ... ok
[INFO] [stdout] test foundation::decode_lang_none_when_absent ... ok
[INFO] [stdout] test foundation::decode_lang_from_run ... ok
[INFO] [stdout] test foundation::decode_empty_paragraph_skipped ... ok
[INFO] [stdout] test foundation::decode_lang_mixed_runs_uses_first ... ok
[INFO] [stdout] test foundation::decode_lang_bidi_fallback ... ok
[INFO] [stdout] test foundation::decoder_trait_basics ... ok
[INFO] [stdout] test foundation::decode_textbox_paragraphs_emit_sidebar_hints ... ok
[INFO] [stdout] test foundation::decode_style_inheritance_bold ... ok
[INFO] [stdout] test media::paragraph_annotations::decode_single_ole_only_paragraph_inherits_note_and_comment_refs ... ok
[INFO] [stdout] test media::paragraph_annotations::decode_multiple_media_only_paragraph_warns_on_ambiguous_note_attachment ... ok
[INFO] [stdout] test media::paragraph_hints::decode_media_in_list_item_paragraph_inherits_list_hint ... ok
[INFO] [stdout] test foundation::decode_secondary_parts_emit_story_hints ... ok
[INFO] [stdout] test media::paragraph_annotations::decode_single_media_only_paragraph_inherits_note_and_comment_refs ... ok
[INFO] [stdout] test media::paragraph_annotations::decode_mixed_text_media_paragraph_warns_on_ambiguous_note_attachment ... ok
[INFO] [stdout] test media::paragraph_hints::decode_media_in_heading_paragraph_inherits_heading_hint ... ok
[INFO] [stdout] test media::stories::decode_textbox_image_emits_sidebar_hint ... ok
[INFO] [stdout] test media_context::ambiguity::decode_repeated_media_annotation_ambiguity_in_body_flow_emits_summary_warning ... ok
[INFO] [stdout] test media::paragraph_hints::decode_media_in_plain_paragraph_inherits_paragraph_hint ... ok
[INFO] [stdout] test media_context::table_context::decode_table_cell_images_inherit_table_cell_hints ... ok
[INFO] [stdout] test media_context::table_context::decode_media_inside_nested_table_inherits_flattened_container_hint ... ok
[INFO] [stdout] test media::stories::decode_secondary_part_images_inherit_story_hints ... ok
[INFO] [stdout] test metadata::decode_not_a_docx ... ok
[INFO] [stdout] test metadata::decode_metadata_uses_app_xml_page_estimate ... ok
[INFO] [stdout] test metadata::decode_metadata ... ok
[INFO] [stdout] test media_context::table_context::decode_table_cell_hyperlinked_image_preserves_alt_text_and_link_hint ... ok
[INFO] [stdout] test media_context::ambiguity::decode_repeated_media_annotation_ambiguity_in_same_cell_emits_summary_warning ... ok
[INFO] [stdout] test metadata::decode_metadata_uses_rendered_page_break_markers ... ok
[INFO] [stdout] test secondary_parts::footer_table_does_not_collide_with_body_table_in_markdown ... ok
[INFO] [stdout] test secondary_parts::multiple_secondary_parts_stack_without_overlap ... ok
[INFO] [stdout] test media_context::ambiguity::decode_repeated_media_annotation_ambiguity_in_header_table_cell_emits_scoped_summary_warning ... ok
[INFO] [stdout] test semantics::decode_bidi_paragraph ... ok
[INFO] [stdout] test semantics::decode_multiple_runs ... ok
[INFO] [stdout] test semantics::decode_headings ... ok
[INFO] [stdout] test semantics::decode_heading_style_name_inference_warns ... ok
[INFO] [stdout] test semantics::decode_page_break ... ok
[INFO] [stdout] test semantics::decode_list_items ... ok
[INFO] [stdout] test semantics::decode_simple_paragraphs ... ok
[INFO] [stdout] test tables::basic::decode_table ... ok
[INFO] [stdout] test semantics::decode_repeated_heading_style_name_inference_in_header_cell_emit_summary_warning ... ok
[INFO] [stdout] test tables::basic::decode_table_grid_span_updates_colspan_and_column_positions ... ok
[INFO] [stdout] test semantics::decode_sdt_content ... ok
[INFO] [stdout] test tables::basic::decode_table_header_rows_from_native_tbl_header ... ok
[INFO] [stdout] test media_context::ambiguity::decode_repeated_media_annotation_ambiguity_in_comment_story_emits_story_id_summary_warning ... ok
[INFO] [stdout] test semantics::decode_tracked_changes ... ok
[INFO] [stdout] test secondary_parts::footer_primitives_are_segregated_from_body_on_last_page ... ok
[INFO] [stdout] test tables::merges::decode_table_vertical_merge_without_restart_warns ... ok
[INFO] [stdout] test tables::nested::decode_deeply_nested_tables_emit_flattening_chain ... ok
[INFO] [stdout] test tables::content::decode_table_cell_paragraph_preserves_multiple_links_and_note_hints ... ok
[INFO] [stdout] test tables::nested::decode_multiple_nested_tables_in_same_cell_emit_summary_warning ... ok
[INFO] [stdout] test tables::nested::decode_nested_table_as_first_cell_content_emits_flattened_container_hint ... ok
[INFO] [stdout] test semantics::decode_alternate_content_prefers_fallback ... ok
[INFO] [stdout] test tables::merges::decode_table_vertical_merge_projects_rowspan_on_merged_cells ... ok
[INFO] [stdout] test tables::nested::decode_nested_tables_in_footnote_emit_story_id_scoped_flattening_warning ... ok
[INFO] [stdout] test tables::nested::decode_nested_tables_in_header_cell_emit_story_scoped_flattening_warning ... ok
[INFO] [stdout] test warnings::package::decode_repeated_broken_numbering_definitions_emit_package_summary_warning ... ok
[INFO] [stdout] test warnings::package::decode_missing_styles_warns ... ok
[INFO] [stdout] test warnings::package::decode_repeated_malformed_secondary_relationship_parts_emit_package_summary_warning ... ok
[INFO] [stdout] test tables::nested::decode_nested_tables_warn_and_keep_inner_table_hints ... ok
[INFO] [stdout] test warnings::package::decode_repeated_malformed_auxiliary_xml_files_emit_package_summary_warning ... ok
[INFO] [stdout] test warnings::pagination::decode_page_count_approximation_warns ... ok
[INFO] [stdout] test warnings::pagination::decode_rendered_page_break_markers_override_app_xml ... ok
[INFO] [stdout] test warnings::scoped::links_styles::decode_repeated_internal_hyperlink_relationships_in_header_cell_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::links_styles::decode_repeated_unresolved_styles_in_header_cell_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::links_styles::decode_unresolved_hyperlink_warns ... ok
[INFO] [stdout] test warnings::scoped::links_styles::decode_unresolved_hyperlink_warning_is_story_and_cell_scoped ... ok
[INFO] [stdout] test tables::content::decode_multiple_blocks_in_table_cell_keep_cell_hint_and_inner_structure ... ok
[INFO] [stdout] test warnings::scoped::malformed::decode_repeated_malformed_references_in_comment_story_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::links_styles::decode_unresolved_style_warning_is_story_and_cell_scoped ... ok
[INFO] [stdout] test warnings::scoped::malformed::decode_repeated_note_media_without_id_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::malformed::decode_malformed_reference_warning_is_story_scoped ... ok
[INFO] [stdout] test warnings::package::decode_repeated_malformed_secondary_story_xml_parts_emit_package_summary_warning ... ok
[INFO] [stdout] test warnings::package::decode_repeated_missing_media_payloads_emit_package_summary_warning ... ok
[INFO] [stdout] test warnings::package::decode_repeated_missing_secondary_header_parts_emit_summary_warning ... ok
[INFO] [stdout] test warnings::package::decode_repeated_unresolved_style_inheritance_emit_package_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::media_tracking::decode_repeated_tracked_insertions_in_header_cell_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::media_tracking::decode_repeated_tracked_deletions_in_comment_story_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::media_tracking::decode_repeated_ole_placeholders_in_header_cell_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::media_tracking::decode_tracked_change_warning_is_story_scoped ... ok
[INFO] [stdout] test warnings::scoped::table_layout::decode_repeated_vmerge_colspan_mismatch_in_header_story_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::media_tracking::decode_missing_media_warning_is_story_and_cell_scoped ... ok
[INFO] [stdout] test warnings::scoped::media_tracking::decode_repeated_missing_media_in_header_table_cell_emits_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::malformed::decode_repeated_note_paragraphs_without_id_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::numbering::decode_unresolved_numbering_warns ... ok
[INFO] [stdout] test warnings::scoped::table_layout::decode_vmerge_warning_is_story_and_cell_scoped ... ok
[INFO] [stdout] test warnings::scoped::malformed::decode_repeated_unresolved_relationships_in_comment_story_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::numbering::decode_repeated_unresolved_numbering_in_header_cell_emit_summary_warning ... ok
[INFO] [stdout] test warnings::scoped::table_layout::decode_repeated_vmerge_without_restart_in_header_story_emit_summary_warning ... ok
[INFO] [stdout] test secondary_parts::secondary_parts_output_is_deterministic_across_decodes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 90 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_structure_stress.rs (/opt/rustwide/target/debug/deps/e2e_structure_stress-23374503d373ecce)
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test docx::stress_docx_empty_body ... ok
[INFO] [stdout] test docx::stress_docx_multi_run_paragraph_merges ... ok
[INFO] [stdout] test docx::stress_docx_bold_paragraph_not_heading ... ok
[INFO] [stdout] test docx::stress_docx_deep_heading_hierarchy ... ok
[INFO] [stdout] test docx::stress_docx_heading_then_immediate_table ... ok
[INFO] [stdout] test docx::stress_docx_kitchen_sink ... ok
[INFO] [stdout] test docx::stress_docx_table_with_colspan ... ok
[INFO] [stdout] test docx::stress_docx_numbered_list ... ok
[INFO] [stdout] test docx::stress_docx_very_long_paragraph ... ok
[INFO] [stdout] test docx::stress_docx_two_consecutive_tables ... ok
[INFO] [stdout] test docx::stress_docx_table_with_empty_cells ... ok
[INFO] [stdout] test cross_format::stress_all_synthetic_provenance_is_hint_assembled ... ok
[INFO] [stdout] test html::stress_html_deeply_nested_list ... ok
[INFO] [stdout] test html::stress_html_consecutive_tables ... ok
[INFO] [stdout] test html::stress_html_inline_and_block_mixed ... ok
[INFO] [stdout] test layout::layout_analyzer_feeds_detectors ... ok
[INFO] [stdout] test html::stress_html_bare_text_only ... ok
[INFO] [stdout] test html::stress_html_empty_body ... ok
[INFO] [stdout] test layout::layout_list_bullets_detected ... ok
[INFO] [stdout] test html::stress_html_table_with_spans ... ok
[INFO] [stdout] test layout::layout_table_with_rules_detected ... ok
[INFO] [stdout] test cross_format::stress_all_synthetic_confidence_valid ... ok
[INFO] [stdout] test layout::layout_two_column_reading_order ... ok
[INFO] [stdout] test html::stress_html_complex_nested_structure ... ok
[INFO] [stdout] test layout::layout_mixed_content_page ... ok
[INFO] [stdout] test layout::layout_list_numbered_detected ... ok
[INFO] [stdout] test layout::layout_table_partial_grid ... ok
[INFO] [stdout] test xlsx::stress_xlsx_multi_sheet ... ok
[INFO] [stdout] test layout::layout_table_borderless_detected ... ok
[INFO] [stdout] test xlsx::stress_xlsx_single_cell ... ok
[INFO] [stdout] test xlsx::stress_xlsx_large_table ... ok
[INFO] [stdout] test layout::corpus_pdf_multi_page_no_regression ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_structure_tests.rs (/opt/rustwide/target/debug/deps/e2e_structure_tests-c252540d767068fb)
[INFO] [stdout] 
[INFO] [stdout] running 44 tests
[INFO] [stdout] test docx::e2e_docx_project_status_has_paragraphs ... ok
[INFO] [stdout] test docx::e2e_docx_project_status_has_table_content ... ok
[INFO] [stdout] test docx::e2e_docx_project_status_has_headings ... ok
[INFO] [stdout] test docx::e2e_docx_project_status_has_list_content ... ok
[INFO] [stdout] test docx::e2e_docx_project_status_provenance_is_format_derived ... ok
[INFO] [stdout] test docx::e2e_docx_project_status_decodes_and_structures ... ok
[INFO] [stdout] test docx_stress::e2e_docx_stress_decodes_and_structures ... ok
[INFO] [stdout] test html::e2e_html_semantic_email_decodes_and_structures ... ok
[INFO] [stdout] test docx_stress::e2e_docx_stress_table_after_heading_not_paragraphs ... ok
[INFO] [stdout] test docx_stress::e2e_docx_stress_text_integrity ... ok
[INFO] [stdout] test html::e2e_html_semantic_email_has_headings_and_paragraphs ... ok
[INFO] [stdout] test docx_stress::e2e_docx_stress_no_heuristic_detection ... ok
[INFO] [stdout] test html_stress::e2e_html_stress_nested_list_depth ... ok
[INFO] [stdout] test html_stress::e2e_html_stress_has_all_structural_types ... ok
[INFO] [stdout] test docx_stress::e2e_docx_stress_has_all_structural_types ... ok
[INFO] [stdout] test html_stress::e2e_html_stress_decodes_and_structures ... ok
[INFO] [stdout] test docx_stress::e2e_docx_stress_table_with_empty_cells_survives ... ok
[INFO] [stdout] test html_stress::e2e_html_stress_no_heuristic_detection ... ok
[INFO] [stdout] test html_stress::e2e_html_stress_table_with_spans ... ok
[INFO] [stdout] test cross_format::e2e_all_formats_produce_document_root ... ok
[INFO] [stdout] test cross_format::e2e_all_formats_confidence_in_valid_range ... ok
[INFO] [stdout] test html_stress::e2e_html_stress_text_integrity ... ok
[INFO] [stdout] test pdf::e2e_pdf_structured_report_has_structural_variety ... ok
[INFO] [stdout] test pdf::e2e_pdf_structured_report_decodes_and_structures ... ok
[INFO] [stdout] test pdf::e2e_pdf_structured_report_heuristic_detection_fired ... ok
[INFO] [stdout] test pdf::e2e_pdf_structured_report_contains_key_text ... ok
[INFO] [stdout] test pdf::e2e_pdf_structured_report_spans_multiple_pages ... ok
[INFO] [stdout] test xlsx::e2e_xlsx_employee_directory_decodes_and_structures ... ok
[INFO] [stdout] test xlsx::e2e_xlsx_employee_directory_has_table ... ok
[INFO] [stdout] test pdf_stress::e2e_pdf_stress_heuristic_fires ... ok
[INFO] [stdout] test xlsx::e2e_xlsx_employee_directory_provenance_is_format_derived ... ok
[INFO] [stdout] test pdf_stress::e2e_pdf_stress_confidence_valid ... ok
[INFO] [stdout] test pdf_stress::e2e_pdf_stress_has_paragraphs ... ok
[INFO] [stdout] test xlsx_stress::e2e_xlsx_stress_confidence_range ... ok
[INFO] [stdout] test pdf_stress::e2e_pdf_stress_decodes_and_structures ... ok
[INFO] [stdout] test xlsx_stress::e2e_xlsx_stress_decodes_and_structures ... ok
[INFO] [stdout] test xlsx_stress::e2e_xlsx_stress_multiple_tables ... ok
[INFO] [stdout] test xlsx_stress::e2e_xlsx_stress_single_cell_sheet ... ok
[INFO] [stdout] test xlsx_stress::e2e_xlsx_stress_wide_table ... ok
[INFO] [stdout] test xlsx_stress::e2e_xlsx_stress_sparse_sheet_survives ... ok
[INFO] [stdout] test xlsx_stress::e2e_xlsx_stress_large_sheet_data_intact ... ok
[INFO] [stdout] test pdf_stress::e2e_pdf_stress_heading_detection ... ok
[INFO] [stdout] test pdf_stress::e2e_pdf_stress_spans_all_pages ... ok
[INFO] [stdout] test pdf_stress::e2e_pdf_stress_text_integrity ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 44 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.25s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/html_tests.rs (/opt/rustwide/target/debug/deps/html_tests-a22cf34e56b8face)
[INFO] [stdout] 
[INFO] [stdout] running 46 tests
[INFO] [stdout] test fallbacks::decode_div_soup_extracts_text ... ok
[INFO] [stdout] test fallbacks::decode_empty_html_no_crash ... ok
[INFO] [stdout] test fallbacks::decode_unsupported_layout_styles_warn_once ... ok
[INFO] [stdout] test fallbacks::decode_generic_container_does_not_duplicate_nested_paragraphs ... ok
[INFO] [stdout] test fallbacks::decode_fragment_no_crash ... ok
[INFO] [stdout] test fallbacks::decode_aside_emits_sidebar_hint_when_used_as_text_container ... ok
[INFO] [stdout] test fallbacks::decode_role_based_heading_and_paragraph_from_divs ... ok
[INFO] [stdout] test fallbacks::decode_html_email_skips_non_content ... ok
[INFO] [stdout] test foundation::decode_exposes_static_rendered_subset_mode ... ok
[INFO] [stdout] test foundation::decode_hidden_content_is_skipped_from_output ... ok
[INFO] [stdout] test foundation::decode_lang_element_override ... ok
[INFO] [stdout] test foundation::decode_html_contract_uses_dom_flow_synthetic_geometry ... ok
[INFO] [stdout] test foundation::decode_metadata_only ... ok
[INFO] [stdout] test foundation::decode_lang_from_html_propagates_to_all ... ok
[INFO] [stdout] test foundation::decode_html_direction_and_writing_mode_are_propagated ... ok
[INFO] [stdout] test foundation::decode_html_white_space_styles_are_respected ... ok
[INFO] [stdout] test robustness::decode_empty_table_no_crash ... ok
[INFO] [stdout] test robustness::decode_extreme_rowspan_clamped ... ok
[INFO] [stdout] test robustness::decode_unicode_nfc_normalization ... ok
[INFO] [stdout] test robustness::decode_extreme_colspan_clamped ... ok
[INFO] [stdout] test structures::decode_aria_hidden_content_still_surfaces ... ok
[INFO] [stdout] test structures::decode_aria_list_structure_from_divs ... ok
[INFO] [stdout] test structures::decode_css_display_list_items_from_divs ... ok
[INFO] [stdout] test robustness::decode_deeply_nested_divs_no_stack_overflow ... ok
[INFO] [stdout] test foundation::decode_extensions ... ok
[INFO] [stdout] test foundation::decode_full_semantic_html ... ok
[INFO] [stdout] test structures::decode_aria_table_structure_from_divs ... ok
[INFO] [stdout] test structures::decode_css_display_list_items_with_decimal_markers_are_ordered ... ok
[INFO] [stdout] test structures::decode_deeply_nested_list ... ok
[INFO] [stdout] test structures::decode_css_display_table_structure_from_divs ... ok
[INFO] [stdout] test structures::decode_css_display_table_caption_bottom_after_cells ... ok
[INFO] [stdout] test structures::decode_details_summary_surfaces_both_question_and_answer ... ok
[INFO] [stdout] test structures::decode_details_summary_preserves_dom_order ... ok
[INFO] [stdout] test structures::decode_form_label_wrapping_checkbox_and_link_emits_full_text ... ok
[INFO] [stdout] test structures::decode_form_preserves_dom_order_heading_first ... ok
[INFO] [stdout] test structures::decode_details_with_rich_inline_content_in_summary ... ok
[INFO] [stdout] test structures::decode_hidden_and_submit_inputs_emit_nothing ... ok
[INFO] [stdout] test structures::decode_input_placeholder_surfaces_as_paragraph ... ok
[INFO] [stdout] test structures::decode_select_options_emit_as_list_items ... ok
[INFO] [stdout] test structures::decode_summary_is_emitted_as_bold_paragraph_not_heading ... ok
[INFO] [stdout] test structures::decode_table_with_thead_tbody ... ok
[INFO] [stdout] test structures::decode_table_colspan_rowspan_complex ... ok
[INFO] [stdout] test structures::decode_form_labels_emit_as_separate_blocks ... ok
[INFO] [stdout] test structures::decode_native_table_caption_bottom_after_cells ... ok
[INFO] [stdout] test fallbacks::decode_y_positions_increase ... ok
[INFO] [stdout] test robustness::decode_extreme_nesting_truncated_no_crash ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 46 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/model_tests.rs (/opt/rustwide/target/debug/deps/model_tests-6eef882f6e4e18aa)
[INFO] [stdout] 
[INFO] [stdout] running 58 tests
[INFO] [stdout] test display::display_color ... ok
[INFO] [stdout] test document::document_metadata_encrypted_with_extraction ... ok
[INFO] [stdout] test document::document_metadata_processable ... ok
[INFO] [stdout] test display::display_bounding_box ... ok
[INFO] [stdout] test geometry::bbox_center ... ok
[INFO] [stdout] test geometry::bbox_area ... ok
[INFO] [stdout] test document::document_node_text_collection ... ok
[INFO] [stdout] test geometry::bbox_contains_false ... ok
[INFO] [stdout] test geometry::bbox_contains_point ... ok
[INFO] [stdout] test display::display_document_node_tree ... ok
[INFO] [stdout] test display::display_primitive_text ... ok
[INFO] [stdout] test geometry::bbox_contains_self ... ok
[INFO] [stdout] test geometry::bbox_contains_true ... ok
[INFO] [stdout] test geometry::bbox_distance_diagonal ... ok
[INFO] [stdout] test geometry::bbox_distance_horizontal_gap ... ok
[INFO] [stdout] test geometry::bbox_intersection_none ... ok
[INFO] [stdout] test geometry::bbox_invalid_negative ... ok
[INFO] [stdout] test geometry::bbox_intersection_some ... ok
[INFO] [stdout] test geometry::bbox_invalid_overflow ... ok
[INFO] [stdout] test document::document_metadata_encrypted_no_extraction ... ok
[INFO] [stdout] test geometry::bbox_distance_overlapping_is_zero ... ok
[INFO] [stdout] test geometry::bbox_horizontally_aligned ... ok
[INFO] [stdout] test document::document_node_cross_page ... ok
[INFO] [stdout] test document::document_node_single_page ... ok
[INFO] [stdout] test geometry::bbox_left_aligned ... ok
[INFO] [stdout] test geometry::bbox_merge ... ok
[INFO] [stdout] test geometry::bbox_overlaps_touching_edges_is_false ... ok
[INFO] [stdout] test geometry::bbox_overlaps_true ... ok
[INFO] [stdout] test geometry::normalize_point_no_rotation_no_flip ... ok
[INFO] [stdout] test geometry::normalize_point_with_y_flip ... ok
[INFO] [stdout] test geometry::normalize_point_with_y_flip_top ... ok
[INFO] [stdout] test geometry::page_dimensions_invalid_rotation_defaults_to_zero ... ok
[INFO] [stdout] test geometry::bbox_right_and_bottom ... ok
[INFO] [stdout] test geometry::page_dimensions_no_rotation ... ok
[INFO] [stdout] test geometry::page_dimensions_rotation_180 ... ok
[INFO] [stdout] test geometry::page_dimensions_rotation_270 ... ok
[INFO] [stdout] test geometry::page_dimensions_rotation_90 ... ok
[INFO] [stdout] test geometry::page_dimensions_crop_box_overrides_media_box ... ok
[INFO] [stdout] test geometry::point_distance ... ok
[INFO] [stdout] test primitives::hint_from_heuristic_clamps ... ok
[INFO] [stdout] test primitives::primitive_with_hints ... ok
[INFO] [stdout] test geometry::bbox_merge_is_commutative ... ok
[INFO] [stdout] test primitives::hint_from_format_confidence_is_one ... ok
[INFO] [stdout] test geometry::bbox_overlaps_false_horizontal ... ok
[INFO] [stdout] test geometry::bbox_overlaps_false_vertical ... ok
[INFO] [stdout] test geometry::bbox_valid ... ok
[INFO] [stdout] test serialization::serialize_roundtrip_bounding_box ... ok
[INFO] [stdout] test serialization::serde_roundtrip_document_metadata ... ok
[INFO] [stdout] test serialization::serialize_roundtrip_page_dimensions ... ok
[INFO] [stdout] test serialization::serde_roundtrip_primitive_text ... ok
[INFO] [stdout] test serialization::serialize_roundtrip_document_node ... ok
[INFO] [stdout] test serialization::serialize_roundtrip_primitive_image ... ok
[INFO] [stdout] test serialization::serde_roundtrip_primitive_image ... ok
[INFO] [stdout] test serialization::serialize_roundtrip_document_metadata ... ok
[INFO] [stdout] test serialization::serde_roundtrip_semantic_hint ... ok
[INFO] [stdout] test serialization::serialize_roundtrip_primitive_text ... ok
[INFO] [stdout] test serialization::serialize_roundtrip_hint_kinds ... ok
[INFO] [stdout] test primitives::primitive_new_text ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pdf_tests.rs (/opt/rustwide/target/debug/deps/pdf_tests-ad024d082f7597e6)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test decode_not_pdf ... ok
[INFO] [stdout] test metadata_basic ... ok
[INFO] [stdout] test metadata_not_encrypted ... ok
[INFO] [stdout] test decode_pdf_with_lines ... ok
[INFO] [stdout] test decode_two_pages ... ok
[INFO] [stdout] test metadata_returns_page_dimensions ... ok
[INFO] [stdout] test decode_source_order_monotonic ... ok
[INFO] [stdout] test decode_bboxes_are_normalized ... ok
[INFO] [stdout] test decode_simple_text ... ok
[INFO] [stderr]      Running tests/proptest_bbox.rs (/opt/rustwide/target/debug/deps/proptest_bbox-a654ead95fd50806)
[INFO] [stdout] test decode_empty_pdf ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test bbox_merge_commutative ... ok
[INFO] [stdout] test bbox_center_is_contained ... ok
[INFO] [stdout] test bbox_distance_non_negative ... ok
[INFO] [stdout] test bbox_distance_symmetric ... ok
[INFO] [stdout] test bbox_overlap_symmetric ... ok
[INFO] [stdout] test bbox_contains_self ... ok
[INFO] [stdout] test bbox_arb_always_valid ... ok
[INFO] [stdout] test bbox_merge_contains_both ... ok
[INFO] [stdout] test bbox_intersection_symmetric ... ok
[INFO] [stdout] test bbox_serde_roundtrip ... ok
[INFO] [stdout] test bbox_overlapping_distance_zero ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rules_output_tests.rs (/opt/rustwide/target/debug/deps/rules_output_tests-5b25972fd6306ece)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test markdown_vertical_line_renders_as_pipes ... ok
[INFO] [stdout] test markdown_rules_do_not_gain_formatting ... ok
[INFO] [stdout] test markdown_horizontal_line_renders_as_dashes ... ok
[INFO] [stdout] test spatial_grid_preserves_both_axes ... ok
[INFO] [stdout] test spatial_bottom_boundary_rows_do_not_collide ... ok
[INFO] [stdout] test markdown_micro_mesh_does_not_produce_barcode_artifact ... ok
[INFO] [stdout] test markdown_bottom_boundary_rows_do_not_collide ... ok
[INFO] [stdout] test spatial_horizontal_line_renders_as_dashes ... ok
[INFO] [stdout] test markdown_oblique_line_is_dropped ... ok
[INFO] [stdout] test spatial_stroked_rect_renders_all_four_edges ... ok
[INFO] [stdout] test spatial_micro_mesh_does_not_produce_barcode_artifact ... ok
[INFO] [stdout] test spatial_oblique_line_is_dropped ... ok
[INFO] [stdout] test spatial_vertical_line_renders_as_pipes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/table_crossval_tests.rs (/opt/rustwide/target/debug/deps/table_crossval_tests-3b236950d2bf6c74)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test crossval_structured_report ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/xlsx_tests.rs (/opt/rustwide/target/debug/deps/xlsx_tests-0724a376579d8d9f)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test foundation::col_to_letter_basic ... ok
[INFO] [stdout] test foundation::decode_metadata ... ok
[INFO] [stdout] test foundation::decode_all_page_zero_single_sheet ... ok
[INFO] [stdout] test foundation::decode_multi_sheet ... ok
[INFO] [stdout] test foundation::decode_not_xlsx ... ok
[INFO] [stdout] test foundation::metadata_uses_raw_workbook_plan_even_with_invalid_shared_strings ... ok
[INFO] [stdout] test raw_path::decode_formula_without_cached_value_warns_on_raw_path ... ok
[INFO] [stdout] test raw_path::decode_hidden_first_row_still_anchors_header_heuristic ... ok
[INFO] [stdout] test foundation::decode_source_order_monotonic ... ok
[INFO] [stdout] test raw_path::decode_hidden_rows_and_cols_are_surfaced_like_pandas ... ok
[INFO] [stdout] test foundation::decode_simple_spreadsheet ... ok
[INFO] [stdout] test foundation::decode_positions_normalized ... ok
[INFO] [stdout] test raw_path::decode_missing_sheet_warns_and_continues ... ok
[INFO] [stdout] test raw_path::decode_surfaces_comments_attached_to_empty_cells ... ok
[INFO] [stdout] test raw_path::decode_native_table_headers_override_sheet_heuristic ... ok
[INFO] [stdout] test raw_path::decode_sheet_hyperlink_emits_link_hint_on_raw_path ... ok
[INFO] [stdout] test raw_path::decode_manifest_fraction_canaries_render_via_poi_aligned_pipeline ... ok
[INFO] [stdout] test raw_path::decode_watchlist_canaries_render_via_poi_aligned_pipeline ... ok
[INFO] [stdout] test foundation::decode_large_workbook_is_deterministic ... ok
[INFO] [stderr]    Doc-tests olga
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/api/mod.rs - api (line 9) - compile ... ok
[INFO] [stdout] test src/structure/engine.rs - structure::engine (line 16) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.57s; merged doctests compilation took 1.93s
[INFO] running `Command { std: "docker" "inspect" "3f61af7c00c57b6be94d21e9b22c7b9bca6ab34d33e082e01be88d530b19f41a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f61af7c00c57b6be94d21e9b22c7b9bca6ab34d33e082e01be88d530b19f41a", kill_on_drop: false }`
[INFO] [stdout] 3f61af7c00c57b6be94d21e9b22c7b9bca6ab34d33e082e01be88d530b19f41a
