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
Variable-length area code grouping: the trunk zero is counted as a national digit · case 01
Every number typed with its leading 0 is rejected.
Variable-length area code grouping: the trunk zero is counted as a national digit · case 02
Every number typed with its leading 0 is rejected.
Variable-length area code grouping: the trunk zero is counted as a national digit · case 03
Every number typed with its leading 0 is rejected.
Variable-length area code grouping: the trunk zero is counted as a national digit · case 04
Every number typed with its leading 0 is rejected.
Variable-length area code grouping: the trunk zero is counted as a national digit · case 05
Every number typed with its leading 0 is rejected.
Variable-length area code grouping: odd subscriber numbers are split long-first · case 01
A seven-digit subscriber part prints as 4+3 instead of 3+4.
Variable-length area code grouping: odd subscriber numbers are split long-first · case 02
A seven-digit subscriber part prints as 4+3 instead of 3+4.
Variable-length area code grouping: odd subscriber numbers are split long-first · case 03
A seven-digit subscriber part prints as 4+3 instead of 3+4.
Variable-length area code grouping: odd subscriber numbers are split long-first · case 04
A seven-digit subscriber part prints as 4+3 instead of 3+4.
Variable-length area code grouping: odd subscriber numbers are split long-first · case 05
A seven-digit subscriber part prints as 4+3 instead of 3+4.
Variable-length area code grouping: five-digit subscriber parts are split · case 01
A long area code prints its five subscriber digits as 3+2.
Variable-length area code grouping: five-digit subscriber parts are split · case 02
A long area code prints its five subscriber digits as 3+2.
Variable-length area code grouping: five-digit subscriber parts are split · case 03
A long area code prints its five subscriber digits as 3+2.
Variable-length area code grouping: five-digit subscriber parts are split · case 04
A long area code prints its five subscriber digits as 3+2.
Variable-length area code grouping: five-digit subscriber parts are split · case 05
A long area code prints its five subscriber digits as 3+2.
Variable-length area code grouping: mobile block code taken as three digits · case 01
Mobile numbers print as "07xx xxx xxx".
Variable-length area code grouping: mobile block code taken as three digits · case 02
Mobile numbers print as "07xx xxx xxx".
Variable-length area code grouping: mobile block code taken as three digits · case 03
Mobile numbers print as "07xx xxx xxx".
Variable-length area code grouping: mobile block code taken as three digits · case 04
Mobile numbers print as "07xx xxx xxx".
Variable-length area code grouping: mobile block code taken as three digits · case 05
Mobile numbers print as "07xx xxx xxx".
Vanity keypad translator: Q is missing from the keypad table · case 01
A vanity word containing Q comes up one digit short and is rejected.
Vanity keypad translator: Q is missing from the keypad table · case 02
A vanity word containing Q comes up one digit short and is rejected.
Vanity keypad translator: Q is missing from the keypad table · case 03
A vanity word containing Q comes up one digit short and is rejected.
Vanity keypad translator: Q is missing from the keypad table · case 04
A vanity word containing Q comes up one digit short and is rejected.
Vanity keypad translator: Q is missing from the keypad table · case 05
A vanity word containing Q comes up one digit short and is rejected.
Vanity keypad translator: lowercase letters are dropped · case 01
"(555) quizzap" is rejected as too short.
Vanity keypad translator: lowercase letters are dropped · case 02
"(555) quizzap" is rejected as too short.
Vanity keypad translator: lowercase letters are dropped · case 03
"(555) quizzap" is rejected as too short.
Vanity keypad translator: lowercase letters are dropped · case 04
"(555) quizzap" is rejected as too short.
Vanity keypad translator: lowercase letters are dropped · case 05
"(555) quizzap" is rejected as too short.
Vanity keypad translator: extra digits after the tenth are accepted · case 01
An eleven-digit number loses its last digit and is accepted.
Vanity keypad translator: extra digits after the tenth are accepted · case 02
An eleven-digit number loses its last digit and is accepted.
Vanity keypad translator: extra digits after the tenth are accepted · case 03
An eleven-digit number loses its last digit and is accepted.
Vanity keypad translator: extra digits after the tenth are accepted · case 04
An eleven-digit number loses its last digit and is accepted.
Vanity keypad translator: extra digits after the tenth are accepted · case 05
An eleven-digit number loses its last digit and is accepted.
Vanity keypad translator: dots and parentheses are rejected · case 01
"555.QUIZZAP" returns None.
Vanity keypad translator: dots and parentheses are rejected · case 02
"555.QUIZZAP" returns None.
Vanity keypad translator: dots and parentheses are rejected · case 03
"555.QUIZZAP" returns None.
Vanity keypad translator: dots and parentheses are rejected · case 04
"555.QUIZZAP" returns None.
Vanity keypad translator: dots and parentheses are rejected · case 05
"555.QUIZZAP" returns None.
Vanity keypad translator: seven-symbol numbers are accepted · case 01
"555-FAKE" formats as a partial number.
Vanity keypad translator: seven-symbol numbers are accepted · case 02
"555-FAKE" formats as a partial number.
Vanity keypad translator: seven-symbol numbers are accepted · case 03
"555-FAKE" formats as a partial number.
Vanity keypad translator: seven-symbol numbers are accepted · case 04
"555-FAKE" formats as a partial number.
Vanity keypad translator: seven-symbol numbers are accepted · case 05
"555-FAKE" formats as a partial number.
Extension and dial-pause parser: "ext" is tried before "extension" · case 01
"... extension 1" leaves "ension 1" as the extension and is rejected.
Extension and dial-pause parser: "ext" is tried before "extension" · case 02
"... extension 1" leaves "ension 1" as the extension and is rejected.
Extension and dial-pause parser: "ext" is tried before "extension" · case 03
"... extension 1" leaves "ension 1" as the extension and is rejected.
Extension and dial-pause parser: "ext" is tried before "extension" · case 04
"... extension 1" leaves "ension 1" as the extension and is rejected.
Extension and dial-pause parser: "ext" is tried before "extension" · case 05
"... extension 1" leaves "ension 1" as the extension and is rejected.
Extension and dial-pause parser: a leading marker starts an extension · case 01
"#555-0115" is treated as an empty number with a seven-digit extension and rejected.
Extension and dial-pause parser: a leading marker starts an extension · case 02
"#555-0115" is treated as an empty number with a seven-digit extension and rejected.
Extension and dial-pause parser: a leading marker starts an extension · case 03
"#555-0115" is treated as an empty number with a seven-digit extension and rejected.
Extension and dial-pause parser: a leading marker starts an extension · case 04
"#555-0115" is treated as an empty number with a seven-digit extension and rejected.
Extension and dial-pause parser: a leading marker starts an extension · case 05
"#555-0115" is treated as an empty number with a seven-digit extension and rejected.
Extension and dial-pause parser: overlong extensions are accepted · case 01
A seven-digit extension is accepted.
Extension and dial-pause parser: overlong extensions are accepted · case 02
A seven-digit extension is accepted.
Extension and dial-pause parser: overlong extensions are accepted · case 03
A seven-digit extension is accepted.
Extension and dial-pause parser: overlong extensions are accepted · case 04
A seven-digit extension is accepted.
Extension and dial-pause parser: overlong extensions are accepted · case 05
A seven-digit extension is accepted.
Extension and dial-pause parser: the space after the marker invalidates the extension · case 01
"... x 7" is rejected.
Extension and dial-pause parser: the space after the marker invalidates the extension · case 02
"... x 7" is rejected.
Extension and dial-pause parser: the space after the marker invalidates the extension · case 03
"... x 7" is rejected.
Extension and dial-pause parser: the space after the marker invalidates the extension · case 04
"... x 7" is rejected.
Extension and dial-pause parser: the space after the marker invalidates the extension · case 05
"... x 7" is rejected.
Extension and dial-pause parser: uppercase markers are not found · case 01
"... EXT 41" folds the extension digits into the main number.
Extension and dial-pause parser: uppercase markers are not found · case 02
"... EXT 41" folds the extension digits into the main number.
Extension and dial-pause parser: uppercase markers are not found · case 03
"... EXT 41" folds the extension digits into the main number.
Extension and dial-pause parser: uppercase markers are not found · case 04
"... EXT 41" folds the extension digits into the main number.
Extension and dial-pause parser: uppercase markers are not found · case 05
"... EXT 41" folds the extension digits into the main number.
Extension and dial-pause parser: comma and semicolon meanings are swapped · case 01
A comma is reported as wait and a semicolon as pause.
Extension and dial-pause parser: comma and semicolon meanings are swapped · case 02
A comma is reported as wait and a semicolon as pause.
Extension and dial-pause parser: comma and semicolon meanings are swapped · case 03
A comma is reported as wait and a semicolon as pause.
Extension and dial-pause parser: comma and semicolon meanings are swapped · case 04
A comma is reported as wait and a semicolon as pause.
Extension and dial-pause parser: comma and semicolon meanings are swapped · case 05
A comma is reported as wait and a semicolon as pause.
Display masking of subscriber digits: country code digits are masked · case 01
"+42 555 ..." renders as "+** *** ..." hiding the country.
Display masking of subscriber digits: country code digits are masked · case 02
"+42 555 ..." renders as "+** *** ..." hiding the country.
Display masking of subscriber digits: country code digits are masked · case 03
"+42 555 ..." renders as "+** *** ..." hiding the country.
Display masking of subscriber digits: country code digits are masked · case 04
"+42 555 ..." renders as "+** *** ..." hiding the country.
Display masking of subscriber digits: country code digits are masked · case 05
"+42 555 ..." renders as "+** *** ..." hiding the country.
Display masking of subscriber digits: four-digit numbers are shown in full · case 01
"+8 1122" is displayed unmasked.
Display masking of subscriber digits: four-digit numbers are shown in full · case 02
"+8 1122" is displayed unmasked.
Display masking of subscriber digits: four-digit numbers are shown in full · case 03
"+8 1122" is displayed unmasked.
Display masking of subscriber digits: four-digit numbers are shown in full · case 04
"+8 1122" is displayed unmasked.
Display masking of subscriber digits: four-digit numbers are shown in full · case 05
"+8 1122" is displayed unmasked.
Display masking of subscriber digits: five trailing digits are shown · case 01
One extra digit is revealed.
Display masking of subscriber digits: five trailing digits are shown · case 02
One extra digit is revealed.
Display masking of subscriber digits: five trailing digits are shown · case 03
One extra digit is revealed.
Display masking of subscriber digits: five trailing digits are shown · case 04
One extra digit is revealed.
Display masking of subscriber digits: five trailing digits are shown · case 05
One extra digit is revealed.
Display masking of subscriber digits: separators are dropped from the masked number · case 01
"+891 555-0115" renders without its space and hyphen.
Display masking of subscriber digits: separators are dropped from the masked number · case 02
"+891 555-0115" renders without its space and hyphen.
Display masking of subscriber digits: separators are dropped from the masked number · case 03
"+891 555-0115" renders without its space and hyphen.
Display masking of subscriber digits: separators are dropped from the masked number · case 04
"+891 555-0115" renders without its space and hyphen.
Display masking of subscriber digits: separators are dropped from the masked number · case 05
"+891 555-0115" renders without its space and hyphen.
Display masking of subscriber digits: separators are counted as digits · case 01
Fewer than four digits are revealed when the number contains separators.
Display masking of subscriber digits: separators are counted as digits · case 02
Fewer than four digits are revealed when the number contains separators.
Display masking of subscriber digits: separators are counted as digits · case 03
Fewer than four digits are revealed when the number contains separators.
Display masking of subscriber digits: separators are counted as digits · case 04
Fewer than four digits are revealed when the number contains separators.
Display masking of subscriber digits: separators are counted as digits · case 05
Fewer than four digits are revealed when the number contains separators.
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 ↗