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
Ranks ordered alphabetically instead of by strength · case 01
Queen-ten is written "TQs" and ace-king "KAo".
Ranks ordered alphabetically instead of by strength · case 02
Queen-ten is written "TQs" and ace-king "KAo".
Ranks ordered alphabetically instead of by strength · case 03
Queen-ten is written "TQs" and ace-king "KAo".
Ranks ordered alphabetically instead of by strength · case 04
Queen-ten is written "TQs" and ace-king "KAo".
Ranks ordered alphabetically instead of by strength · case 05
Queen-ten is written "TQs" and ace-king "KAo".
Pocket pairs carry an offsuit marker · case 01
Pocket queens are written "QQo" and do not match range keys.
Pocket pairs carry an offsuit marker · case 02
Pocket queens are written "QQo" and do not match range keys.
Pocket pairs carry an offsuit marker · case 03
Pocket queens are written "QQo" and do not match range keys.
Pocket pairs carry an offsuit marker · case 04
Pocket queens are written "QQo" and do not match range keys.
Pocket pairs carry an offsuit marker · case 05
Pocket queens are written "QQo" and do not match range keys.
Ten token misreads suitedness · case 01
"10h" with "Jh" is written "JTo".
Ten token misreads suitedness · case 02
"10h" with "Jh" is written "JTo".
Ten token misreads suitedness · case 03
"10h" with "Jh" is written "JTo".
Ten token misreads suitedness · case 04
"10h" with "Jh" is written "JTo".
Ten token misreads suitedness · case 05
"10h" with "Jh" is written "JTo".
Substring test accepts empty and multi-letter ranks · case 01
A card with no rank or a rank token "KQ" produces a hand label instead of "invalid".
Substring test accepts empty and multi-letter ranks · case 02
A card with no rank or a rank token "KQ" produces a hand label instead of "invalid".
Substring test accepts empty and multi-letter ranks · case 03
A card with no rank or a rank token "KQ" produces a hand label instead of "invalid".
Substring test accepts empty and multi-letter ranks · case 04
A card with no rank or a rank token "KQ" produces a hand label instead of "invalid".
Substring test accepts empty and multi-letter ranks · case 05
A card with no rank or a rank token "KQ" produces a hand label instead of "invalid".
Pair-plus range stops at kings · case 01
"QQ+" counts 12 combos (QQ, KK) and "77+" misses pocket aces.
Pair-plus range stops at kings · case 02
"QQ+" counts 12 combos (QQ, KK) and "77+" misses pocket aces.
Pair-plus range stops at kings · case 03
"QQ+" counts 12 combos (QQ, KK) and "77+" misses pocket aces.
Pair-plus range stops at kings · case 04
"QQ+" counts 12 combos (QQ, KK) and "77+" misses pocket aces.
Pair-plus range stops at kings · case 05
"QQ+" counts 12 combos (QQ, KK) and "77+" misses pocket aces.
Kicker-plus range runs into the pair of the top card · case 01
"A9s+" includes an "AAs" class counted as a pocket pair and "KTo+" includes AK-type classes.
Kicker-plus range runs into the pair of the top card · case 02
"A9s+" includes an "AAs" class counted as a pocket pair and "KTo+" includes AK-type classes.
Kicker-plus range runs into the pair of the top card · case 03
"A9s+" includes an "AAs" class counted as a pocket pair and "KTo+" includes AK-type classes.
Kicker-plus range runs into the pair of the top card · case 04
"A9s+" includes an "AAs" class counted as a pocket pair and "KTo+" includes AK-type classes.
Kicker-plus range runs into the pair of the top card · case 05
"A9s+" includes an "AAs" class counted as a pocket pair and "KTo+" includes AK-type classes.
Kicker dash range drops its upper end · case 01
"A9s-A6s" counts three classes instead of four.
Kicker dash range drops its upper end · case 02
"A9s-A6s" counts three classes instead of four.
Kicker dash range drops its upper end · case 03
"A9s-A6s" counts three classes instead of four.
Kicker dash range drops its upper end · case 04
"A9s-A6s" counts three classes instead of four.
Kicker dash range drops its upper end · case 05
"A9s-A6s" counts three classes instead of four.
Unsuffixed non-pair counted as offsuit only · case 01
"AK" counts 12 combos instead of 16.
Unsuffixed non-pair counted as offsuit only · case 02
"AK" counts 12 combos instead of 16.
Unsuffixed non-pair counted as offsuit only · case 03
"AK" counts 12 combos instead of 16.
Unsuffixed non-pair counted as offsuit only · case 04
"AK" counts 12 combos instead of 16.
Unsuffixed non-pair counted as offsuit only · case 05
"AK" counts 12 combos instead of 16.
Space after a comma breaks range parsing · case 01
"QQ+, AKs" fails to parse because the second token starts with a space.
Space after a comma breaks range parsing · case 02
"QQ+, AKs" fails to parse because the second token starts with a space.
Space after a comma breaks range parsing · case 03
"QQ+, AKs" fails to parse because the second token starts with a space.
Space after a comma breaks range parsing · case 04
"QQ+, AKs" fails to parse because the second token starts with a space.
Space after a comma breaks range parsing · case 05
"QQ+, AKs" fails to parse because the second token starts with a space.
High-to-low pair dash range expands to nothing · case 01
"TT-77" counts zero combos.
High-to-low pair dash range expands to nothing · case 02
"TT-77" counts zero combos.
High-to-low pair dash range expands to nothing · case 03
"TT-77" counts zero combos.
High-to-low pair dash range expands to nothing · case 04
"TT-77" counts zero combos.
High-to-low pair dash range expands to nothing · case 05
"TT-77" counts zero combos.
Pocket pairs counted as ordered permutations · case 01
"22" counts 12 combos and "QQ+" counts 36.
Pocket pairs counted as ordered permutations · case 02
"22" counts 12 combos and "QQ+" counts 36.
Pocket pairs counted as ordered permutations · case 03
"22" counts 12 combos and "QQ+" counts 36.
Pocket pairs counted as ordered permutations · case 04
"22" counts 12 combos and "QQ+" counts 36.
Pocket pairs counted as ordered permutations · case 05
"22" counts 12 combos and "QQ+" counts 36.
Pocket pair combos enumerated as ordered deals · case 01
"QQ" enumerates 12 combos with no blockers and 9 with one queen dead.
Pocket pair combos enumerated as ordered deals · case 02
"QQ" enumerates 12 combos with no blockers and 9 with one queen dead.
Pocket pair combos enumerated as ordered deals · case 03
"QQ" enumerates 12 combos with no blockers and 9 with one queen dead.
Pocket pair combos enumerated as ordered deals · case 04
"QQ" enumerates 12 combos with no blockers and 9 with one queen dead.
Pocket pair combos enumerated as ordered deals · case 05
"QQ" enumerates 12 combos with no blockers and 9 with one queen dead.
Suited class enumerates offsuit combos · case 01
"AKs" counts 12 combos.
Suited class enumerates offsuit combos · case 02
"AKs" counts 12 combos.
Suited class enumerates offsuit combos · case 03
"AKs" counts 12 combos.
Suited class enumerates offsuit combos · case 04
"AKs" counts 12 combos.
Suited class enumerates offsuit combos · case 05
"AKs" counts 12 combos.
Blockers on the second rank are ignored · case 01
A dead king does not reduce "AKs" or "AKo" combos.
Blockers on the second rank are ignored · case 02
A dead king does not reduce "AKs" or "AKo" combos.
Blockers on the second rank are ignored · case 03
A dead king does not reduce "AKs" or "AKo" combos.
Blockers on the second rank are ignored · case 04
A dead king does not reduce "AKs" or "AKo" combos.
Blockers on the second rank are ignored · case 05
A dead king does not reduce "AKs" or "AKo" combos.
Lower-case dead cards never block · case 01
Dead cards written "ah" or "JH" leave the combo count unchanged.
Lower-case dead cards never block · case 02
Dead cards written "ah" or "JH" leave the combo count unchanged.
Lower-case dead cards never block · case 03
Dead cards written "ah" or "JH" leave the combo count unchanged.
Lower-case dead cards never block · case 04
Dead cards written "ah" or "JH" leave the combo count unchanged.
Lower-case dead cards never block · case 05
Dead cards written "ah" or "JH" leave the combo count unchanged.
Announcer says "Sixs" and "Twos" · case 01
A pair of sixes is announced as "Pair of Sixs".
Announcer says "Sixs" and "Twos" · case 02
A pair of sixes is announced as "Pair of Sixs".
Announcer says "Sixs" and "Twos" · case 03
A pair of sixes is announced as "Pair of Sixs".
Announcer says "Sixs" and "Twos" · case 04
A pair of sixes is announced as "Pair of Sixs".
Announcer says "Sixs" and "Twos" · case 05
A pair of sixes is announced as "Pair of Sixs".
Wheel announced as an ace-high straight · case 01
A-2-3-4-5 is announced "Straight, Ace high" and the steel wheel as a royal flush.
Wheel announced as an ace-high straight · case 02
A-2-3-4-5 is announced "Straight, Ace high" and the steel wheel as a royal flush.
Wheel announced as an ace-high straight · case 03
A-2-3-4-5 is announced "Straight, Ace high" and the steel wheel as a royal flush.
Wheel announced as an ace-high straight · case 04
A-2-3-4-5 is announced "Straight, Ace high" and the steel wheel as a royal flush.
Wheel announced as an ace-high straight · case 05
A-2-3-4-5 is announced "Straight, Ace high" and the steel wheel as a royal flush.
Steel wheel announced as a royal flush · case 01
A-2-3-4-5 suited is announced as "Royal Flush".
Steel wheel announced as a royal flush · case 02
A-2-3-4-5 suited is announced as "Royal Flush".
Steel wheel announced as a royal flush · case 03
A-2-3-4-5 suited is announced as "Royal Flush".
Steel wheel announced as a royal flush · case 04
A-2-3-4-5 suited is announced as "Royal Flush".
Steel wheel announced as a royal flush · case 05
A-2-3-4-5 suited is announced as "Royal Flush".
Full house named by highest rank instead of trips · case 01
Threes full of kings is announced as "Kings full of Threes".
Full house named by highest rank instead of trips · case 02
Threes full of kings is announced as "Kings full of Threes".
Full house named by highest rank instead of trips · case 03
Threes full of kings is announced as "Kings full of Threes".
Full house named by highest rank instead of trips · case 04
Threes full of kings is announced as "Kings full of Threes".
Full house named by highest rank instead of trips · case 05
Threes full of kings is announced as "Kings full of Threes".
Kicker announced as the second pair · case 01
Kings and sevens with a deuce kicker is announced "Two Pair, Kings and Deuces".
Kicker announced as the second pair · case 02
Kings and sevens with a deuce kicker is announced "Two Pair, Kings and Deuces".
Kicker announced as the second pair · case 03
Kings and sevens with a deuce kicker is announced "Two Pair, Kings and Deuces".
Kicker announced as the second pair · case 04
Kings and sevens with a deuce kicker is announced "Two Pair, Kings and Deuces".
Kicker announced as the second pair · case 05
Kings and sevens with a deuce kicker is announced "Two Pair, Kings and Deuces".
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 ↗