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
Missing-digit recovery measures the unknown from the left · case 01
Recovery succeeds only when the number length makes left and right parity agree.
Missing-digit recovery measures the unknown from the left · case 02
Recovery succeeds only when the number length makes left and right parity agree.
Missing-digit recovery measures the unknown from the left · case 03
Recovery succeeds only when the number length makes left and right parity agree.
Missing-digit recovery measures the unknown from the left · case 04
Recovery succeeds only when the number length makes left and right parity agree.
Missing-digit recovery measures the unknown from the left · case 05
Recovery succeeds only when the number length makes left and right parity agree.
Missing-digit recovery answers with two unknowns · case 01
Inputs with several unknown digits get a confident single answer.
Missing-digit recovery answers with two unknowns · case 02
Inputs with several unknown digits get a confident single answer.
Missing-digit recovery answers with two unknowns · case 03
Inputs with several unknown digits get a confident single answer.
Missing-digit recovery answers with two unknowns · case 04
Inputs with several unknown digits get a confident single answer.
Missing-digit recovery answers with two unknowns · case 05
Inputs with several unknown digits get a confident single answer.
Bank-slip mod 11 cycles weights 2 to 7 · case 01
Slips longer than six digits receive the wrong verifying digit.
Bank-slip mod 11 cycles weights 2 to 7 · case 02
Slips longer than six digits receive the wrong verifying digit.
Bank-slip mod 11 cycles weights 2 to 7 · case 03
Slips longer than six digits receive the wrong verifying digit.
Bank-slip mod 11 cycles weights 2 to 7 · case 04
Slips longer than six digits receive the wrong verifying digit.
Bank-slip mod 11 cycles weights 2 to 7 · case 05
Slips longer than six digits receive the wrong verifying digit.
Bank-slip mod 11 maps 10 and 11 to zero · case 01
Slips whose remainder is 0 or 1 get verifying digit 0, which is reserved.
Bank-slip mod 11 maps 10 and 11 to zero · case 02
Slips whose remainder is 0 or 1 get verifying digit 0, which is reserved.
Bank-slip mod 11 maps 10 and 11 to zero · case 03
Slips whose remainder is 0 or 1 get verifying digit 0, which is reserved.
Bank-slip mod 11 maps 10 and 11 to zero · case 04
Slips whose remainder is 0 or 1 get verifying digit 0, which is reserved.
Bank-slip mod 11 maps 10 and 11 to zero · case 05
Slips whose remainder is 0 or 1 get verifying digit 0, which is reserved.
NIE prefix letter is dropped instead of mapped · case 01
Y- and Z-series foreigner numbers get the wrong control letter (X happens to work).
NIE prefix letter is dropped instead of mapped · case 02
Y- and Z-series foreigner numbers get the wrong control letter (X happens to work).
NIE prefix letter is dropped instead of mapped · case 03
Y- and Z-series foreigner numbers get the wrong control letter (X happens to work).
NIE prefix letter is dropped instead of mapped · case 04
Y- and Z-series foreigner numbers get the wrong control letter (X happens to work).
NIE prefix letter is dropped instead of mapped · case 05
Y- and Z-series foreigner numbers get the wrong control letter (X happens to work).
DNI validation is case-sensitive · case 01
Numbers typed in lowercase are reported as mismatches or malformed.
DNI validation is case-sensitive · case 02
Numbers typed in lowercase are reported as mismatches or malformed.
DNI validation is case-sensitive · case 03
Numbers typed in lowercase are reported as mismatches or malformed.
DNI validation is case-sensitive · case 04
Numbers typed in lowercase are reported as mismatches or malformed.
DNI validation is case-sensitive · case 05
Numbers typed in lowercase are reported as mismatches or malformed.
ESR applies the carry table before adding the digit · case 01
Reference check digits disagree with the bank.
ESR applies the carry table before adding the digit · case 02
Reference check digits disagree with the bank.
ESR applies the carry table before adding the digit · case 03
Reference check digits disagree with the bank.
ESR applies the carry table before adding the digit · case 04
Reference check digits disagree with the bank.
ESR applies the carry table before adding the digit · case 05
Reference check digits disagree with the bank.
ESR returns the carry as the check digit · case 01
Only references with final carry 0 or 5 get the right check digit.
ESR returns the carry as the check digit · case 02
Only references with final carry 0 or 5 get the right check digit.
ESR returns the carry as the check digit · case 03
Only references with final carry 0 or 5 get the right check digit.
ESR returns the carry as the check digit · case 04
Only references with final carry 0 or 5 get the right check digit.
ESR returns the carry as the check digit · case 05
Only references with final carry 0 or 5 get the right check digit.
Bloom filter with double hashing: probe sequence skips the base probe · case 01
The filter sets bits at positions that another writer never probes, and base-hash bits are missing.
Bloom filter with double hashing: probe sequence skips the base probe · case 02
The filter sets bits at positions that another writer never probes, and base-hash bits are missing.
Bloom filter with double hashing: probe sequence skips the base probe · case 03
The filter sets bits at positions that another writer never probes, and base-hash bits are missing.
Bloom filter with double hashing: probe sequence skips the base probe · case 04
The filter sets bits at positions that another writer never probes, and base-hash bits are missing.
Bloom filter with double hashing: probe sequence skips the base probe · case 05
The filter sets bits at positions that another writer never probes, and base-hash bits are missing.
Bloom filter with double hashing: second hash is not forced odd · case 01
Bit layouts diverge from a conforming writer and, for power-of-two m, some items collapse onto few bits.
Bloom filter with double hashing: second hash is not forced odd · case 02
Bit layouts diverge from a conforming writer and, for power-of-two m, some items collapse onto few bits.
Bloom filter with double hashing: second hash is not forced odd · case 03
Bit layouts diverge from a conforming writer and, for power-of-two m, some items collapse onto few bits.
Bloom filter with double hashing: second hash is not forced odd · case 04
Bit layouts diverge from a conforming writer and, for power-of-two m, some items collapse onto few bits.
Bloom filter with double hashing: second hash is not forced odd · case 05
Bit layouts diverge from a conforming writer and, for power-of-two m, some items collapse onto few bits.
Bloom filter with double hashing: probe arithmetic does not wrap at 32 bits · case 01
A Python port disagrees with the 32-bit reference writer about which bits are set.
Bloom filter with double hashing: probe arithmetic does not wrap at 32 bits · case 02
A Python port disagrees with the 32-bit reference writer about which bits are set.
Bloom filter with double hashing: probe arithmetic does not wrap at 32 bits · case 03
A Python port disagrees with the 32-bit reference writer about which bits are set.
Bloom filter with double hashing: probe arithmetic does not wrap at 32 bits · case 04
A Python port disagrees with the 32-bit reference writer about which bits are set.
Bloom filter with double hashing: probe arithmetic does not wrap at 32 bits · case 05
A Python port disagrees with the 32-bit reference writer about which bits are set.
Bloom filter with double hashing: membership accepts a partial probe match · case 01
Items that were never inserted are reported present whenever one of their probe bits is set.
Bloom filter with double hashing: membership accepts a partial probe match · case 02
Items that were never inserted are reported present whenever one of their probe bits is set.
Bloom filter with double hashing: membership accepts a partial probe match · case 03
Items that were never inserted are reported present whenever one of their probe bits is set.
Bloom filter with double hashing: membership accepts a partial probe match · case 04
Items that were never inserted are reported present whenever one of their probe bits is set.
Bloom filter with double hashing: membership accepts a partial probe match · case 05
Items that were never inserted are reported present whenever one of their probe bits is set.
Bloom filter with double hashing: hash consumes code points instead of UTF-8 bytes · case 01
Non-ASCII keys map to different bits than in the reference writer, producing false negatives across implementations.
Bloom filter with double hashing: hash consumes code points instead of UTF-8 bytes · case 02
Non-ASCII keys map to different bits than in the reference writer, producing false negatives across implementations.
Bloom filter with double hashing: hash consumes code points instead of UTF-8 bytes · case 03
Non-ASCII keys map to different bits than in the reference writer, producing false negatives across implementations.
Bloom filter with double hashing: hash consumes code points instead of UTF-8 bytes · case 04
Non-ASCII keys map to different bits than in the reference writer, producing false negatives across implementations.
Bloom filter with double hashing: hash consumes code points instead of UTF-8 bytes · case 05
Non-ASCII keys map to different bits than in the reference writer, producing false negatives across implementations.
Bloom filter with double hashing: probe index reduced modulo m-1 · case 01
The last bit of the array is never set and every other probe lands on a shifted position.
Bloom filter with double hashing: probe index reduced modulo m-1 · case 02
The last bit of the array is never set and every other probe lands on a shifted position.
Bloom filter with double hashing: probe index reduced modulo m-1 · case 03
The last bit of the array is never set and every other probe lands on a shifted position.
Bloom filter with double hashing: probe index reduced modulo m-1 · case 04
The last bit of the array is never set and every other probe lands on a shifted position.
Bloom filter with double hashing: probe index reduced modulo m-1 · case 05
The last bit of the array is never set and every other probe lands on a shifted position.
Bloom filter sizing: bit count rounds down · case 01
The allocated bit array is one bit short and the realised false-positive rate exceeds the target.
Bloom filter sizing: bit count rounds down · case 02
The allocated bit array is one bit short and the realised false-positive rate exceeds the target.
Bloom filter sizing: bit count rounds down · case 03
The allocated bit array is one bit short and the realised false-positive rate exceeds the target.
Bloom filter sizing: bit count rounds down · case 04
The allocated bit array is one bit short and the realised false-positive rate exceeds the target.
Bloom filter sizing: bit count rounds down · case 05
The allocated bit array is one bit short and the realised false-positive rate exceeds the target.
Bloom filter sizing: bit formula divides by ln 2 instead of its square · case 01
Filters are sized far smaller than required for the requested false-positive rate.
Bloom filter sizing: bit formula divides by ln 2 instead of its square · case 02
Filters are sized far smaller than required for the requested false-positive rate.
Bloom filter sizing: bit formula divides by ln 2 instead of its square · case 03
Filters are sized far smaller than required for the requested false-positive rate.
Bloom filter sizing: bit formula divides by ln 2 instead of its square · case 04
Filters are sized far smaller than required for the requested false-positive rate.
Bloom filter sizing: bit formula divides by ln 2 instead of its square · case 05
Filters are sized far smaller than required for the requested false-positive rate.
Bloom filter sizing: probe count inverts the bits-per-item ratio · case 01
Filters use a single probe regardless of size, destroying the false-positive guarantee.
Bloom filter sizing: probe count inverts the bits-per-item ratio · case 02
Filters use a single probe regardless of size, destroying the false-positive guarantee.
Bloom filter sizing: probe count inverts the bits-per-item ratio · case 03
Filters use a single probe regardless of size, destroying the false-positive guarantee.
Bloom filter sizing: probe count inverts the bits-per-item ratio · case 04
Filters use a single probe regardless of size, destroying the false-positive guarantee.
Bloom filter sizing: probe count inverts the bits-per-item ratio · case 05
Filters use a single probe regardless of size, destroying the false-positive guarantee.
Bloom filter sizing: probe count may become zero · case 01
Very permissive targets produce a filter with zero probes that answers every query positively.
Bloom filter sizing: probe count may become zero · case 02
Very permissive targets produce a filter with zero probes that answers every query positively.
Bloom filter sizing: probe count may become zero · case 03
Very permissive targets produce a filter with zero probes that answers every query positively.
Bloom filter sizing: probe count may become zero · case 04
Very permissive targets produce a filter with zero probes that answers every query positively.
Bloom filter sizing: probe count may become zero · case 05
Very permissive targets produce a filter with zero probes that answers every query positively.
Bloom filter sizing: storage bytes round down · case 01
The byte buffer cannot hold the last partial byte of bits.
Bloom filter sizing: storage bytes round down · case 02
The byte buffer cannot hold the last partial byte of bits.
Bloom filter sizing: storage bytes round down · case 03
The byte buffer cannot hold the last partial byte of bits.
Bloom filter sizing: storage bytes round down · case 04
The byte buffer cannot hold the last partial byte of bits.
Bloom filter sizing: storage bytes round down · case 05
The byte buffer cannot hold the last partial byte of bits.
Bloom filter sizing: predicted false-positive rate uses inverted load · case 01
The reported false-positive rate is far too optimistic.
Bloom filter sizing: predicted false-positive rate uses inverted load · case 02
The reported false-positive rate is far too optimistic.
Bloom filter sizing: predicted false-positive rate uses inverted load · case 03
The reported false-positive rate is far too optimistic.
Bloom filter sizing: predicted false-positive rate uses inverted load · case 04
The reported false-positive rate is far too optimistic.
Bloom filter sizing: predicted false-positive rate uses inverted load · case 05
The reported false-positive rate is far too optimistic.
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 ↗