pdftract/notes/bf-6uh9a.md

87 lines
3.8 KiB
Markdown

# bf-6uh9a: Clean tests/fixtures and relocate useful generators
## Summary
Verified that tests/fixtures/ cleanup and generator relocation has already been completed by previous beads (bf-1iefu, bf-xqib3, bf-2yhak, bf-620xp). Removed one untracked temporary file.
## Verification Results
### ✅ Generator drafts already removed
- **No "gen_encoding_fixtures v2-v9" drafts found** in tests/fixtures/
- The only `gen_encoding_fixtures` implementation is in `xtask/src/bin/gen_encoding_fixtures.rs` (correct location for an xtask binary)
- All generator cleanup was completed by bf-xqib3 on 2026-07-05
### ✅ Compiled binaries already removed
- **No compiled binaries** found in tests/fixtures/ (searched for .so, .dylib, .dll, .exe files)
- The .bin files present (lzw_*.bin, random_bytes.bin, compression-bomb.bin) are legitimate fixture data files:
- lzw_*.bin: LZW compression stream test data for decompressor testing
- random_bytes.bin: Malformed PDF fixture data
- compression-bomb.bin: Malformed PDF fixture data for security testing
### ✅ Generators already relocated and documented
- **2 general-purpose tools** relocated to tools/ by bf-2yhak:
- `convert_pdf_to_scanned.sh` - Converts text-embedded PDFs to scanned image-based PDFs
- Documentation added in tools/README.md
### ✅ Co-located generators are actively maintained
The **10 remaining generator scripts** in tests/fixtures/ subdirectories are correctly placed (KEEP category from bf-1iefu):
- `tests/fixtures/encoding/generate_unmapped_glyphs.py` - Unmapped glyph fixtures
- `tests/fixtures/encoding/create_unmapped_comprehensive.py` - Comprehensive encoding tests
- `tests/fixtures/forms/generate_form_fixtures.rs` - Form fixture generator
- `tests/fixtures/malformed/gen_bomb.py` - Malformed PDF bomb generator
- `tests/fixtures/scanned/generate_scanned_fixtures.py` - Scanned OCR fixtures
- `tests/fixtures/scanned/run_gen.sh` - Scanned fixture generation script
- `tests/fixtures/scanned/calculate_wer.py` - Word Error Rate calculation
- `tests/fixtures/scanned/wer_gate_stub.rs` - WER gate stub
- `tests/fixtures/security/generate_embedded_js.py` - Embedded JS fixtures
- `tests/fixtures/security/generate_sensitive_fixture.rs` - Sensitive data fixtures
- `tests/fixtures/vector/generate_vector_cer_corpus.py` - Vector CER test corpus
These are co-located with their fixtures for maintainability and are actively used.
## Cleanup Action Taken
### Removed untracked temporary file
Removed `tests/fixtures/scanned/low-quality/degraded-page-1.png` (temporary intermediate file from PDF-to-image conversion process).
## Acceptance Criteria
### ✅ tests/fixtures/ contains only fixture data, not generator binaries or drafts
- No generator binaries found
- No versioned drafts found
- Only legitimate fixture data files present
### ✅ Useful generators are relocated with documentation
- Relocation completed by bf-2yhak
- Comprehensive documentation in tools/README.md
- Co-located generators documented in tests/fixtures/STRUCTURE.md
### ✅ git rm executed for all removed files
- Cleanup completed by previous beads
- One untracked file removed in this bead
### ✅ Single commit
Commit: `chore(bf-6uh9a): clean tests/fixtures and relocate useful generators`
## References
- tools/README.md - Comprehensive generator catalog
- tests/fixtures/STRUCTURE.md - Fixtures directory organization
- tests/fixtures/PROVENANCE.md - Fixture generation history
- notes/bf-1iefu.md - Generator categorization rationale
- notes/bf-xqib3.md - Obsolete generator removal
- notes/bf-2yhak.md - Generator relocation
- notes/bf-620xp.md - Cleanup verification
## Conclusion
The cleanup and relocation work requested by this bead was completed by three previous beads (bf-1iefu, bf-xqib3, bf-2yhak) and verified by bf-620xp. The tests/fixtures/ directory is clean and well-organized. No further cleanup or relocation is needed.