Commit graph

2 commits

Author SHA1 Message Date
jedarden
c49806423e fix(pdftract-4fa9): Remove duplicate classify_page function definition in classify.rs
The classify_page function was defined twice (at line 564 and line 744) in
crates/pdftract-core/src/classify.rs, causing compilation errors during test
builds. Removed the duplicate definition.

This fix enables the object parser test suite to compile and run successfully,
verifying all acceptance criteria for pdftract-4fa9:
- 10 fixture files with golden outputs
- 5 proptest properties passing
- circular_self test with 64KB stack passing
- proptest-regressions directories in place

Verification: notes/pdftract-4fa9.md

Closes pdftract-4fa9
2026-06-02 18:41:48 -04:00
jedarden
a22d26f0ab test(pdftract-4fa9): object parser fixture corpus + proptest harness + critical-test suite
Add comprehensive test infrastructure for PDF object parser:

- Curated fixtures under crates/pdftract-core/tests/object_parser/fixtures/:
  * nested_dict.pdf.in - deeply nested dictionary structure
  * mixed_array.pdf.in - array with mixed PDF object types
  * indirect_simple.pdf.in - minimal indirect object
  * indirect_stream.pdf.in - indirect object with stream
  * objstm_basic.pdf.in + objstm_extends.pdf.in - ObjStm fixtures
  * circular_self.pdf.in + circular_three.pdf.in - circular reference detection
  * truncated_dict.pdf.in - malformed dictionary (missing >>)
  * deep_nesting.pdf.in - 300 levels of nested dicts (tests depth limit)

- Proptest properties in object_parser_proptest.rs:
  * prop_parser_never_panics - INV-8: parser is total over input domain
  * prop_resolve_terminates - bounded resolution, no infinite loops
  * prop_dict_order_preserved - INV-3: deterministic dict iteration order
  * prop_cache_consistency - cache hit = cache miss for same input
  * prop_inv8_no_panic - any input → Some/None, never panic

- Golden output tests with BLESS=1 support for updating expected files

Closes pdftract-4fa9. Verification: notes/pdftract-4fa9.md.
2026-06-01 17:30:29 -04:00