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
MIDI Time Code quarter-frame assembly: frame count nibbles swapped · case 01
Frame 21 (pieces 5 and 1) decodes as frame 81, which carries into several extra seconds.
MIDI Time Code quarter-frame assembly: frame count nibbles swapped · case 02
Frame 21 (pieces 5 and 1) decodes as frame 81, which carries into several extra seconds.
MIDI Time Code quarter-frame assembly: frame count nibbles swapped · case 03
Frame 21 (pieces 5 and 1) decodes as frame 81, which carries into several extra seconds.
MIDI Time Code quarter-frame assembly: frame count nibbles swapped · case 04
Frame 21 (pieces 5 and 1) decodes as frame 81, which carries into several extra seconds.
MIDI Time Code quarter-frame assembly: frame count nibbles swapped · case 05
Frame 21 (pieces 5 and 1) decodes as frame 81, which carries into several extra seconds.
MIDI Time Code quarter-frame assembly: rate bits leak into the hour · case 01
At 25 fps the rate-code bits are folded into the hours field, so 01:02:03 decodes with hour 9 after wrapping.
MIDI Time Code quarter-frame assembly: rate bits leak into the hour · case 02
At 25 fps the rate-code bits are folded into the hours field, so 01:02:03 decodes with hour 9 after wrapping.
MIDI Time Code quarter-frame assembly: rate bits leak into the hour · case 03
At 25 fps the rate-code bits are folded into the hours field, so 01:02:03 decodes with hour 9 after wrapping.
MIDI Time Code quarter-frame assembly: rate bits leak into the hour · case 04
At 25 fps the rate-code bits are folded into the hours field, so 01:02:03 decodes with hour 9 after wrapping.
MIDI Time Code quarter-frame assembly: rate bits leak into the hour · case 05
At 25 fps the rate-code bits are folded into the hours field, so 01:02:03 decodes with hour 9 after wrapping.
MIDI Time Code quarter-frame assembly: rate code read from the hours bit · case 01
The frame rate is decoded from the hours bit and one rate bit, so 25 fps material is carried at the wrong rate.
MIDI Time Code quarter-frame assembly: rate code read from the hours bit · case 02
The frame rate is decoded from the hours bit and one rate bit, so 25 fps material is carried at the wrong rate.
MIDI Time Code quarter-frame assembly: rate code read from the hours bit · case 03
The frame rate is decoded from the hours bit and one rate bit, so 25 fps material is carried at the wrong rate.
MIDI Time Code quarter-frame assembly: rate code read from the hours bit · case 04
The frame rate is decoded from the hours bit and one rate bit, so 25 fps material is carried at the wrong rate.
MIDI Time Code quarter-frame assembly: rate code read from the hours bit · case 05
The frame rate is decoded from the hours bit and one rate bit, so 25 fps material is carried at the wrong rate.
MIDI Time Code quarter-frame assembly: two-frame assembly latency not compensated · case 01
Every decoded position is two frames behind the time at which the last quarter frame arrived.
MIDI Time Code quarter-frame assembly: two-frame assembly latency not compensated · case 02
Every decoded position is two frames behind the time at which the last quarter frame arrived.
MIDI Time Code quarter-frame assembly: two-frame assembly latency not compensated · case 03
Every decoded position is two frames behind the time at which the last quarter frame arrived.
MIDI Time Code quarter-frame assembly: two-frame assembly latency not compensated · case 04
Every decoded position is two frames behind the time at which the last quarter frame arrived.
MIDI Time Code quarter-frame assembly: two-frame assembly latency not compensated · case 05
Every decoded position is two frames behind the time at which the last quarter frame arrived.
MIDI Time Code quarter-frame assembly: hour does not wrap after 23 · case 01
A time of 23:59:59 plus the latency frames reports hour 24 instead of wrapping to 0.
MIDI Time Code quarter-frame assembly: hour does not wrap after 23 · case 02
A time of 23:59:59 plus the latency frames reports hour 24 instead of wrapping to 0.
MIDI Time Code quarter-frame assembly: hour does not wrap after 23 · case 03
A time of 23:59:59 plus the latency frames reports hour 24 instead of wrapping to 0.
MIDI Time Code quarter-frame assembly: hour does not wrap after 23 · case 04
A time of 23:59:59 plus the latency frames reports hour 24 instead of wrapping to 0.
MIDI Time Code quarter-frame assembly: hour does not wrap after 23 · case 05
A time of 23:59:59 plus the latency frames reports hour 24 instead of wrapping to 0.
Event placement inside an audio render buffer: event sample position truncated · case 01
Events between two samples always land on the earlier sample; a half-sample event plays early.
Event placement inside an audio render buffer: event sample position truncated · case 02
Events between two samples always land on the earlier sample; a half-sample event plays early.
Event placement inside an audio render buffer: event sample position truncated · case 03
Events between two samples always land on the earlier sample; a half-sample event plays early.
Event placement inside an audio render buffer: event sample position truncated · case 04
Events between two samples always land on the earlier sample; a half-sample event plays early.
Event placement inside an audio render buffer: event sample position truncated · case 05
Events between two samples always land on the earlier sample; a half-sample event plays early.
Event placement inside an audio render buffer: first sample of the next buffer rendered now · case 01
An event exactly at start+size is given offset size, one past the end of the current buffer.
Event placement inside an audio render buffer: first sample of the next buffer rendered now · case 02
An event exactly at start+size is given offset size, one past the end of the current buffer.
Event placement inside an audio render buffer: first sample of the next buffer rendered now · case 03
An event exactly at start+size is given offset size, one past the end of the current buffer.
Event placement inside an audio render buffer: first sample of the next buffer rendered now · case 04
An event exactly at start+size is given offset size, one past the end of the current buffer.
Event placement inside an audio render buffer: first sample of the next buffer rendered now · case 05
An event exactly at start+size is given offset size, one past the end of the current buffer.
Event placement inside an audio render buffer: absolute sample position returned as offset · case 01
For any buffer after the first, events are given absolute sample positions far beyond the buffer size.
Event placement inside an audio render buffer: absolute sample position returned as offset · case 02
For any buffer after the first, events are given absolute sample positions far beyond the buffer size.
Event placement inside an audio render buffer: absolute sample position returned as offset · case 03
For any buffer after the first, events are given absolute sample positions far beyond the buffer size.
Event placement inside an audio render buffer: absolute sample position returned as offset · case 04
For any buffer after the first, events are given absolute sample positions far beyond the buffer size.
Event placement inside an audio render buffer: absolute sample position returned as offset · case 05
For any buffer after the first, events are given absolute sample positions far beyond the buffer size.
Ace-low wheel never registers as a straight · case 01
A-2-3-4-5 is reported as high card and the steel wheel as a plain flush.
Ace-low wheel never registers as a straight · case 02
A-2-3-4-5 is reported as high card and the steel wheel as a plain flush.
Ace-low wheel never registers as a straight · case 03
A-2-3-4-5 is reported as high card and the steel wheel as a plain flush.
Ace-low wheel never registers as a straight · case 04
A-2-3-4-5 is reported as high card and the steel wheel as a plain flush.
Ace-low wheel never registers as a straight · case 05
A-2-3-4-5 is reported as high card and the steel wheel as a plain flush.
Every flush is promoted to straight flush · case 01
Plain flushes and plain straights are both labelled straight flush.
Every flush is promoted to straight flush · case 02
Plain flushes and plain straights are both labelled straight flush.
Every flush is promoted to straight flush · case 03
Plain flushes and plain straights are both labelled straight flush.
Every flush is promoted to straight flush · case 04
Plain flushes and plain straights are both labelled straight flush.
Every flush is promoted to straight flush · case 05
Plain flushes and plain straights are both labelled straight flush.
Bare trips are called a full house · case 01
Three sevens with two unpaired kickers are labelled full house.
Bare trips are called a full house · case 02
Three sevens with two unpaired kickers are labelled full house.
Bare trips are called a full house · case 03
Three sevens with two unpaired kickers are labelled full house.
Bare trips are called a full house · case 04
Three sevens with two unpaired kickers are labelled full house.
Bare trips are called a full house · case 05
Three sevens with two unpaired kickers are labelled full house.
One pair hands leak into the two pair branch · case 01
A single pair of nines with three unpaired cards is labelled two pair.
One pair hands leak into the two pair branch · case 02
A single pair of nines with three unpaired cards is labelled two pair.
One pair hands leak into the two pair branch · case 03
A single pair of nines with three unpaired cards is labelled two pair.
One pair hands leak into the two pair branch · case 04
A single pair of nines with three unpaired cards is labelled two pair.
One pair hands leak into the two pair branch · case 05
A single pair of nines with three unpaired cards is labelled two pair.
Two-character ten token crashes rank parsing · case 01
Hands containing "10h" fail to evaluate while "Th" works.
Two-character ten token crashes rank parsing · case 02
Hands containing "10h" fail to evaluate while "Th" works.
Two-character ten token crashes rank parsing · case 03
Hands containing "10h" fail to evaluate while "Th" works.
Two-character ten token crashes rank parsing · case 04
Hands containing "10h" fail to evaluate while "Th" works.
Two-character ten token crashes rank parsing · case 05
Hands containing "10h" fail to evaluate while "Th" works.
Mixed-case suit letters split a flush · case 01
Five hearts written as "2H" and "7h" are reported as high card.
Mixed-case suit letters split a flush · case 02
Five hearts written as "2H" and "7h" are reported as high card.
Mixed-case suit letters split a flush · case 03
Five hearts written as "2H" and "7h" are reported as high card.
Mixed-case suit letters split a flush · case 04
Five hearts written as "2H" and "7h" are reported as high card.
Mixed-case suit letters split a flush · case 05
Five hearts written as "2H" and "7h" are reported as high card.
Four-flush draw counted as a made flush · case 01
Four hearts and a spade are reported as a flush.
Four-flush draw counted as a made flush · case 02
Four hearts and a spade are reported as a flush.
Four-flush draw counted as a made flush · case 03
Four hearts and a spade are reported as a flush.
Four-flush draw counted as a made flush · case 04
Four hearts and a spade are reported as a flush.
Four-flush draw counted as a made flush · case 05
Four hearts and a spade are reported as a flush.
Full houses are reported as four of a kind · case 01
Sevens full of kings is labelled four of a kind.
Full houses are reported as four of a kind · case 02
Sevens full of kings is labelled four of a kind.
Full houses are reported as four of a kind · case 03
Sevens full of kings is labelled four of a kind.
Full houses are reported as four of a kind · case 04
Sevens full of kings is labelled four of a kind.
Full houses are reported as four of a kind · case 05
Sevens full of kings is labelled four of a kind.
Wheel outranks a six-high straight · case 01
A-2-3-4-5 beats 2-3-4-5-6 at showdown.
Wheel outranks a six-high straight · case 02
A-2-3-4-5 beats 2-3-4-5-6 at showdown.
Wheel outranks a six-high straight · case 03
A-2-3-4-5 beats 2-3-4-5-6 at showdown.
Wheel outranks a six-high straight · case 04
A-2-3-4-5 beats 2-3-4-5-6 at showdown.
Wheel outranks a six-high straight · case 05
A-2-3-4-5 beats 2-3-4-5-6 at showdown.
Kickers are compared before the paired rank · case 01
Threes full of aces loses to kings full of deuces, and a pair of deuces with K-Q-J beats a pair of treys.
Kickers are compared before the paired rank · case 02
Threes full of aces loses to kings full of deuces, and a pair of deuces with K-Q-J beats a pair of treys.
Kickers are compared before the paired rank · case 03
Threes full of aces loses to kings full of deuces, and a pair of deuces with K-Q-J beats a pair of treys.
Kickers are compared before the paired rank · case 04
Threes full of aces loses to kings full of deuces, and a pair of deuces with K-Q-J beats a pair of treys.
Kickers are compared before the paired rank · case 05
Threes full of aces loses to kings full of deuces, and a pair of deuces with K-Q-J beats a pair of treys.
Exact ties awarded to the first seat · case 01
Two identical straights in different suits are not split; hand_a is paid the whole pot.
Exact ties awarded to the first seat · case 02
Two identical straights in different suits are not split; hand_a is paid the whole pot.
Exact ties awarded to the first seat · case 03
Two identical straights in different suits are not split; hand_a is paid the whole pot.
Exact ties awarded to the first seat · case 04
Two identical straights in different suits are not split; hand_a is paid the whole pot.
Exact ties awarded to the first seat · case 05
Two identical straights in different suits are not split; hand_a is paid the whole pot.
Straight ranked above flush · case 01
A king-high straight beats a king-high flush.
Straight ranked above flush · case 02
A king-high straight beats a king-high flush.
Straight ranked above flush · case 03
A king-high straight beats a king-high flush.
Straight ranked above flush · case 04
A king-high straight beats a king-high flush.
Straight ranked above flush · case 05
A king-high straight beats a king-high flush.
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 ↗