[INFO] fetching crate pdfplumber-core 0.2.0...
[INFO] testing pdfplumber-core-0.2.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate pdfplumber-core 0.2.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate pdfplumber-core 0.2.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate pdfplumber-core 0.2.0
[INFO] tweaked toml for crates.io crate pdfplumber-core 0.2.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate pdfplumber-core 0.2.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate pdfplumber-core 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0a728993ca42bb23a6862326a5f57d6c1a320ccf8438019f682ad80ee8a5c6b8
[INFO] running `Command { std: "docker" "start" "-a" "0a728993ca42bb23a6862326a5f57d6c1a320ccf8438019f682ad80ee8a5c6b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0a728993ca42bb23a6862326a5f57d6c1a320ccf8438019f682ad80ee8a5c6b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a728993ca42bb23a6862326a5f57d6c1a320ccf8438019f682ad80ee8a5c6b8", kill_on_drop: false }`
[INFO] [stdout] 0a728993ca42bb23a6862326a5f57d6c1a320ccf8438019f682ad80ee8a5c6b8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a68b0bbec882d3dbdfb1655401276af022f3008fb1936215b8071d8aba3ace71
[INFO] running `Command { std: "docker" "start" "-a" "a68b0bbec882d3dbdfb1655401276af022f3008fb1936215b8071d8aba3ace71", kill_on_drop: false }`
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling pdfplumber-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.96s
[INFO] running `Command { std: "docker" "inspect" "a68b0bbec882d3dbdfb1655401276af022f3008fb1936215b8071d8aba3ace71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a68b0bbec882d3dbdfb1655401276af022f3008fb1936215b8071d8aba3ace71", kill_on_drop: false }`
[INFO] [stdout] a68b0bbec882d3dbdfb1655401276af022f3008fb1936215b8071d8aba3ace71
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e4edf548f89805eac74934b22e2768e820d92b92f5a8eba33c65433e63abe578
[INFO] running `Command { std: "docker" "start" "-a" "e4edf548f89805eac74934b22e2768e820d92b92f5a8eba33c65433e63abe578", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling pdfplumber-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.02s
[INFO] running `Command { std: "docker" "inspect" "e4edf548f89805eac74934b22e2768e820d92b92f5a8eba33c65433e63abe578", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e4edf548f89805eac74934b22e2768e820d92b92f5a8eba33c65433e63abe578", kill_on_drop: false }`
[INFO] [stdout] e4edf548f89805eac74934b22e2768e820d92b92f5a8eba33c65433e63abe578
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8c2ab7cddbb0e1fce0cc9a4560497d72320712c7b6ab935dda5abda69c147be0
[INFO] running `Command { std: "docker" "start" "-a" "8c2ab7cddbb0e1fce0cc9a4560497d72320712c7b6ab935dda5abda69c147be0", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pdfplumber_core-91f48bbbe8b2ea75)
[INFO] [stdout] 
[INFO] [stdout] running 651 tests
[INFO] [stdout] test annotation::tests::annotation_type_from_known_subtypes ... ok
[INFO] [stdout] test annotation::tests::annotation_type_from_unknown_subtype ... ok
[INFO] [stdout] test annotation::tests::annotation_clone_and_eq ... ok
[INFO] [stdout] test annotation::tests::annotation_with_no_optional_fields ... ok
[INFO] [stdout] test annotation::tests::annotation_with_all_fields ... ok
[INFO] [stdout] test bookmark::tests::bookmark_nested_levels ... ok
[INFO] [stdout] test bookmark::tests::bookmark_with_all_fields ... ok
[INFO] [stdout] test bookmark::tests::bookmark_without_destination ... ok
[INFO] [stdout] test dedupe::tests::test_color_as_extra_attr ... ok
[INFO] [stdout] test dedupe::tests::test_default_options ... ok
[INFO] [stdout] test dedupe::tests::test_custom_tolerance ... ok
[INFO] [stdout] test dedupe::tests::test_different_font_not_deduped ... ok
[INFO] [stdout] test dedupe::tests::test_different_size_not_deduped ... ok
[INFO] [stdout] test dedupe::tests::test_different_text_not_deduped ... ok
[INFO] [stdout] test bookmark::tests::bookmark_clone_and_eq ... ok
[INFO] [stdout] test dedupe::tests::test_multiple_duplicates_keep_first ... ok
[INFO] [stdout] test dedupe::tests::test_non_overlapping_chars_preserved ... ok
[INFO] [stdout] test dedupe::tests::test_overlapping_identical_chars_deduped ... ok
[INFO] [stdout] test dedupe::tests::test_single_char ... ok
[INFO] [stdout] test edges::tests::test_derive_edges_empty_inputs ... ok
[INFO] [stdout] test edges::tests::test_derive_edges_curves_only ... ok
[INFO] [stdout] test edges::tests::test_derive_edges_lines_only ... ok
[INFO] [stdout] test edges::tests::test_derive_edges_mixed ... ok
[INFO] [stdout] test edges::tests::test_derive_edges_multiple_rects ... ok
[INFO] [stdout] test edges::tests::test_edge_construction_and_field_access ... ok
[INFO] [stdout] test edges::tests::test_edge_from_curve_diagonal_chord ... ok
[INFO] [stdout] test edges::tests::test_edge_from_diagonal_line ... ok
[INFO] [stdout] test edges::tests::test_derive_edges_rects_only ... ok
[INFO] [stdout] test edges::tests::test_edge_from_vertical_line ... ok
[INFO] [stdout] test edges::tests::test_edge_source_variants ... ok
[INFO] [stdout] test edges::tests::test_edges_from_rect_bottom ... ok
[INFO] [stdout] test edges::tests::test_edges_from_rect_count ... ok
[INFO] [stdout] test edges::tests::test_edges_from_rect_left ... ok
[INFO] [stdout] test edges::tests::test_edges_from_rect_right ... ok
[INFO] [stdout] test edges::tests::test_edges_from_rect_top ... ok
[INFO] [stdout] test encoding::tests::font_encoding_decode_bytes ... ok
[INFO] [stdout] test edges::tests::test_edge_from_curve_horizontal_chord ... ok
[INFO] [stdout] test dedupe::tests::test_empty_extra_attrs ... ok
[INFO] [stdout] test encoding::tests::mac_expert_fractions ... ok
[INFO] [stdout] test edges::tests::test_edge_from_curve_vertical_chord ... ok
[INFO] [stdout] test encoding::tests::font_encoding_from_standard ... ok
[INFO] [stdout] test encoding::tests::all_encodings_have_space ... ok
[INFO] [stdout] test encoding::tests::ascii_range_consistent_except_standard ... ok
[INFO] [stdout] test encoding::tests::font_encoding_apply_differences_incrementally ... ok
[INFO] [stdout] test encoding::tests::font_encoding_differences_fill_undefined ... ok
[INFO] [stdout] test encoding::tests::font_encoding_differences_override ... ok
[INFO] [stdout] test encoding::tests::mac_expert_space_and_basic ... ok
[INFO] [stdout] test encoding::tests::mac_expert_superscripts_subscripts ... ok
[INFO] [stdout] test encoding::tests::mac_expert_undefined_codes ... ok
[INFO] [stdout] test encoding::tests::mac_roman_decode_bytes ... ok
[INFO] [stdout] test encoding::tests::mac_roman_extended_characters ... ok
[INFO] [stdout] test encoding::tests::mac_roman_special_symbols ... ok
[INFO] [stdout] test encoding::tests::resolver_decode_bytes_with_undefined ... ok
[INFO] [stdout] test encoding::tests::resolver_decode_bytes ... ok
[INFO] [stdout] test encoding::tests::resolver_default_only ... ok
[INFO] [stdout] test encoding::tests::resolver_font_encoding_over_default ... ok
[INFO] [stdout] test encoding::tests::resolver_to_unicode_highest_priority ... ok
[INFO] [stdout] test encoding::tests::resolver_to_unicode_multi_char ... ok
[INFO] [stdout] test encoding::tests::resolver_full_chain ... ok
[INFO] [stdout] test edges::tests::test_edge_from_horizontal_line ... ok
[INFO] [stdout] test encoding::tests::mac_roman_ascii_printable ... ok
[INFO] [stdout] test dedupe::tests::test_empty_input ... ok
[INFO] [stdout] test encoding::tests::standard_ascii_letters ... ok
[INFO] [stdout] test dedupe::tests::test_mixed_chars_only_duplicates_removed ... ok
[INFO] [stdout] test encoding::tests::standard_diacritics ... ok
[INFO] [stdout] test encoding::tests::font_encoding_from_custom_table ... ok
[INFO] [stdout] test encoding::tests::standard_undefined_ranges ... ok
[INFO] [stdout] test encoding::tests::standard_extended_characters ... ok
[INFO] [stdout] test encoding::tests::win_ansi_ascii_printable ... ok
[INFO] [stdout] test encoding::tests::win_ansi_decode_bytes ... ok
[INFO] [stdout] test encoding::tests::win_ansi_decode_bytes_with_extended ... ok
[INFO] [stdout] test encoding::tests::win_ansi_decode_bytes_with_undefined ... ok
[INFO] [stdout] test encoding::tests::win_ansi_extended_characters ... ok
[INFO] [stdout] test encoding::tests::standard_differs_from_ascii ... ok
[INFO] [stdout] test encoding::tests::win_ansi_undefined_codes ... ok
[INFO] [stdout] test error::tests::extract_options_clone ... ok
[INFO] [stdout] test encoding::tests::win_ansi_latin_extended ... ok
[INFO] [stdout] test encoding::tests::standard_encoding_quote_marks_differ ... ok
[INFO] [stdout] test error::tests::extract_options_custom_values ... ok
[INFO] [stdout] test error::tests::extract_result_map_preserves_warnings ... ok
[INFO] [stdout] test error::tests::extract_result_ok_no_warnings ... ok
[INFO] [stdout] test error::tests::extract_result_collect_multiple_warnings ... ok
[INFO] [stdout] test error::tests::extract_result_with_warnings ... ok
[INFO] [stdout] test error::tests::extract_options_default_values ... ok
[INFO] [stdout] test error::tests::pdf_error_from_io_error ... ok
[INFO] [stdout] test error::tests::pdf_error_interpreter_error_creation ... ok
[INFO] [stdout] test error::tests::pdf_error_font_error_creation ... ok
[INFO] [stdout] test error::tests::pdf_error_implements_std_error ... ok
[INFO] [stdout] test error::tests::pdf_error_invalid_password_clone_and_eq ... ok
[INFO] [stdout] test error::tests::pdf_error_io_error_creation ... ok
[INFO] [stdout] test error::tests::warning_on_page ... ok
[INFO] [stdout] test error::tests::pdf_error_other ... ok
[INFO] [stdout] test error::tests::warning_with_full_context ... ok
[INFO] [stdout] test error::tests::pdf_error_parse_error_creation ... ok
[INFO] [stdout] test error::tests::pdf_error_password_required ... ok
[INFO] [stdout] test error::tests::pdf_error_password_required_clone_and_eq ... ok
[INFO] [stdout] test error::tests::warning_clone_and_eq ... ok
[INFO] [stdout] test error::tests::warning_display_with_all_fields ... ok
[INFO] [stdout] test error::tests::pdf_error_resource_limit_exceeded ... ok
[INFO] [stdout] test error::tests::pdf_error_clone_and_eq ... ok
[INFO] [stdout] test error::tests::warning_new_with_description_only ... ok
[INFO] [stdout] test error::tests::pdf_error_invalid_password ... ok
[INFO] [stdout] test error::tests::warning_with_operator_context ... ok
[INFO] [stdout] test error::tests::warning_with_operator_context_clone_and_eq ... ok
[INFO] [stdout] test form_field::tests::field_type_from_pdf_name_choice ... ok
[INFO] [stdout] test form_field::tests::field_type_from_pdf_name_signature ... ok
[INFO] [stdout] test form_field::tests::field_type_from_pdf_name_text ... ok
[INFO] [stdout] test form_field::tests::field_type_as_pdf_name ... ok
[INFO] [stdout] test form_field::tests::field_type_from_pdf_name_button ... ok
[INFO] [stdout] test form_field::tests::form_field_text_with_value ... ok
[INFO] [stdout] test form_field::tests::field_type_from_pdf_name_unknown ... ok
[INFO] [stdout] test form_field::tests::form_field_checkbox ... ok
[INFO] [stdout] test form_field::tests::form_field_with_flags ... ok
[INFO] [stdout] test form_field::tests::form_field_clone_and_eq ... ok
[INFO] [stdout] test geometry::tests::test_ctm_default_is_identity ... ok
[INFO] [stdout] test geometry::tests::test_bbox_zero_size ... ok
[INFO] [stdout] test form_field::tests::field_type_display ... ok
[INFO] [stdout] test form_field::tests::form_field_with_no_value ... ok
[INFO] [stdout] test geometry::tests::test_ctm_identity ... ok
[INFO] [stdout] test geometry::tests::test_bbox_dimensions ... ok
[INFO] [stdout] test geometry::tests::test_ctm_transform_scaling ... ok
[INFO] [stdout] test geometry::tests::test_bbox_new ... ok
[INFO] [stdout] test geometry::tests::test_ctm_transform_identity ... ok
[INFO] [stdout] test geometry::tests::test_ctm_transform_scale_and_translate ... ok
[INFO] [stdout] test geometry::tests::test_ctm_concat_identity ... ok
[INFO] [stdout] test geometry::tests::test_ctm_transform_translation ... ok
[INFO] [stdout] test geometry::tests::test_ctm_concat_scale_then_translate ... ok
[INFO] [stdout] test geometry::tests::test_orientation_clone_copy ... ok
[INFO] [stdout] test geometry::tests::test_ctm_concat_two_translations ... ok
[INFO] [stdout] test geometry::tests::test_point_new ... ok
[INFO] [stdout] test html::tests::test_block_dominant_size ... ok
[INFO] [stdout] test html::tests::test_bold_font_detection ... ok
[INFO] [stdout] test html::tests::test_escape_html_combined ... ok
[INFO] [stdout] test html::tests::test_detect_bullet_list ... ok
[INFO] [stdout] test html::tests::test_heading_h1 ... ok
[INFO] [stdout] test html::tests::test_heading_html_escapes_content ... ok
[INFO] [stdout] test html::tests::test_escape_html_quotes ... ok
[INFO] [stdout] test html::tests::test_heading_h3 ... ok
[INFO] [stdout] test html::tests::test_heading_zero_median ... ok
[INFO] [stdout] test html::tests::test_heading_h4 ... ok
[INFO] [stdout] test html::tests::test_italic_font_detection ... ok
[INFO] [stdout] test html::tests::test_no_heading_normal_size ... ok
[INFO] [stdout] test html::tests::test_html_options_default ... ok
[INFO] [stdout] test geometry::tests::test_orientation_variants ... ok
[INFO] [stdout] test html::tests::test_median_font_size_empty ... ok
[INFO] [stdout] test html::tests::test_median_font_size_single ... ok
[INFO] [stdout] test html::tests::test_escape_html_ampersand ... ok
[INFO] [stdout] test html::tests::test_paragraph_html_wrapping ... ok
[INFO] [stdout] test html::tests::test_heading_h2 ... ok
[INFO] [stdout] test html::tests::test_render_ordered_list ... ok
[INFO] [stdout] test html::tests::test_render_unordered_list ... ok
[INFO] [stdout] test html::tests::test_render_bold_italic_combined ... ok
[INFO] [stdout] test html::tests::test_table_single_row ... ok
[INFO] [stdout] test html::tests::test_render_with_table ... ok
[INFO] [stdout] test html::tests::test_table_to_html_empty ... ok
[INFO] [stdout] test html::tests::test_render_simple_paragraph ... ok
[INFO] [stdout] test html::tests::test_table_to_html_escapes_html ... ok
[INFO] [stdout] test html::tests::test_render_empty_input ... ok
[INFO] [stdout] test html::tests::test_render_heading_and_paragraph ... ok
[INFO] [stdout] test html::tests::test_render_heading_detection ... ok
[INFO] [stdout] test html::tests::test_render_line_with_emphasis ... ok
[INFO] [stdout] test html::tests::test_table_to_html_simple ... ok
[INFO] [stdout] test hyperlink::tests::hyperlink_clone_and_eq ... ok
[INFO] [stdout] test html::tests::test_table_to_html_with_none_cells ... ok
[INFO] [stdout] test hyperlink::tests::hyperlink_with_goto_dest ... ok
[INFO] [stdout] test hyperlink::tests::hyperlink_with_uri ... ok
[INFO] [stdout] test html::tests::test_render_list_items_as_html ... ok
[INFO] [stdout] test images::tests::test_image_content_construction ... ok
[INFO] [stdout] test images::tests::test_image_content_raw_format ... ok
[INFO] [stdout] test images::tests::test_image_format_extension ... ok
[INFO] [stdout] test images::tests::test_image_from_ctm_different_page_height ... ok
[INFO] [stdout] test images::tests::test_image_from_ctm_identity ... ok
[INFO] [stdout] test images::tests::test_image_from_ctm_scale_and_translate ... ok
[INFO] [stdout] test images::tests::test_image_from_ctm_simple_placement ... ok
[INFO] [stdout] test images::tests::test_image_metadata_default ... ok
[INFO] [stdout] test layout::tests::test_blocks_to_text_single_block_multi_line ... ok
[INFO] [stdout] test layout::tests::test_blocks_to_text_single_block_single_line ... ok
[INFO] [stdout] test layout::tests::test_blocks_to_text_two_blocks ... ok
[INFO] [stdout] test layout::tests::test_cluster_empty_words ... ok
[INFO] [stdout] test images::tests::test_image_construction_and_field_access ... ok
[INFO] [stdout] test layout::tests::test_cluster_line_bbox_is_union ... ok
[INFO] [stdout] test form_field::tests::form_field_dropdown_with_options ... ok
[INFO] [stdout] test images::tests::test_image_content_clone_eq ... ok
[INFO] [stdout] test layout::tests::test_cluster_lines_empty ... ok
[INFO] [stdout] test layout::tests::test_cluster_lines_block_bbox ... ok
[INFO] [stdout] test form_field::tests::form_field_signature ... ok
[INFO] [stdout] test images::tests::test_image_format_clone_eq ... ok
[INFO] [stdout] test geometry::tests::test_bbox_union ... ok
[INFO] [stdout] test images::tests::test_image_from_ctm_no_metadata ... ok
[INFO] [stdout] test images::tests::test_image_from_ctm_translation_only ... ok
[INFO] [stdout] test layout::tests::test_blocks_to_text_empty ... ok
[INFO] [stdout] test images::tests::test_image_bbox ... ok
[INFO] [stdout] test layout::tests::test_cluster_three_lines ... ok
[INFO] [stdout] test layout::tests::test_cluster_words_same_line ... ok
[INFO] [stdout] test layout::tests::test_cluster_words_different_lines ... ok
[INFO] [stdout] test layout::tests::test_cluster_words_slight_y_variation ... ok
[INFO] [stdout] test layout::tests::test_cluster_lines_single_block ... ok
[INFO] [stdout] test html::tests::test_detect_no_list ... ok
[INFO] [stdout] test layout::tests::test_cluster_single_word ... ok
[INFO] [stdout] test layout::tests::test_end_to_end_mixed_blocks ... ok
[INFO] [stdout] test html::tests::test_escape_html_angle_brackets ... ok
[INFO] [stdout] test layout::tests::test_reading_order_top_to_bottom_left_to_right ... ok
[INFO] [stdout] test layout::tests::test_end_to_end_single_column ... ok
[INFO] [stdout] test layout::tests::test_cluster_lines_two_blocks ... ok
[INFO] [stdout] test layout::tests::test_end_to_end_two_column_layout ... ok
[INFO] [stdout] test layout::tests::test_sort_single_block_unchanged ... ok
[INFO] [stdout] test layout::tests::test_cluster_words_sorted_left_to_right_within_line ... ok
[INFO] [stdout] test layout::tests::test_sort_two_columns ... ok
[INFO] [stdout] test layout::tests::test_sort_single_column_top_to_bottom ... ok
[INFO] [stdout] test layout::tests::test_split_lines_single_word_line ... ok
[INFO] [stdout] test layout::tests::test_split_lines_with_column_gap ... ok
[INFO] [stdout] test layout::tests::test_text_options_default ... ok
[INFO] [stdout] test layout::tests::test_text_options_layout_true ... ok
[INFO] [stdout] test layout::tests::test_words_to_text_empty ... ok
[INFO] [stdout] test layout::tests::test_words_to_text_multi_line ... ok
[INFO] [stdout] test layout::tests::test_words_to_text_single_line ... ok
[INFO] [stdout] test markdown::tests::test_bold_font_detection ... ok
[INFO] [stdout] test html::tests::test_detect_numbered_list ... ok
[INFO] [stdout] test markdown::tests::test_detect_bullet_unicode ... ok
[INFO] [stdout] test markdown::tests::test_detect_heading_h1 ... ok
[INFO] [stdout] test markdown::tests::test_detect_heading_h2 ... ok
[INFO] [stdout] test markdown::tests::test_detect_heading_h3 ... ok
[INFO] [stdout] test markdown::tests::test_detect_heading_h4 ... ok
[INFO] [stdout] test markdown::tests::test_detect_bullet_dash ... ok
[INFO] [stdout] test markdown::tests::test_detect_no_heading_normal_size ... ok
[INFO] [stdout] test markdown::tests::test_detect_no_list_empty ... ok
[INFO] [stdout] test markdown::tests::test_detect_no_list_normal_text ... ok
[INFO] [stdout] test markdown::tests::test_detect_numbered_list_dot ... ok
[INFO] [stdout] test markdown::tests::test_detect_numbered_list_multi_digit ... ok
[INFO] [stdout] test markdown::tests::test_detect_heading_zero_median ... ok
[INFO] [stdout] test markdown::tests::test_italic_font_detection ... ok
[INFO] [stdout] test markdown::tests::test_median_font_size_empty ... ok
[INFO] [stdout] test markdown::tests::test_median_font_size_even_count ... ok
[INFO] [stdout] test markdown::tests::test_markdown_options_default ... ok
[INFO] [stdout] test markdown::tests::test_detect_heading_zero_font_size ... ok
[INFO] [stdout] test markdown::tests::test_render_elements_heading_and_paragraph ... ok
[INFO] [stdout] test markdown::tests::test_render_elements_numbered_list ... ok
[INFO] [stdout] test markdown::tests::test_detect_numbered_list_paren ... ok
[INFO] [stdout] test markdown::tests::test_render_empty_input ... ok
[INFO] [stdout] test markdown::tests::test_render_simple_paragraph ... ok
[INFO] [stdout] test markdown::tests::test_render_elements_list ... ok
[INFO] [stdout] test markdown::tests::test_render_heading_detection ... ok
[INFO] [stdout] test markdown::tests::test_median_font_size_ignores_zero_size ... ok
[INFO] [stdout] test markdown::tests::test_median_font_size_odd_count ... ok
[INFO] [stdout] test markdown::tests::test_render_list_items ... ok
[INFO] [stdout] test markdown::tests::test_table_to_gfm_simple ... ok
[INFO] [stdout] test markdown::tests::test_median_font_size_single ... ok
[INFO] [stdout] test layout::tests::test_split_lines_no_columns ... ok
[INFO] [stdout] test markdown::tests::test_render_with_emphasis ... ok
[INFO] [stdout] test markdown::tests::test_table_to_gfm_with_none_cells ... ok
[INFO] [stdout] test markdown::tests::test_block_dominant_size ... ok
[INFO] [stdout] test metadata::tests::default_metadata_is_empty ... ok
[INFO] [stdout] test markdown::tests::test_detect_bullet_asterisk ... ok
[INFO] [stdout] test metadata::tests::metadata_with_partial_fields ... ok
[INFO] [stdout] test markdown::tests::test_render_with_table ... ok
[INFO] [stdout] test markdown::tests::test_table_to_gfm_empty_rows ... ok
[INFO] [stdout] test markdown::tests::test_table_to_gfm_newline_in_cell ... ok
[INFO] [stdout] test painting::tests::test_apply_ext_gstate_dash_pattern ... ok
[INFO] [stdout] test painting::tests::test_apply_ext_gstate_fill_alpha ... ok
[INFO] [stdout] test painting::tests::test_apply_ext_gstate_multiple_fields ... ok
[INFO] [stdout] test painting::tests::test_apply_ext_gstate_line_width ... ok
[INFO] [stdout] test painting::tests::test_apply_ext_gstate_none_fields_preserve_state ... ok
[INFO] [stdout] test metadata::tests::metadata_clone_and_eq ... ok
[INFO] [stdout] test metadata::tests::metadata_with_all_fields ... ok
[INFO] [stdout] test painting::tests::test_apply_ext_gstate_sequential ... ok
[INFO] [stdout] test painting::tests::test_apply_ext_gstate_stroke_alpha ... ok
[INFO] [stdout] test markdown::tests::test_table_to_gfm_single_row ... ok
[INFO] [stdout] test markdown::tests::test_table_to_gfm_escapes_pipe ... ok
[INFO] [stdout] test painting::tests::test_close_and_stroke_includes_closepath ... ok
[INFO] [stdout] test painting::tests::test_cmyk_to_rgb ... ok
[INFO] [stdout] test painting::tests::test_color_black ... ok
[INFO] [stdout] test painting::tests::test_cmyk_white_to_rgb ... ok
[INFO] [stdout] test painting::tests::test_color_cmyk ... ok
[INFO] [stdout] test painting::tests::test_close_fill_and_stroke ... ok
[INFO] [stdout] test painting::tests::test_close_fill_even_odd_and_stroke ... ok
[INFO] [stdout] test painting::tests::test_cmyk_black_to_rgb ... ok
[INFO] [stdout] test painting::tests::test_color_clone ... ok
[INFO] [stdout] test painting::tests::test_color_rgb ... ok
[INFO] [stdout] test painting::tests::test_d_operator_propagates_to_painted_path ... ok
[INFO] [stdout] test painting::tests::test_d_operator_sets_dash ... ok
[INFO] [stdout] test painting::tests::test_dash_pattern_new ... ok
[INFO] [stdout] test painting::tests::test_color_other ... ok
[INFO] [stdout] test painting::tests::test_dash_pattern_default_is_solid ... ok
[INFO] [stdout] test painting::tests::test_dash_pattern_solid ... ok
[INFO] [stdout] test painting::tests::test_end_path_clears_builder ... ok
[INFO] [stdout] test painting::tests::test_end_path_returns_none ... ok
[INFO] [stdout] test painting::tests::test_ext_gstate_font_override ... ok
[INFO] [stdout] test painting::tests::test_fill_and_stroke_captures_custom_gs ... ok
[INFO] [stdout] test painting::tests::test_ext_gstate_default_is_all_none ... ok
[INFO] [stdout] test painting::tests::test_fill_even_odd_uses_even_odd_rule ... ok
[INFO] [stdout] test painting::tests::test_gray_to_rgb ... ok
[INFO] [stdout] test painting::tests::test_dash_pattern_complex ... ok
[INFO] [stdout] test painting::tests::test_color_default_is_black ... ok
[INFO] [stdout] test painting::tests::test_fill_and_stroke ... ok
[INFO] [stdout] test painting::tests::test_color_gray ... ok
[INFO] [stdout] test painting::tests::test_d_operator_with_phase ... ok
[INFO] [stdout] test painting::tests::test_gs_operator_dash_propagates_to_paint ... ok
[INFO] [stdout] test painting::tests::test_gray_white_to_rgb ... ok
[INFO] [stdout] test painting::tests::test_fill_captures_path ... ok
[INFO] [stdout] test painting::tests::test_fill_clears_builder ... ok
[INFO] [stdout] test painting::tests::test_fill_even_odd_and_stroke ... ok
[INFO] [stdout] test painting::tests::test_gs_operator_line_width_propagates_to_paint ... ok
[INFO] [stdout] test painting::tests::test_gs_operator_opacity_propagates_to_paint ... ok
[INFO] [stdout] test painting::tests::test_fill_path_with_curves ... ok
[INFO] [stdout] test painting::tests::test_fill_produces_fill_only ... ok
[INFO] [stdout] test painting::tests::test_fill_rule_default ... ok
[INFO] [stdout] test painting::tests::test_graphics_state_default ... ok
[INFO] [stdout] test painting::tests::test_multiple_paints_independent ... ok
[INFO] [stdout] test painting::tests::test_gray_black_to_rgb ... ok
[INFO] [stdout] test painting::tests::test_rgb_to_rgb_identity ... ok
[INFO] [stdout] test painting::tests::test_set_dash_pattern_back_to_solid ... ok
[INFO] [stdout] test painting::tests::test_stroke_captures_alpha ... ok
[INFO] [stdout] test painting::tests::test_stroke_captures_dash_pattern ... ok
[INFO] [stdout] test painting::tests::test_stroke_captures_graphics_state ... ok
[INFO] [stdout] test painting::tests::test_stroke_clears_builder ... ok
[INFO] [stdout] test painting::tests::test_stroke_captures_path_segments ... ok
[INFO] [stdout] test painting::tests::test_stroke_default_gs_has_solid_dash_and_full_alpha ... ok
[INFO] [stdout] test painting::tests::test_stroke_produces_stroke_only ... ok
[INFO] [stdout] test painting::tests::test_stroke_path_with_curves ... ok
[INFO] [stdout] test painting::tests::test_stroke_with_ctm_transformed_path ... ok
[INFO] [stdout] test path::tests::test_combined_path_triangle ... ok
[INFO] [stdout] test path::tests::test_ctm_close_path_returns_to_transformed_start ... ok
[INFO] [stdout] test path::tests::test_close_path ... ok
[INFO] [stdout] test path::tests::test_ctm_transformed_curveto ... ok
[INFO] [stdout] test path::tests::test_ctm_transformed_rectangle ... ok
[INFO] [stdout] test path::tests::test_ctm_accessor ... ok
[INFO] [stdout] test path::tests::test_curve_to_y ... ok
[INFO] [stdout] test painting::tests::test_other_to_rgb_returns_none ... ok
[INFO] [stdout] test path::tests::test_ctm_transformed_curve_to_y ... ok
[INFO] [stdout] test painting::tests::test_paint_then_build_new_path ... ok
[INFO] [stdout] test path::tests::test_combined_path_with_curves ... ok
[INFO] [stdout] test path::tests::test_ctm_scaling_lineto ... ok
[INFO] [stdout] test path::tests::test_ctm_transformed_curve_to_v ... ok
[INFO] [stdout] test path::tests::test_curve_to ... ok
[INFO] [stdout] test path::tests::test_multiple_subpaths ... ok
[INFO] [stdout] test path::tests::test_multiple_subpaths_close_returns_to_latest_start ... ok
[INFO] [stdout] test painting::tests::test_set_dash_pattern ... ok
[INFO] [stdout] test path::tests::test_curve_to_v ... ok
[INFO] [stdout] test repair::tests::repair_options_clone ... ok
[INFO] [stdout] test path::tests::test_curve_to_v_without_current_point_is_noop ... ok
[INFO] [stdout] test repair::tests::repair_options_custom ... ok
[INFO] [stdout] test path::tests::test_move_to ... ok
[INFO] [stdout] test path::tests::test_move_to_updates_subpath_start ... ok
[INFO] [stdout] test repair::tests::repair_options_default_all_enabled ... ok
[INFO] [stdout] test path::tests::test_new_builder_is_empty ... ok
[INFO] [stdout] test path::tests::test_rectangle ... ok
[INFO] [stdout] test repair::tests::repair_result_with_entries ... ok
[INFO] [stdout] test repair::tests::repair_options_display ... ok
[INFO] [stdout] test path::tests::test_rectangle_current_point_at_start ... ok
[INFO] [stdout] test path::tests::test_ctm_translation_moveto ... ok
[INFO] [stdout] test path::tests::test_set_ctm ... ok
[INFO] [stdout] test repair::tests::repair_result_default ... ok
[INFO] [stdout] test path::tests::test_line_to ... ok
[INFO] [stdout] test search::tests::empty_chars_returns_empty ... ok
[INFO] [stdout] test search::tests::empty_pattern_returns_empty ... ok
[INFO] [stdout] test search::tests::invalid_regex_returns_empty ... ok
[INFO] [stdout] test search::tests::multi_word_match_bbox ... ok
[INFO] [stdout] test repair::tests::repair_result_new_empty ... ok
[INFO] [stdout] test shapes::tests::test_classify_orientation_horizontal ... ok
[INFO] [stdout] test shapes::tests::test_classify_orientation_vertical ... ok
[INFO] [stdout] test shapes::tests::test_curve_bbox ... ok
[INFO] [stdout] test shapes::tests::test_curve_captures_graphics_state ... ok
[INFO] [stdout] test shapes::tests::test_curve_construction_and_field_access ... ok
[INFO] [stdout] test shapes::tests::test_curve_extraction_simple ... ok
[INFO] [stdout] test shapes::tests::test_curve_fill_only ... ok
[INFO] [stdout] test shapes::tests::test_curve_with_ctm_transform ... ok
[INFO] [stdout] test shapes::tests::test_empty_path_produces_nothing ... ok
[INFO] [stdout] test shapes::tests::test_diagonal_line_extraction ... ok
[INFO] [stdout] test shapes::tests::test_end_path_produces_nothing ... ok
[INFO] [stdout] test search::tests::case_sensitive_no_match ... ok
[INFO] [stdout] test search::tests::multiline_match_bbox ... ok
[INFO] [stdout] test search::tests::multiple_matches ... ok
[INFO] [stdout] test search::tests::no_matches_returns_empty ... ok
[INFO] [stdout] test search::tests::page_number_in_result ... ok
[INFO] [stdout] test search::tests::regex_search ... ok
[INFO] [stdout] test search::tests::search_options_defaults ... ok
[INFO] [stdout] test search::tests::simple_string_search ... ok
[INFO] [stdout] test shapes::tests::test_horizontal_line_extraction ... ok
[INFO] [stdout] test shapes::tests::test_line_construction_and_field_access ... ok
[INFO] [stdout] test shapes::tests::test_mixed_line_and_curve_subpath ... ok
[INFO] [stdout] test shapes::tests::test_line_with_custom_width_and_color ... ok
[INFO] [stdout] test shapes::tests::test_non_axis_aligned_quadrilateral_produces_lines ... ok
[INFO] [stdout] test shapes::tests::test_multiple_subpaths_lines ... ok
[INFO] [stdout] test shapes::tests::test_multiple_curves_in_subpath ... ok
[INFO] [stdout] test shapes::tests::test_path_with_curves_no_rect_detection ... ok
[INFO] [stdout] test shapes::tests::test_multiple_subpaths_rect_and_line ... ok
[INFO] [stdout] test shapes::tests::test_rect_from_four_line_closed_path ... ok
[INFO] [stdout] test shapes::tests::test_non_rect_closed_path_produces_lines ... ok
[INFO] [stdout] test shapes::tests::test_rect_width_and_height ... ok
[INFO] [stdout] test shapes::tests::test_rect_construction_and_field_access ... ok
[INFO] [stdout] test shapes::tests::test_rect_fill_and_stroke ... ok
[INFO] [stdout] test shapes::tests::test_rect_from_re_operator ... ok
[INFO] [stdout] test shapes::tests::test_single_moveto_produces_nothing ... ok
[INFO] [stdout] test search::tests::regex_case_insensitive ... ok
[INFO] [stdout] test search::tests::case_insensitive_search ... ok
[INFO] [stdout] test shapes::tests::test_fill_only_does_not_produce_lines ... ok
[INFO] [stdout] test shapes::tests::test_classify_orientation_diagonal ... ok
[INFO] [stdout] test shapes::tests::test_vertical_line_extraction ... ok
[INFO] [stdout] test shapes::tests::test_y_flip ... ok
[INFO] [stdout] test signature::tests::signature_info_clone_and_eq ... ok
[INFO] [stdout] test signature::tests::signature_info_partial_metadata ... ok
[INFO] [stdout] test signature::tests::signature_info_signed ... ok
[INFO] [stdout] test signature::tests::signature_info_unsigned ... ok
[INFO] [stdout] test struct_tree::tests::struct_element_basic_creation ... ok
[INFO] [stdout] test struct_tree::tests::struct_element_clone ... ok
[INFO] [stdout] test struct_tree::tests::struct_element_empty_mcids ... ok
[INFO] [stdout] test struct_tree::tests::struct_element_heading_types ... ok
[INFO] [stdout] test struct_tree::tests::struct_element_nested_tree ... ok
[INFO] [stdout] test struct_tree::tests::struct_element_no_page_index ... ok
[INFO] [stdout] test struct_tree::tests::struct_element_with_all_fields ... ok
[INFO] [stdout] test struct_tree::tests::struct_element_with_children ... ok
[INFO] [stdout] test svg::tests::test_debug_tablefinder_svg_no_tables ... ok
[INFO] [stdout] test svg::tests::test_debug_tablefinder_svg_selective_show ... ok
[INFO] [stdout] test svg::tests::test_draw_cells_adds_rect_elements_with_dashed_style ... ok
[INFO] [stdout] test svg::tests::test_draw_cells_correct_coordinates ... ok
[INFO] [stdout] test svg::tests::test_debug_tablefinder_svg_with_table ... ok
[INFO] [stdout] test svg::tests::test_draw_chars_adds_rect_elements ... ok
[INFO] [stdout] test svg::tests::test_draw_chars_correct_coordinates ... ok
[INFO] [stdout] test svg::tests::test_draw_intersections_correct_coordinates ... ok
[INFO] [stdout] test svg::tests::test_draw_intersections_empty_slice ... ok
[INFO] [stdout] test svg::tests::test_draw_lines_correct_coordinates ... ok
[INFO] [stdout] test svg::tests::test_draw_lines_adds_line_elements ... ok
[INFO] [stdout] test svg::tests::test_draw_chars_empty_slice ... ok
[INFO] [stdout] test svg::tests::test_draw_style_tables_default ... ok
[INFO] [stdout] test svg::tests::test_draw_rects_adds_rect_elements ... ok
[INFO] [stdout] test svg::tests::test_draw_style_cells_default ... ok
[INFO] [stdout] test svg::tests::test_draw_edges_adds_line_elements ... ok
[INFO] [stdout] test svg::tests::test_empty_draw_no_overlays ... ok
[INFO] [stdout] test svg::tests::test_draw_intersections_adds_circle_elements ... ok
[INFO] [stdout] test svg::tests::test_draw_style_to_svg_style_no_fill ... ok
[INFO] [stdout] test svg::tests::test_draw_style_intersections_default ... ok
[INFO] [stdout] test svg::tests::test_draw_tables_adds_cell_rects ... ok
[INFO] [stdout] test svg::tests::test_draw_style_chars_default ... ok
[INFO] [stdout] test svg::tests::test_draw_style_to_svg_style_full ... ok
[INFO] [stdout] test svg::tests::test_draw_style_lines_default ... ok
[INFO] [stdout] test svg::tests::test_draw_style_rects_default ... ok
[INFO] [stdout] test svg::tests::test_draw_style_default ... ok
[INFO] [stdout] test svg::tests::test_style_customization ... ok
[INFO] [stdout] test svg::tests::test_svg_debug_options_default ... ok
[INFO] [stdout] test svg::tests::test_svg_default_options ... ok
[INFO] [stdout] test svg::tests::test_svg_has_correct_dimensions_with_explicit_size ... ok
[INFO] [stdout] test svg::tests::test_svg_has_correct_viewbox ... ok
[INFO] [stdout] test svg::tests::test_svg_has_correct_dimensions_default ... ok
[INFO] [stdout] test svg::tests::test_svg_has_page_boundary_rect ... ok
[INFO] [stdout] test shapes::tests::test_rect_with_ctm_scale ... ok
[INFO] [stdout] test svg::tests::test_svg_small_page ... ok
[INFO] [stdout] test svg::tests::test_svg_coordinate_system_top_left_origin ... ok
[INFO] [stdout] test svg::tests::test_svg_debug_options_selective ... ok
[INFO] [stdout] test svg::tests::test_svg_generation_simple_page ... ok
[INFO] [stdout] test svg::tests::test_svg_has_correct_dimensions_with_scale ... ok
[INFO] [stdout] test svg::tests::test_svg_valid_markup ... ok
[INFO] [stdout] test table::tests::test_accuracy_all_cells_filled ... ok
[INFO] [stdout] test table::tests::test_accuracy_all_empty ... ok
[INFO] [stdout] test table::tests::test_accuracy_whitespace_only_treated_as_empty ... ok
[INFO] [stdout] test table::tests::test_accuracy_half_empty ... ok
[INFO] [stdout] test table::tests::test_accuracy_no_cells ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_empty ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_3x3_grid ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_single_cell ... ok
[INFO] [stdout] test table::tests::test_cell_without_text ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_single_row ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_single_column ... ok
[INFO] [stdout] test table::tests::test_cell_with_text ... ok
[INFO] [stdout] test svg::tests::test_svg_with_mixed_objects ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_two_separate_tables ... ok
[INFO] [stdout] test table::tests::test_explicit_2x2_grid ... ok
[INFO] [stdout] test table::tests::test_explicit_lines_empty ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_single_table_2x2 ... ok
[INFO] [stdout] test table::tests::test_explicit_lines_to_edges_both_empty ... ok
[INFO] [stdout] test table::tests::test_explicit_lines_to_edges_empty_horizontal ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_single_table_columns_ordered ... ok
[INFO] [stdout] test table::tests::test_explicit_lines_to_edges_empty_vertical ... ok
[INFO] [stdout] test table::tests::test_explicit_mixing_with_detected_edges ... ok
[INFO] [stdout] test table::tests::test_cells_to_tables_single_table_rows_ordered ... ok
[INFO] [stdout] test table::tests::test_explicit_lines_to_edges_basic ... ok
[INFO] [stdout] test table::tests::test_explicit_single_line_each ... ok
[INFO] [stdout] test table::tests::test_explicit_strategy_no_explicit_lines ... ok
[INFO] [stdout] test table::tests::test_explicit_unsorted_coordinates ... ok
[INFO] [stdout] test table::tests::test_explicit_edge_source_is_explicit ... ok
[INFO] [stdout] test table::tests::test_explicit_grid_detection ... ok
[INFO] [stdout] test table::tests::test_explicit_lines_construction ... ok
[INFO] [stdout] test table::tests::test_extract_text_center_inside_cell ... ok
[INFO] [stdout] test table::tests::test_extract_text_center_point_containment ... ok
[INFO] [stdout] test table::tests::test_extract_text_chars_outside_cell ... ok
[INFO] [stdout] test table::tests::test_extract_text_empty_cell ... ok
[INFO] [stdout] test table::tests::test_extract_text_mixed_empty_and_populated_cells ... ok
[INFO] [stdout] test table::tests::test_intersections_empty_edges ... ok
[INFO] [stdout] test table::tests::test_intersections_ignores_diagonal_edges ... ok
[INFO] [stdout] test table::tests::test_intersections_grid_2x2 ... ok
[INFO] [stdout] test table::tests::test_intersections_l_intersection_corner ... ok
[INFO] [stdout] test table::tests::test_intersections_multiple_h_one_v ... ok
[INFO] [stdout] test table::tests::test_intersections_no_duplicate_points ... ok
[INFO] [stdout] test table::tests::test_intersections_no_intersection_non_overlapping ... ok
[INFO] [stdout] test table::tests::test_extract_text_multiple_lines_in_cell ... ok
[INFO] [stdout] test table::tests::test_extract_text_multiple_words_in_cell ... ok
[INFO] [stdout] test table::tests::test_extract_text_no_cells ... ok
[INFO] [stdout] test table::tests::test_extract_text_single_word_in_cell ... ok
[INFO] [stdout] test table::tests::test_intersections_no_intersection_parallel ... ok
[INFO] [stdout] test table::tests::test_intersections_separate_x_y_tolerance ... ok
[INFO] [stdout] test table::tests::test_extract_text_two_cells ... ok
[INFO] [stdout] test table::tests::test_find_tables_debug_no_edges ... ok
[INFO] [stdout] test table::tests::test_find_tables_debug_returns_intermediate_results ... ok
[INFO] [stdout] test table::tests::test_intersections_simple_cross ... ok
[INFO] [stdout] test table::tests::test_intersections_t_intersection ... ok
[INFO] [stdout] test table::tests::test_find_tables_debug_struct_fields ... ok
[INFO] [stdout] test table::tests::test_intersections_beyond_tolerance_no_match ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_3x3_grid ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_collinear_points ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_empty ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_irregular_grid ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_missing_corner ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_4x3_grid ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_simple_2x2_grid ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_partial_grid_with_valid_cells ... ok
[INFO] [stdout] test table::tests::test_intersections_tolerance_y_based ... ok
[INFO] [stdout] test table::tests::test_join_adjacent_vertical_edges_within_tolerance ... ok
[INFO] [stdout] test table::tests::test_join_chain_of_three_horizontal_segments ... ok
[INFO] [stdout] test table::tests::test_join_diagonal_edges_pass_through ... ok
[INFO] [stdout] test table::tests::test_join_edge_group_empty ... ok
[INFO] [stdout] test table::tests::test_join_edge_group_single_edge_unchanged ... ok
[INFO] [stdout] test table::tests::test_join_separate_x_y_tolerance ... ok
[INFO] [stdout] test table::tests::test_join_groups_by_collinear_position ... ok
[INFO] [stdout] test table::tests::test_join_mixed_orientations ... ok
[INFO] [stdout] test table::tests::test_join_two_adjacent_horizontal_edges_within_tolerance ... ok
[INFO] [stdout] test table::tests::test_join_two_overlapping_horizontal_edges ... ok
[INFO] [stdout] test table::tests::test_join_two_overlapping_vertical_edges ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_single_point ... ok
[INFO] [stdout] test table::tests::test_intersections_to_cells_text_is_none ... ok
[INFO] [stdout] test table::tests::test_lattice_strict_excludes_rect_edges ... ok
[INFO] [stdout] test table::tests::test_lattice_simple_bordered_table ... ok
[INFO] [stdout] test table::tests::test_lattice_strict_with_line_edges ... ok
[INFO] [stdout] test table::tests::test_lattice_no_intersections ... ok
[INFO] [stdout] test table::tests::test_lattice_with_rect_edges ... ok
[INFO] [stdout] test table::tests::test_lattice_strict_mixed_line_and_rect_edges ... ok
[INFO] [stdout] test table::tests::test_join_distant_horizontal_edges_not_merged ... ok
[INFO] [stdout] test table::tests::test_min_accuracy_filtering ... ok
[INFO] [stdout] test table::tests::test_lattice_edge_min_length_filters_all ... ok
[INFO] [stdout] test table::tests::test_lattice_edge_min_length_filtering ... ok
[INFO] [stdout] test table::tests::test_intersections_tolerance_based ... ok
[INFO] [stdout] test table::tests::test_lattice_full_pipeline_snap_and_join ... ok
[INFO] [stdout] test table::tests::test_lattice_empty_edges ... ok
[INFO] [stdout] test table::tests::test_snap_edges_zero_tolerance ... ok
[INFO] [stdout] test table::tests::test_snap_nearby_horizontal_lines ... ok
[INFO] [stdout] test table::tests::test_snap_nearby_vertical_lines ... ok
[INFO] [stdout] test table::tests::test_snap_edges_mixed_orientations ... ok
[INFO] [stdout] test table::tests::test_snap_edges_far_apart_remain_unchanged ... ok
[INFO] [stdout] test table::tests::test_snap_edges_diagonal_passed_through ... ok
[INFO] [stdout] test table::tests::test_snap_edges_empty ... ok
[INFO] [stdout] test table::tests::test_snap_edges_multiple_clusters ... ok
[INFO] [stdout] test table::tests::test_snap_edges_preserves_along_axis_coords ... ok
[INFO] [stdout] test table::tests::test_snap_edges_does_not_merge ... ok
[INFO] [stdout] test table::tests::test_snap_edges_separate_x_tolerance ... ok
[INFO] [stdout] test table::tests::test_quality_combined ... ok
[INFO] [stdout] test table::tests::test_snap_edges_separate_x_y_tolerance ... ok
[INFO] [stdout] test table::tests::test_snap_edges_single_edge_unchanged ... ok
[INFO] [stdout] test table::tests::test_strategy_copy ... ok
[INFO] [stdout] test table::tests::test_strategy_default_is_lattice ... ok
[INFO] [stdout] test table::tests::test_strategy_variants_are_distinct ... ok
[INFO] [stdout] test table::tests::test_stream_edge_source_is_stream ... ok
[INFO] [stdout] test table::tests::test_stream_strategy_with_no_words ... ok
[INFO] [stdout] test table::tests::test_table_construction ... ok
[INFO] [stdout] test table::tests::test_table_finder_empty_edges ... ok
[INFO] [stdout] test table::tests::test_table_settings_custom_construction ... ok
[INFO] [stdout] test table::tests::test_table_settings_default_values ... ok
[INFO] [stdout] test table::tests::test_stream_strategy_full_pipeline ... ok
[INFO] [stdout] test table::tests::test_table_settings_with_explicit_lines ... ok
[INFO] [stdout] test table::tests::test_stream_strategy_min_words_horizontal_default ... ok
[INFO] [stdout] test table::tests::test_table_finder_custom_settings ... ok
[INFO] [stdout] test table::tests::test_whitespace_no_text_cells ... ok
[INFO] [stdout] test table::tests::test_table_multi_row ... ok
[INFO] [stdout] test table::tests::test_whitespace_skips_empty_cells ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_empty ... ok
[INFO] [stdout] test table::tests::test_whitespace_all_spaces ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_horizontal_bottom_alignment ... ok
[INFO] [stdout] test table::tests::test_whitespace_no_whitespace ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_no_grouping_beyond_tolerance ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_threshold_filtering_horizontal ... ok
[INFO] [stdout] test table::tests::test_table_settings_strategy_selection ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_threshold_filtering_vertical ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_horizontal_top_alignment ... ok
[INFO] [stdout] test table::tests::test_table_finder_construction ... ok
[INFO] [stdout] test text::tests::test_char_creation_basic ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_tolerance_grouping ... ok
[INFO] [stdout] test text::tests::test_char_rotated_text ... ok
[INFO] [stdout] test text::tests::test_char_with_colors ... ok
[INFO] [stdout] test text::tests::test_is_cjk_japanese_katakana ... ok
[INFO] [stdout] test text::tests::test_is_cjk_japanese_hiragana ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_vertical_x1_alignment ... ok
[INFO] [stdout] test text::tests::test_resolved_color_cmyk_to_rgb ... ok
[INFO] [stdout] test text::tests::test_is_cjk_text ... ok
[INFO] [stdout] test text::tests::test_resolved_color_gray_to_rgb ... ok
[INFO] [stdout] test text::tests::test_is_cjk_latin ... ok
[INFO] [stdout] test text::tests::test_text_direction_default ... ok
[INFO] [stdout] test text::tests::test_is_cjk_korean ... ok
[INFO] [stdout] test table::tests::test_words_to_edges_stream_vertical_x0_alignment ... ok
[INFO] [stdout] test text::tests::test_resolved_color_none ... ok
[INFO] [stdout] test text::tests::test_resolved_color_rgb_identity ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_nfkc_fullwidth_to_ascii ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_nfkc_decomposes_compatibility_and_composes ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_chars_nfc_composes ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_nfkd_decomposes_compatibility ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_chars_none_preserves_original ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_none_returns_unchanged ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_chars_preserves_other_fields ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_nfc_composes_characters ... ok
[INFO] [stdout] test text::tests::test_is_cjk_chinese ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_chars_empty_input ... ok
[INFO] [stdout] test unicode_norm::tests::unicode_norm_default_is_none ... ok
[INFO] [stdout] test validation::tests::severity_clone_and_eq ... ok
[INFO] [stdout] test validation::tests::severity_display ... ok
[INFO] [stdout] test validation::tests::validation_issue_clone_and_eq ... ok
[INFO] [stdout] test validation::tests::validation_issue_display_with_location ... ok
[INFO] [stdout] test validation::tests::validation_issue_new ... ok
[INFO] [stdout] test unicode_norm::tests::normalize_nfd_decomposes_characters ... ok
[INFO] [stdout] test validation::tests::validation_issue_display_without_location ... ok
[INFO] [stdout] test validation::tests::validation_issue_with_location ... ok
[INFO] [stdout] test words::tests::test_chinese_text_grouping ... ok
[INFO] [stdout] test words::tests::test_chinese_text_large_gap_splits ... ok
[INFO] [stdout] test words::tests::test_chinese_text_with_larger_gap_uses_char_width_tolerance ... ok
[INFO] [stdout] test words::tests::test_configurable_y_tolerance ... ok
[INFO] [stdout] test words::tests::test_configurable_x_tolerance ... ok
[INFO] [stdout] test words::tests::test_default_options ... ok
[INFO] [stdout] test words::tests::test_empty_chars ... ok
[INFO] [stdout] test words::tests::test_keep_blank_chars_true ... ok
[INFO] [stdout] test words::tests::test_korean_text_grouping ... ok
[INFO] [stdout] test words::tests::test_leading_spaces_ignored ... ok
[INFO] [stdout] test words::tests::test_multi_line_text ... ok
[INFO] [stdout] test words::tests::test_mixed_cjk_latin_with_gap ... ok
[INFO] [stdout] test words::tests::test_overlapping_chars_grouped ... ok
[INFO] [stdout] test words::tests::test_multiple_spaces_between_words ... ok
[INFO] [stdout] test words::tests::test_multiline_sorting ... ok
[INFO] [stdout] test words::tests::test_simple_horizontal_text ... ok
[INFO] [stdout] test words::tests::test_text_with_large_gap ... ok
[INFO] [stdout] test words::tests::test_text_with_small_gap_within_tolerance ... ok
[INFO] [stdout] test words::tests::test_three_words_on_one_line ... ok
[INFO] [stdout] test table::tests::test_whitespace_mixed ... ok
[INFO] [stdout] test words::tests::test_use_text_flow_preserves_order ... ok
[INFO] [stdout] test words::tests::test_cjk_transition_to_latin_uses_cjk_tolerance ... ok
[INFO] [stdout] test text::tests::test_resolved_color_other_returns_none ... ok
[INFO] [stdout] test words::tests::test_cjk_with_space_splits ... ok
[INFO] [stdout] test words::tests::test_vertical_text_two_columns ... ok
[INFO] [stdout] test words::tests::test_unsorted_chars_are_sorted_spatially ... ok
[INFO] [stdout] test words::tests::test_vertical_text_with_gap ... ok
[INFO] [stdout] test words::tests::test_japanese_mixed_text ... ok
[INFO] [stdout] test words::tests::test_word_doctop_uses_min_char_doctop ... ok
[INFO] [stdout] test words::tests::test_single_char ... ok
[INFO] [stdout] test words::tests::test_trailing_spaces_ignored ... ok
[INFO] [stdout] test words::tests::test_word_bbox_is_union_of_char_bboxes ... ok
[INFO] [stdout] test words::tests::test_split_on_space_char ... ok
[INFO] [stderr]      Running tests/serde_roundtrip.rs (/opt/rustwide/target/debug/deps/serde_roundtrip-6c8f13679d99c26b)
[INFO] [stdout] test words::tests::test_vertical_text_chinese ... ok
[INFO] [stdout] test words::tests::test_word_has_doctop_and_direction ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 651 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests pdfplumber_core
[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 2 tests
[INFO] [stdout] test src/page_object.rs - page_object::PageObject (line 16) ... ignored
[INFO] [stdout] test src/struct_tree.rs - struct_tree::StructElement (line 25) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.74s; merged doctests compilation took 0.72s
[INFO] running `Command { std: "docker" "inspect" "8c2ab7cddbb0e1fce0cc9a4560497d72320712c7b6ab935dda5abda69c147be0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8c2ab7cddbb0e1fce0cc9a4560497d72320712c7b6ab935dda5abda69c147be0", kill_on_drop: false }`
[INFO] [stdout] 8c2ab7cddbb0e1fce0cc9a4560497d72320712c7b6ab935dda5abda69c147be0
