Skip to content

test(lane-4): 1391-line integration test suite — all 65 fixture PDFs, bbox validity, rotation, tables#254

Open
jacob-cotten wants to merge 2 commits intodeveloper0hye:mainfrom
jacob-cotten:feat/test-expansion-clean
Open

test(lane-4): 1391-line integration test suite — all 65 fixture PDFs, bbox validity, rotation, tables#254
jacob-cotten wants to merge 2 commits intodeveloper0hye:mainfrom
jacob-cotten:feat/test-expansion-clean

Conversation

@jacob-cotten
Copy link

Summary

Lane 4: comprehensive integration test suite against all 65 PDF fixtures.

crates/pdfplumber/tests/all_fixtures_integration.rs (1391 lines):

  • No-panic guarantee for every fixture PDF across all pages
  • BBox validity: all char/word bboxes have x0 < x1, top < bottom
  • Rotation correctness: rotation ∈ {0, 90, 180, 270}, dimensions swap for 90°/270°
  • Table detection coverage: within ±1 of golden table count
  • Word containment: every word.bbox is contained within page.bbox
  • Doctop ordering: chars have non-decreasing doctop across pages (cumulative position)
  • Per-fixture cross-validation thresholds: fixtures categorized by expected fidelity level

All tests use descriptive names, zero debug output, zero println! in assertions.

🤖 Generated with Claude Code

jacob-cotten and others added 2 commits March 6, 2026 06:58
Covers: no-panic guarantees, page count/dimension invariants, char/word
extraction counts, rotation metadata, table detection, bbox validity,
word containment, doctop ordering, and cross-fixture invariant suites.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: jacob_cotten <jacobcotten@gmail.com>
- Precedence parens in pdfplumber-parse (3 sites)
- Lifetime elision in PagesIter
- Branch-specific clippy fixes as needed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: jacob_cotten <jacobcotten@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant