Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Staff position and ledger lines for a clef: alto clef anchored at its middle line · case 01
Middle C in alto clef is placed on the bottom line instead of the middle line.
Staff position and ledger lines for a clef: alto clef anchored at its middle line · case 02
Middle C in alto clef is placed on the bottom line instead of the middle line.
Staff position and ledger lines for a clef: alto clef anchored at its middle line · case 03
Middle C in alto clef is placed on the bottom line instead of the middle line.
Staff position and ledger lines for a clef: alto clef anchored at its middle line · case 04
Middle C in alto clef is placed on the bottom line instead of the middle line.
Staff position and ledger lines for a clef: alto clef anchored at its middle line · case 05
Middle C in alto clef is placed on the bottom line instead of the middle line.
Movable-do chromatic solfege syllables: degree measured downward from the tonic · case 01
In C, the note D is sung te or li instead of re because the distance is measured from pitch to tonic.
Movable-do chromatic solfege syllables: degree measured downward from the tonic · case 02
In C, the note D is sung te or li instead of re because the distance is measured from pitch to tonic.
Movable-do chromatic solfege syllables: degree measured downward from the tonic · case 03
In C, the note D is sung te or li instead of re because the distance is measured from pitch to tonic.
Movable-do chromatic solfege syllables: degree measured downward from the tonic · case 04
In C, the note D is sung te or li instead of re because the distance is measured from pitch to tonic.
Movable-do chromatic solfege syllables: degree measured downward from the tonic · case 05
In C, the note D is sung te or li instead of re because the distance is measured from pitch to tonic.
Movable-do chromatic solfege syllables: sharp and flat syllable sets swapped · case 01
Raised degrees are sung with flat syllables (ra, me) when sharp spelling is requested and vice versa.
Movable-do chromatic solfege syllables: sharp and flat syllable sets swapped · case 02
Raised degrees are sung with flat syllables (ra, me) when sharp spelling is requested and vice versa.
Movable-do chromatic solfege syllables: sharp and flat syllable sets swapped · case 03
Raised degrees are sung with flat syllables (ra, me) when sharp spelling is requested and vice versa.
Movable-do chromatic solfege syllables: sharp and flat syllable sets swapped · case 04
Raised degrees are sung with flat syllables (ra, me) when sharp spelling is requested and vice versa.
Movable-do chromatic solfege syllables: sharp and flat syllable sets swapped · case 05
Raised degrees are sung with flat syllables (ra, me) when sharp spelling is requested and vice versa.
Movable-do chromatic solfege syllables: unknown spelling defaults to flats · case 01
An unknown spelling such as "weird" yields flat syllables instead of None.
Movable-do chromatic solfege syllables: unknown spelling defaults to flats · case 02
An unknown spelling such as "weird" yields flat syllables instead of None.
Movable-do chromatic solfege syllables: unknown spelling defaults to flats · case 03
An unknown spelling such as "weird" yields flat syllables instead of None.
Movable-do chromatic solfege syllables: unknown spelling defaults to flats · case 04
An unknown spelling such as "weird" yields flat syllables instead of None.
Movable-do chromatic solfege syllables: unknown spelling defaults to flats · case 05
An unknown spelling such as "weird" yields flat syllables instead of None.
Triad and seventh inversion figures: first listed note taken as the bass · case 01
An unordered voicing such as [72,64,67] is reported in root position instead of first inversion.
Triad and seventh inversion figures: first listed note taken as the bass · case 02
An unordered voicing such as [72,64,67] is reported in root position instead of first inversion.
Triad and seventh inversion figures: first listed note taken as the bass · case 03
An unordered voicing such as [72,64,67] is reported in root position instead of first inversion.
Triad and seventh inversion figures: first listed note taken as the bass · case 04
An unordered voicing such as [72,64,67] is reported in root position instead of first inversion.
Triad and seventh inversion figures: first listed note taken as the bass · case 05
An unordered voicing such as [72,64,67] is reported in root position instead of first inversion.
Triad and seventh inversion figures: doubled triad labelled as a seventh chord · case 01
A four-note triad with a doubled root (C E G C) is labelled with seventh figures ("7") instead of root position.
Triad and seventh inversion figures: doubled triad labelled as a seventh chord · case 02
A four-note triad with a doubled root (C E G C) is labelled with seventh figures ("7") instead of root position.
Triad and seventh inversion figures: doubled triad labelled as a seventh chord · case 03
A four-note triad with a doubled root (C E G C) is labelled with seventh figures ("7") instead of root position.
Triad and seventh inversion figures: doubled triad labelled as a seventh chord · case 04
A four-note triad with a doubled root (C E G C) is labelled with seventh figures ("7") instead of root position.
Triad and seventh inversion figures: doubled triad labelled as a seventh chord · case 05
A four-note triad with a doubled root (C E G C) is labelled with seventh figures ("7") instead of root position.
Triad and seventh inversion figures: inversion figures swapped · case 01
First-inversion triads are labelled 64 and second-inversion triads 6.
Triad and seventh inversion figures: inversion figures swapped · case 02
First-inversion triads are labelled 64 and second-inversion triads 6.
Triad and seventh inversion figures: inversion figures swapped · case 03
First-inversion triads are labelled 64 and second-inversion triads 6.
Triad and seventh inversion figures: inversion figures swapped · case 04
First-inversion triads are labelled 64 and second-inversion triads 6.
Triad and seventh inversion figures: inversion figures swapped · case 05
First-inversion triads are labelled 64 and second-inversion triads 6.
Triad and seventh inversion figures: fully diminished seventh unrecognised · case 01
Diminished seventh chords such as B D F Ab return None instead of a root and figure.
Triad and seventh inversion figures: fully diminished seventh unrecognised · case 02
Diminished seventh chords such as B D F Ab return None instead of a root and figure.
Triad and seventh inversion figures: fully diminished seventh unrecognised · case 03
Diminished seventh chords such as B D F Ab return None instead of a root and figure.
Triad and seventh inversion figures: fully diminished seventh unrecognised · case 04
Diminished seventh chords such as B D F Ab return None instead of a root and figure.
Triad and seventh inversion figures: fully diminished seventh unrecognised · case 05
Diminished seventh chords such as B D F Ab return None instead of a root and figure.
Variable-length quantity delta encoder: leading bytes emitted without continuation flag · case 01
Delta 128 is written as [1, 0], which a reader decodes as two separate deltas 1 and 0.
Variable-length quantity delta encoder: leading bytes emitted without continuation flag · case 02
Delta 128 is written as [1, 0], which a reader decodes as two separate deltas 1 and 0.
Variable-length quantity delta encoder: leading bytes emitted without continuation flag · case 03
Delta 128 is written as [1, 0], which a reader decodes as two separate deltas 1 and 0.
Variable-length quantity delta encoder: leading bytes emitted without continuation flag · case 04
Delta 128 is written as [1, 0], which a reader decodes as two separate deltas 1 and 0.
Variable-length quantity delta encoder: leading bytes emitted without continuation flag · case 05
Delta 128 is written as [1, 0], which a reader decodes as two separate deltas 1 and 0.
Variable-length quantity delta encoder: groups emitted least significant first · case 01
Delta 128 is written as [0, 129]; the terminating byte comes first and the stream desynchronises.
Variable-length quantity delta encoder: groups emitted least significant first · case 02
Delta 128 is written as [0, 129]; the terminating byte comes first and the stream desynchronises.
Variable-length quantity delta encoder: groups emitted least significant first · case 03
Delta 128 is written as [0, 129]; the terminating byte comes first and the stream desynchronises.
Variable-length quantity delta encoder: groups emitted least significant first · case 04
Delta 128 is written as [0, 129]; the terminating byte comes first and the stream desynchronises.
Variable-length quantity delta encoder: groups emitted least significant first · case 05
Delta 128 is written as [0, 129]; the terminating byte comes first and the stream desynchronises.
Variable-length quantity delta encoder: five-byte deltas produced · case 01
Delta 0x10000000 is encoded as five bytes instead of being rejected.
Variable-length quantity delta encoder: five-byte deltas produced · case 02
Delta 0x10000000 is encoded as five bytes instead of being rejected.
Variable-length quantity delta encoder: five-byte deltas produced · case 03
Delta 0x10000000 is encoded as five bytes instead of being rejected.
Variable-length quantity delta encoder: five-byte deltas produced · case 04
Delta 0x10000000 is encoded as five bytes instead of being rejected.
Variable-length quantity delta encoder: five-byte deltas produced · case 05
Delta 0x10000000 is encoded as five bytes instead of being rejected.
Variable-length quantity delta encoder: zero delta encoded as no bytes · case 01
A zero delta between simultaneous events produces an empty byte list, so the next event byte is read as the delta.
Variable-length quantity delta encoder: zero delta encoded as no bytes · case 02
A zero delta between simultaneous events produces an empty byte list, so the next event byte is read as the delta.
Variable-length quantity delta encoder: zero delta encoded as no bytes · case 03
A zero delta between simultaneous events produces an empty byte list, so the next event byte is read as the delta.
Variable-length quantity delta encoder: zero delta encoded as no bytes · case 04
A zero delta between simultaneous events produces an empty byte list, so the next event byte is read as the delta.
Variable-length quantity delta encoder: zero delta encoded as no bytes · case 05
A zero delta between simultaneous events produces an empty byte list, so the next event byte is read as the delta.
Variable-length quantity stream decoder: continuation flag kept in the value · case 01
Every multi-byte delta decodes too large, e.g. [129, 0] reads as 16512 instead of 128.
Variable-length quantity stream decoder: continuation flag kept in the value · case 02
Every multi-byte delta decodes too large, e.g. [129, 0] reads as 16512 instead of 128.
Variable-length quantity stream decoder: continuation flag kept in the value · case 03
Every multi-byte delta decodes too large, e.g. [129, 0] reads as 16512 instead of 128.
Variable-length quantity stream decoder: continuation flag kept in the value · case 04
Every multi-byte delta decodes too large, e.g. [129, 0] reads as 16512 instead of 128.
Variable-length quantity stream decoder: continuation flag kept in the value · case 05
Every multi-byte delta decodes too large, e.g. [129, 0] reads as 16512 instead of 128.
Variable-length quantity stream decoder: five-byte quantity accepted · case 01
A malformed five-byte quantity is decoded as a 35-bit value instead of being rejected.
Variable-length quantity stream decoder: five-byte quantity accepted · case 02
A malformed five-byte quantity is decoded as a 35-bit value instead of being rejected.
Variable-length quantity stream decoder: five-byte quantity accepted · case 03
A malformed five-byte quantity is decoded as a 35-bit value instead of being rejected.
Variable-length quantity stream decoder: five-byte quantity accepted · case 04
A malformed five-byte quantity is decoded as a 35-bit value instead of being rejected.
Variable-length quantity stream decoder: five-byte quantity accepted · case 05
A malformed five-byte quantity is decoded as a 35-bit value instead of being rejected.
Variable-length quantity stream decoder: previous quantity bleeds into the next · case 01
In [0, 129, 0, 5] the second and third values absorb earlier bits instead of reading 128 and 5.
Variable-length quantity stream decoder: previous quantity bleeds into the next · case 02
In [0, 129, 0, 5] the second and third values absorb earlier bits instead of reading 128 and 5.
Variable-length quantity stream decoder: previous quantity bleeds into the next · case 03
In [0, 129, 0, 5] the second and third values absorb earlier bits instead of reading 128 and 5.
Variable-length quantity stream decoder: previous quantity bleeds into the next · case 04
In [0, 129, 0, 5] the second and third values absorb earlier bits instead of reading 128 and 5.
Variable-length quantity stream decoder: previous quantity bleeds into the next · case 05
In [0, 129, 0, 5] the second and third values absorb earlier bits instead of reading 128 and 5.
Variable-length quantity stream decoder: truncated final quantity silently dropped · case 01
A stream ending in a byte with the continuation bit set, like [129], returns [] instead of None.
Variable-length quantity stream decoder: truncated final quantity silently dropped · case 02
A stream ending in a byte with the continuation bit set, like [129], returns [] instead of None.
Variable-length quantity stream decoder: truncated final quantity silently dropped · case 03
A stream ending in a byte with the continuation bit set, like [129], returns [] instead of None.
Variable-length quantity stream decoder: truncated final quantity silently dropped · case 04
A stream ending in a byte with the continuation bit set, like [129], returns [] instead of None.
Variable-length quantity stream decoder: truncated final quantity silently dropped · case 05
A stream ending in a byte with the continuation bit set, like [129], returns [] instead of None.
Standard MIDI File header chunk reader: chunk length read little-endian · case 01
Every normal header (length 00 00 00 06) is rejected because the length reads as 100663296.
Standard MIDI File header chunk reader: chunk length read little-endian · case 02
Every normal header (length 00 00 00 06) is rejected because the length reads as 100663296.
Standard MIDI File header chunk reader: chunk length read little-endian · case 03
Every normal header (length 00 00 00 06) is rejected because the length reads as 100663296.
Standard MIDI File header chunk reader: chunk length read little-endian · case 04
Every normal header (length 00 00 00 06) is rejected because the length reads as 100663296.
Standard MIDI File header chunk reader: chunk length read little-endian · case 05
Every normal header (length 00 00 00 06) is rejected because the length reads as 100663296.
Standard MIDI File header chunk reader: negative frame rate masked instead of negated · case 01
Every SMPTE-timed file is rejected: 0xE8 (-24) is read as 104 frames per second.
Standard MIDI File header chunk reader: negative frame rate masked instead of negated · case 02
Every SMPTE-timed file is rejected: 0xE8 (-24) is read as 104 frames per second.
Standard MIDI File header chunk reader: negative frame rate masked instead of negated · case 03
Every SMPTE-timed file is rejected: 0xE8 (-24) is read as 104 frames per second.
Standard MIDI File header chunk reader: negative frame rate masked instead of negated · case 04
Every SMPTE-timed file is rejected: 0xE8 (-24) is read as 104 frames per second.
Standard MIDI File header chunk reader: negative frame rate masked instead of negated · case 05
Every SMPTE-timed file is rejected: 0xE8 (-24) is read as 104 frames per second.
Standard MIDI File header chunk reader: multi-track format 0 accepted · case 01
A format 0 header declaring two tracks is accepted instead of rejected.
Standard MIDI File header chunk reader: multi-track format 0 accepted · case 02
A format 0 header declaring two tracks is accepted instead of rejected.
Standard MIDI File header chunk reader: multi-track format 0 accepted · case 03
A format 0 header declaring two tracks is accepted instead of rejected.
Standard MIDI File header chunk reader: multi-track format 0 accepted · case 04
A format 0 header declaring two tracks is accepted instead of rejected.
Standard MIDI File header chunk reader: multi-track format 0 accepted · case 05
A format 0 header declaring two tracks is accepted instead of rejected.
Standard MIDI File header chunk reader: longer header chunks rejected · case 01
A header chunk declaring length 8 (with two extra bytes present) is rejected although extra bytes must be ignored.
Standard MIDI File header chunk reader: longer header chunks rejected · case 02
A header chunk declaring length 8 (with two extra bytes present) is rejected although extra bytes must be ignored.
Standard MIDI File header chunk reader: longer header chunks rejected · case 03
A header chunk declaring length 8 (with two extra bytes present) is rejected although extra bytes must be ignored.
Standard MIDI File header chunk reader: longer header chunks rejected · case 04
A header chunk declaring length 8 (with two extra bytes present) is rejected although extra bytes must be ignored.
Standard MIDI File header chunk reader: longer header chunks rejected · case 05
A header chunk declaring length 8 (with two extra bytes present) is rejected although extra bytes must be ignored.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗