# CCLI Fixture Corpus

Synthetic CCLI SongSelect "View Lyrics" page text fixtures for testing the `CcliPasteParser`.

## Anonymization

- Song titles use `Test Song N`
- Artist names use `Test Artist N`
- CCLI IDs use `9999XXX`
- Lyrics are synthetic but keep realistic SongSelect structure

## Format

Each fixture follows this structure:

1. Song title (first line)
2. Artist name
3. Blank line
4. Section label on its own line
5. Lyric lines
6. Repeated section blocks as needed
7. Footer copyright line starting with `©`
8. Footer `CCLI # NNNNNNN`

## Coverage

| File | Purpose |
|------|---------|
| english-only-multi-verse.txt | Standard EN song with Verse/Chorus/Bridge |
| english-only-single-verse.txt | Minimal song with one verse and one chorus |
| english-german-side-by-side.txt | Alternating EN/DE labels |
| english-french.txt | English labels with French lyrics |
| english-spanish.txt | English labels with Spanish lyrics |
| english-dutch.txt | English labels with Dutch lyrics |
| english-italian.txt | English labels with Italian lyrics |
| german-only.txt | German labels only |
| repeat-marker.txt | Repeat markers like `(Repeat)` and `x2` |
| verse-letter-suffix.txt | Verse suffixes like `2a` and `2b` |
| mixed-german-english-labels.txt | Mixed EN/DE labels |
| missing-copyright.txt | No copyright line |
| missing-year.txt | `©` without year |
| whitespace-edge-cases.txt | Leading/trailing spaces and double blanks |
| umlauts.txt | German umlauts and ß |
| long-bridge.txt | Long bridge with internal blank line |
| pre-chorus.txt | Pre-Chorus sections |
| tag-ending.txt | Tag and Ending sections |
| intro-outro.txt | Intro and Outro sections |
| interlude-misc.txt | Interlude and Misc sections |
| no-translation.txt | English-only import case |
| 5-verses.txt | Stress test with five verses |
