# Test Fixture Catalog
Documents the intent, shape, and coverage of each `.jsonl` fixture file.
## Fixture Summary
| `empty.jsonl` | 0 | Empty input handling |
| `single_issue.jsonl` | 1 | Minimal single-issue baseline |
| `minimal.jsonl` | 2 | Basic dependency pair |
| `all_closed.jsonl` | 3 | All-closed state (diff baseline) |
| `synthetic_complex.jsonl` | 5 | Multi-type graph with mixed statuses |
| `boundary_conditions.jsonl` | 10 | Edge cases: zero priority, missing fields |
| `adversarial_parity.jsonl` | 10 | Cycles, reopened issues, label normalization |
| `adversarial_stress.jsonl` | 16 | Combined adversarial patterns |
| `sprints_synthetic.jsonl` | 1 | Sprint metadata for burndown |
| `large_graph_40.jsonl` | 40 | Linear chain for graph traversal |
| `stress_complex_89.jsonl` | 89 | Diamond merges, hub-spoke, cycles, mixed |
| `stress_large_500.jsonl` | 500 | Large-scale diverse topology |
| `pathological_deps.jsonl` | 233 | Extreme dependency patterns |
| `malformed_metadata.jsonl` | 24 | Edge-case metadata values |
## Detailed Fixture Descriptions
### `stress_large_500.jsonl` (500 issues)
Generated by `gen_stress_fixtures.py`. Exercises the analyzer at scale with diverse topology:
- **0-49**: Linear chain (each depends on previous). Tests deep serial dependency resolution.
- **50-99**: Hub-spoke clusters (5 hubs with 9 spokes each). Tests centrality scoring and fan-out.
- **100-149**: Diamond merges (10 diamond patterns). Tests merge-point detection and dual-parent deps.
- **150-249**: Cross-team dependencies (random cross-links). Tests sparse cross-cluster edges.
- **250-349**: Isolated islands (no dependencies). Tests standalone issue handling at scale.
- **350-399**: Deep fan-out trees (5 roots, each fans to 9 children). Tests tree traversal.
- **400-449**: Mixed cycles (5 cycles of 10 nodes each). Tests cycle detection at scale.
- **450-499**: Sprint-grouped work (5 sprints of 10 issues). Tests sprint-scoped analysis.
### `pathological_deps.jsonl` (233 issues)
Generated by `gen_stress_fixtures.py`. Exercises extreme dependency patterns:
- **Deep chain (100 nodes)**: Tests graph algorithms on a linear chain of depth 100.
- **Convergence bottleneck**: 50 issues feed into a single sink (PD-150). Tests bottleneck detection.
- **Divergence hub**: 1 source (PD-151) fans out to 50 dependents. Tests hub centrality.
- **Overlapping 3-cycles**: Three cycles sharing nodes (PD-202..208). Tests overlapping cycle detection.
- **Self-dependency**: PD-210 depends on itself. Tests self-loop handling.
- **Bidirectional dependency**: PD-211 <-> PD-212. Tests mutual dependency (2-cycle).
- **Long cycle (20 nodes)**: PD-220..239 form a 20-node cycle. Tests large cycle detection.
- **Dangling dependency**: PD-250 depends on non-existent GHOST-999. Tests phantom dep handling.
### `malformed_metadata.jsonl` (24 issues)
Generated by `gen_stress_fixtures.py`. Exercises edge-case metadata:
- Empty string fields (title, status, description)
- Negative priority (-5)
- Very long title (500 chars)
- Unicode in all text fields (Japanese, Chinese, Korean, emoji)
- Zero and extremely large estimated_minutes
- Future dates (2030+)
- Time paradox (closed_at before created_at)
- Duplicate labels (case-insensitive duplicates)
- Many labels (30 labels on one issue)
- Multiple dependency types on one issue
- Empty dependency type
- Minimal issue (only ID field)
- Comments with empty/unicode content
- Very long description (10K chars)
- All 9 known statuses covered
## Generator
All stress fixtures are generated by `gen_stress_fixtures.py`. To regenerate:
```bash
python3 tests/testdata/gen_stress_fixtures.py
```