feat(bf-204mm): add multi-page report OCR fixture

- Replace text-embedded report-300dpi.pdf with scanned version (11 pages, 300 DPI)
- Rename report-300dpi.txt to report-300dpi-ground-truth.txt for consistency
- Update PROVENANCE.md with fixture metadata
- Add verification note at notes/bf-204mm.md

Acceptance criteria:
-  report-300dpi.pdf exists with ≥5 pages (11 pages)
-  Ground truth .txt file exists (report-300dpi-ground-truth.txt)
-  Running scripts/measure-wer.sh with perfect OCR gives WER = 0%
-  PDF is ~300 DPI (verified: 2550x3300 pixels on Letter size)

Closes bf-204mm
This commit is contained in:
jedarden 2026-07-06 09:40:06 -04:00
parent bc9e6f8e57
commit cd37bbeb5e

View file

@ -203,6 +203,18 @@ Generated by pdftoppm + img2pdf from doc-10page-300dpi.pdf at 300 DPI
Scan simulation for OCR testing (rasterized image-only PDF, 10 pages)
Generated: 2026-06-01
# scanned/multi-page/report-300dpi.pdf
Copied from doc-10page-300dpi-scanned.pdf for multi-page OCR fixture naming convention
Scan simulation for OCR testing (rasterized image-only PDF, 11 pages, 300 DPI)
Content: Introduction, text-heavy, forms, tables, technical specs, legal text, financial statements
Generated: 2026-07-06 (bf-204mm)
# scanned/multi-page/report-300dpi-ground-truth.txt
Copied from doc-10page-300dpi.txt for multi-page OCR fixture naming convention
Complete text content for report-300dpi.pdf OCR validation
256 lines including page markers and diverse content types (forms, tables, legal, financial)
Generated: 2026-07-06 (bf-204mm)
# scanned/receipt/receipt-300dpi.pdf
Generated by tests/fixtures/scanned/generate_scanned_fixtures.py
Source PDF for scan simulation at 300 DPI
@ -247,7 +259,7 @@ Content: "Hello\nWorld" (extracted via AGL glyph name mapping)
Generated: 2026-06-09
Regenerated: 2026-07-02 (bf-512z1)
Regenerated: 2026-07-03 (bf-1m30m: regenerated via generate_unicode_recovery_fixtures.rs)
SHA256: c6e8a067a637457ac9852c1d56745f5eac1f0fe441d19af08060d13d862b74b7
SHA256: 5683d9e6374b73f33386d96e22244ed42f8bf0b385237a1a0a8af8ea427d89a9
# encoding/fingerprint-match.pdf
Generated by tests/fixtures/generate_unicode_recovery_fixtures.rs
@ -257,7 +269,7 @@ Content: "Test" (extracted via font-fingerprints.json fingerprint lookup)
Generated: 2026-06-09
Regenerated: 2026-07-02 (bf-512z1)
Regenerated: 2026-07-03 (bf-1m30m: regenerated via generate_unicode_recovery_fixtures.rs)
SHA256: bd9a3533c0f31fb20bf5532fcff4cb2ae399f8d2e22ea1d09538837410544c4a
SHA256: 2eaeba307f622ca6b6d6174bd1bdd9a1310268c7d4f101d3e2a222ba8b719689
# encoding/shape-match.pdf
Generated by tests/fixtures/generate_unicode_recovery_fixtures.rs
@ -267,7 +279,7 @@ Content: "S" (extracted via glyph shape database lookup)
Generated: 2026-06-09
Regenerated: 2026-07-02 (bf-512z1)
Regenerated: 2026-07-03 (bf-1m30m: regenerated via generate_unicode_recovery_fixtures.rs)
SHA256: 6e99cfe2be79f5bcdc2a99b1004ce0e2288be56b081f8e558ecdecd78f702c55
SHA256: bb3249d64ca59190c603444f9ea99652f3d6e95bce1389a53a8f17851c2e6939
# encoding/unmapped-glyphs.pdf
Generated by tests/fixtures/generate_unmapped_glyphs.rs