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
UK VAT reads only the last check digit · case 01
Most valid VAT numbers are rejected.
UK VAT reads only the last check digit · case 02
Most valid VAT numbers are rejected.
UK VAT reads only the last check digit · case 03
Most valid VAT numbers are rejected.
UK VAT reads only the last check digit · case 04
Most valid VAT numbers are rejected.
UK VAT reads only the last check digit · case 05
Most valid VAT numbers are rejected.
Luhn mod N folds addends in base ten · case 01
Codes containing letters in doubled positions receive the wrong check character.
Luhn mod N folds addends in base ten · case 02
Codes containing letters in doubled positions receive the wrong check character.
Luhn mod N folds addends in base ten · case 03
Codes containing letters in doubled positions receive the wrong check character.
Luhn mod N folds addends in base ten · case 04
Codes containing letters in doubled positions receive the wrong check character.
Luhn mod N folds addends in base ten · case 05
Codes containing letters in doubled positions receive the wrong check character.
Luhn mod N generation starts with factor one · case 01
Generated check characters fail validation.
Luhn mod N generation starts with factor one · case 02
Generated check characters fail validation.
Luhn mod N generation starts with factor one · case 03
Generated check characters fail validation.
Luhn mod N generation starts with factor one · case 04
Generated check characters fail validation.
Luhn mod N generation starts with factor one · case 05
Generated check characters fail validation.
Container letter values do not skip multiples of eleven · case 01
Container numbers with owner letters B or later get the wrong check digit.
Container letter values do not skip multiples of eleven · case 02
Container numbers with owner letters B or later get the wrong check digit.
Container letter values do not skip multiples of eleven · case 03
Container numbers with owner letters B or later get the wrong check digit.
Container letter values do not skip multiples of eleven · case 04
Container numbers with owner letters B or later get the wrong check digit.
Container letter values do not skip multiples of eleven · case 05
Container numbers with owner letters B or later get the wrong check digit.
Container weights start at two · case 01
Every container number fails its check.
Container weights start at two · case 02
Every container number fails its check.
Container weights start at two · case 03
Every container number fails its check.
Container weights start at two · case 04
Every container number fails its check.
Container weights start at two · case 05
Every container number fails its check.
Container check keeps remainder ten · case 01
Containers whose sum leaves remainder 10 never validate.
Container check keeps remainder ten · case 02
Containers whose sum leaves remainder 10 never validate.
Container check keeps remainder ten · case 03
Containers whose sum leaves remainder 10 never validate.
Container check keeps remainder ten · case 04
Containers whose sum leaves remainder 10 never validate.
Container check keeps remainder ten · case 05
Containers whose sum leaves remainder 10 never validate.
Container category admits only freight containers · case 01
Detachable-equipment (J) and trailer (Z) identifiers are rejected.
Container category admits only freight containers · case 02
Detachable-equipment (J) and trailer (Z) identifiers are rejected.
Container category admits only freight containers · case 03
Detachable-equipment (J) and trailer (Z) identifiers are rejected.
Container category admits only freight containers · case 04
Detachable-equipment (J) and trailer (Z) identifiers are rejected.
Container category admits only freight containers · case 05
Detachable-equipment (J) and trailer (Z) identifiers are rejected.
CPF first check digit can become ten · case 01
Numbers whose first check digit should be 0 are rejected.
CPF first check digit can become ten · case 02
Numbers whose first check digit should be 0 are rejected.
CPF first check digit can become ten · case 03
Numbers whose first check digit should be 0 are rejected.
CPF first check digit can become ten · case 04
Numbers whose first check digit should be 0 are rejected.
CPF first check digit can become ten · case 05
Numbers whose first check digit should be 0 are rejected.
CPF accepts repeated-digit numbers · case 01
Placeholder numbers such as 111.111.111-11 pass both check digits.
CPF accepts repeated-digit numbers · case 02
Placeholder numbers such as 111.111.111-11 pass both check digits.
CPF accepts repeated-digit numbers · case 03
Placeholder numbers such as 111.111.111-11 pass both check digits.
CPF accepts repeated-digit numbers · case 04
Placeholder numbers such as 111.111.111-11 pass both check digits.
CPF accepts repeated-digit numbers · case 05
Placeholder numbers such as 111.111.111-11 pass both check digits.
CPF second check digit reuses the first weight range · case 01
Most valid CPFs fail the second check digit.
CPF second check digit reuses the first weight range · case 02
Most valid CPFs fail the second check digit.
CPF second check digit reuses the first weight range · case 03
Most valid CPFs fail the second check digit.
CPF second check digit reuses the first weight range · case 04
Most valid CPFs fail the second check digit.
CPF second check digit reuses the first weight range · case 05
Most valid CPFs fail the second check digit.
Mastercard 2-series range excludes 2720 · case 01
Cards issued at the top of the 2-series BIN range are reported as unknown.
Mastercard 2-series range excludes 2720 · case 02
Cards issued at the top of the 2-series BIN range are reported as unknown.
Mastercard 2-series range excludes 2720 · case 03
Cards issued at the top of the 2-series BIN range are reported as unknown.
Mastercard 2-series range excludes 2720 · case 04
Cards issued at the top of the 2-series BIN range are reported as unknown.
Mastercard 2-series range excludes 2720 · case 05
Cards issued at the top of the 2-series BIN range are reported as unknown.
Amex prefix test uses a range · case 01
Diners-style 35 and 36 prefixes with 15 digits are routed to amex.
Amex prefix test uses a range · case 02
Diners-style 35 and 36 prefixes with 15 digits are routed to amex.
Amex prefix test uses a range · case 03
Diners-style 35 and 36 prefixes with 15 digits are routed to amex.
Amex prefix test uses a range · case 04
Diners-style 35 and 36 prefixes with 15 digits are routed to amex.
Amex prefix test uses a range · case 05
Diners-style 35 and 36 prefixes with 15 digits are routed to amex.
Discover range claims all of 64 · case 01
Cards with prefixes 640-643 are routed to discover.
Discover range claims all of 64 · case 02
Cards with prefixes 640-643 are routed to discover.
Discover range claims all of 64 · case 03
Cards with prefixes 640-643 are routed to discover.
Discover range claims all of 64 · case 04
Cards with prefixes 640-643 are routed to discover.
Discover range claims all of 64 · case 05
Cards with prefixes 640-643 are routed to discover.
Visa routing rejects nineteen-digit cards · case 01
Long-format Visa cards are reported as unknown.
Visa routing rejects nineteen-digit cards · case 02
Long-format Visa cards are reported as unknown.
Visa routing rejects nineteen-digit cards · case 03
Long-format Visa cards are reported as unknown.
Visa routing rejects nineteen-digit cards · case 04
Long-format Visa cards are reported as unknown.
Visa routing rejects nineteen-digit cards · case 05
Long-format Visa cards are reported as unknown.
LEI check digits lose the leading zero · case 01
Check values below 10 produce a 19-character LEI.
LEI check digits lose the leading zero · case 02
Check values below 10 produce a 19-character LEI.
LEI check digits lose the leading zero · case 03
Check values below 10 produce a 19-character LEI.
LEI check digits lose the leading zero · case 04
Check values below 10 produce a 19-character LEI.
LEI check digits lose the leading zero · case 05
Check values below 10 produce a 19-character LEI.
LEI check is computed without the 00 placeholder · case 01
Nearly every generated LEI fails validation.
LEI check is computed without the 00 placeholder · case 02
Nearly every generated LEI fails validation.
LEI check is computed without the 00 placeholder · case 03
Nearly every generated LEI fails validation.
LEI check is computed without the 00 placeholder · case 04
Nearly every generated LEI fails validation.
LEI check is computed without the 00 placeholder · case 05
Nearly every generated LEI fails validation.
NRIC omits the offset for T and G series · case 01
Identifiers issued from 2000 onwards (T, G) get the wrong check letter.
NRIC omits the offset for T and G series · case 02
Identifiers issued from 2000 onwards (T, G) get the wrong check letter.
NRIC omits the offset for T and G series · case 03
Identifiers issued from 2000 onwards (T, G) get the wrong check letter.
NRIC omits the offset for T and G series · case 04
Identifiers issued from 2000 onwards (T, G) get the wrong check letter.
NRIC omits the offset for T and G series · case 05
Identifiers issued from 2000 onwards (T, G) get the wrong check letter.
NRIC pairs the wrong series with each letter table · case 01
Either citizen or foreigner numbers get check letters from the other table.
NRIC pairs the wrong series with each letter table · case 02
Either citizen or foreigner numbers get check letters from the other table.
NRIC pairs the wrong series with each letter table · case 03
Either citizen or foreigner numbers get check letters from the other table.
NRIC pairs the wrong series with each letter table · case 04
Either citizen or foreigner numbers get check letters from the other table.
NRIC pairs the wrong series with each letter table · case 05
Either citizen or foreigner numbers get check letters from the other table.
NRIC reads the check table from the other end · case 01
Almost every check letter is wrong.
NRIC reads the check table from the other end · case 02
Almost every check letter is wrong.
NRIC reads the check table from the other end · case 03
Almost every check letter is wrong.
NRIC reads the check table from the other end · case 04
Almost every check letter is wrong.
NRIC reads the check table from the other end · case 05
Almost every check letter is wrong.
Missing-digit recovery ignores the doubling at the unknown position · case 01
Unknown digits in doubled positions are recovered incorrectly.
Missing-digit recovery ignores the doubling at the unknown position · case 02
Unknown digits in doubled positions are recovered incorrectly.
Missing-digit recovery ignores the doubling at the unknown position · case 03
Unknown digits in doubled positions are recovered incorrectly.
Missing-digit recovery ignores the doubling at the unknown position · case 04
Unknown digits in doubled positions are recovered incorrectly.
Missing-digit recovery ignores the doubling at the unknown position · case 05
Unknown digits in doubled positions are recovered incorrectly.
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 ↗