Commit graph

2 commits

Author SHA1 Message Date
jedarden
a749591aef feat(bf-3gmb7): create baselines directory and JSON schema for grep-corpus benchmark
- Add schema.json with complete baseline metrics definition
  - Required fields: commit_sha, timestamp, pdftract_geomean, grep_1000_mean_ms
  - Optional fields: throughput_mb_per_sec, files_per_sec, total_runtime_sec
  - All fields include types, units, descriptions, and examples
  - Follows JSON Schema draft-07 specification

- Add README.md with comprehensive documentation
  - Purpose and use cases for baseline metrics
  - Complete field reference with types and units
  - Schema validation instructions
  - CI/CD integration guidelines
  - Performance targets from project plan
  - Update procedures and regression detection

- Validate existing main.json against schema structure
  - All required fields present and correctly formatted

Acceptance criteria:
✓ benches/baselines/ directory exists
✓ JSON schema documented with all required fields
✓ README explains baseline format and purpose
✓ Schema includes types and units for each metric
2026-07-06 11:13:12 -04:00
jedarden
857f928732 feat(pdftract-5omc): implement SDK conformance test runner pattern
Implement the conformance test runner pattern that every SDK will
implement to validate against the shared test suite.

- Rust reference implementation (crates/pdftract-core/tests/conformance.rs)
  * Full test suite loader and executor
  * Comparison engine with min/max, string constraints, tolerances
  * Skip logic for unsupported features and schema versions
  * Report generation in JSON format

- CLI compare subcommand (crates/pdftract-cli/src/main.rs)
  * pdftract compare - Compare actual vs expected with tolerances
  * Cross-language comparison tool to avoid reimplementations

- Documentation (docs/conformance/sdk-contract.md)
  * Complete pattern specification with pseudocode
  * Per-language runner locations
  * CI integration requirements

- Python reference stub (tests/python-conformance/test_conformance.py)
  * Full pytest-based implementation following the pattern

Closes: pdftract-5omc
2026-05-18 01:22:23 -04:00