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
Pad randomisation uses a zero-based position · case 01
Symbols with padding fail strict verification because every randomised pad is off by one position.
Pad randomisation uses a zero-based position · case 02
Symbols with padding fail strict verification because every randomised pad is off by one position.
Pad randomisation uses a zero-based position · case 03
Symbols with padding fail strict verification because every randomised pad is off by one position.
Pad randomisation uses a zero-based position · case 04
Symbols with padding fail strict verification because every randomised pad is off by one position.
Pad randomisation uses a zero-based position · case 05
Symbols with padding fail strict verification because every randomised pad is off by one position.
First pad codeword is randomised · case 01
Decoders do not recognise the end of data because the first pad is not 129.
First pad codeword is randomised · case 02
Decoders do not recognise the end of data because the first pad is not 129.
First pad codeword is randomised · case 03
Decoders do not recognise the end of data because the first pad is not 129.
First pad codeword is randomised · case 04
Decoders do not recognise the end of data because the first pad is not 129.
First pad codeword is randomised · case 05
Decoders do not recognise the end of data because the first pad is not 129.
Randomised pad wraps by 253 · case 01
Some pad codewords are one higher than the reference encoder produces.
Randomised pad wraps by 253 · case 02
Some pad codewords are one higher than the reference encoder produces.
Randomised pad wraps by 253 · case 03
Some pad codewords are one higher than the reference encoder produces.
Randomised pad wraps by 253 · case 04
Some pad codewords are one higher than the reference encoder produces.
Randomised pad wraps by 253 · case 05
Some pad codewords are one higher than the reference encoder produces.
Pharmacode encodes values 1 and 2 · case 01
Single-bar codes are printed although scanners require at least two bars.
Pharmacode encodes values 1 and 2 · case 02
Single-bar codes are printed although scanners require at least two bars.
Pharmacode encodes values 1 and 2 · case 03
Single-bar codes are printed although scanners require at least two bars.
Pharmacode encodes values 1 and 2 · case 04
Single-bar codes are printed although scanners require at least two bars.
Pharmacode encodes values 1 and 2 · case 05
Single-bar codes are printed although scanners require at least two bars.
Pharmacode accepts a seventeen-bar value · case 01
Value 131071 produces 17 narrow bars that exceed the symbol definition.
Pharmacode accepts a seventeen-bar value · case 02
Value 131071 produces 17 narrow bars that exceed the symbol definition.
Pharmacode accepts a seventeen-bar value · case 03
Value 131071 produces 17 narrow bars that exceed the symbol definition.
Pharmacode accepts a seventeen-bar value · case 04
Value 131071 produces 17 narrow bars that exceed the symbol definition.
Pharmacode accepts a seventeen-bar value · case 05
Value 131071 produces 17 narrow bars that exceed the symbol definition.
Pharmacode assigns wide bars to odd values · case 01
Every package code scans as a different product number.
Pharmacode assigns wide bars to odd values · case 02
Every package code scans as a different product number.
Pharmacode assigns wide bars to odd values · case 03
Every package code scans as a different product number.
Pharmacode assigns wide bars to odd values · case 04
Every package code scans as a different product number.
Pharmacode assigns wide bars to odd values · case 05
Every package code scans as a different product number.
Pharmacode bars are printed in generation order · case 01
Codes are mirrored, so asymmetric patterns scan as other values.
Pharmacode bars are printed in generation order · case 02
Codes are mirrored, so asymmetric patterns scan as other values.
Pharmacode bars are printed in generation order · case 03
Codes are mirrored, so asymmetric patterns scan as other values.
Pharmacode bars are printed in generation order · case 04
Codes are mirrored, so asymmetric patterns scan as other values.
Pharmacode bars are printed in generation order · case 05
Codes are mirrored, so asymmetric patterns scan as other values.
Pharmacode width counts a trailing space · case 01
Packaging artwork reserves two extra modules after the last bar.
Pharmacode width counts a trailing space · case 02
Packaging artwork reserves two extra modules after the last bar.
Pharmacode width counts a trailing space · case 03
Packaging artwork reserves two extra modules after the last bar.
Pharmacode width counts a trailing space · case 04
Packaging artwork reserves two extra modules after the last bar.
Pharmacode width counts a trailing space · case 05
Packaging artwork reserves two extra modules after the last bar.
Glue-set badness rating: shrink exhaustion limit · case 01
A line compressed by exactly its total shrink is reported overfull.
Glue-set badness rating: shrink exhaustion limit · case 02
A line compressed by exactly its total shrink is reported overfull.
Glue-set badness rating: shrink exhaustion limit · case 03
A line compressed by exactly its total shrink is reported overfull.
Glue-set badness rating: shrink exhaustion limit · case 04
A line compressed by exactly its total shrink is reported overfull.
Glue-set badness rating: shrink exhaustion limit · case 05
A line compressed by exactly its total shrink is reported overfull.
Glue-set badness rating: shrink ratio denominator · case 01
Tight lines get badness and fitness computed from the wrong glue total.
Glue-set badness rating: shrink ratio denominator · case 02
Tight lines get badness and fitness computed from the wrong glue total.
Glue-set badness rating: shrink ratio denominator · case 03
Tight lines get badness and fitness computed from the wrong glue total.
Glue-set badness rating: shrink ratio denominator · case 04
Tight lines get badness and fitness computed from the wrong glue total.
Glue-set badness rating: shrink ratio denominator · case 05
Tight lines get badness and fitness computed from the wrong glue total.
Glue-set badness rating: cubic badness curve · case 01
Moderately loose lines look far better than they are.
Glue-set badness rating: cubic badness curve · case 02
Moderately loose lines look far better than they are.
Glue-set badness rating: cubic badness curve · case 03
Moderately loose lines look far better than they are.
Glue-set badness rating: cubic badness curve · case 04
Moderately loose lines look far better than they are.
Glue-set badness rating: cubic badness curve · case 05
Moderately loose lines look far better than they are.
Glue-set badness rating: badness rounding stage · case 01
Badness of lines with fractional ratios drifts by several points.
Glue-set badness rating: badness rounding stage · case 02
Badness of lines with fractional ratios drifts by several points.
Glue-set badness rating: badness rounding stage · case 03
Badness of lines with fractional ratios drifts by several points.
Glue-set badness rating: badness rounding stage · case 04
Badness of lines with fractional ratios drifts by several points.
Glue-set badness rating: badness rounding stage · case 05
Badness of lines with fractional ratios drifts by several points.
Glue-set badness rating: badness ceiling · case 01
Extremely loose lines report badness far above the infinite-badness ceiling.
Glue-set badness rating: badness ceiling · case 02
Extremely loose lines report badness far above the infinite-badness ceiling.
Glue-set badness rating: badness ceiling · case 03
Extremely loose lines report badness far above the infinite-badness ceiling.
Glue-set badness rating: badness ceiling · case 04
Extremely loose lines report badness far above the infinite-badness ceiling.
Glue-set badness rating: badness ceiling · case 05
Extremely loose lines report badness far above the infinite-badness ceiling.
Glue-set badness rating: rigid line with slack · case 01
A line with slack but no stretchable glue is accepted as perfect.
Glue-set badness rating: rigid line with slack · case 02
A line with slack but no stretchable glue is accepted as perfect.
Glue-set badness rating: rigid line with slack · case 03
A line with slack but no stretchable glue is accepted as perfect.
Glue-set badness rating: rigid line with slack · case 04
A line with slack but no stretchable glue is accepted as perfect.
Glue-set badness rating: rigid line with slack · case 05
A line with slack but no stretchable glue is accepted as perfect.
Glue-set badness rating: decent fitness upper bound · case 01
Lines stretched by exactly half their stretch are classed loose.
Glue-set badness rating: decent fitness upper bound · case 02
Lines stretched by exactly half their stretch are classed loose.
Glue-set badness rating: decent fitness upper bound · case 03
Lines stretched by exactly half their stretch are classed loose.
Glue-set badness rating: decent fitness upper bound · case 04
Lines stretched by exactly half their stretch are classed loose.
Glue-set badness rating: decent fitness upper bound · case 05
Lines stretched by exactly half their stretch are classed loose.
Total-fit paragraph demerits: last-line exemption · case 01
The paragraph ending is rated like a justified line and good breaks become infeasible.
Total-fit paragraph demerits: last-line exemption · case 02
The paragraph ending is rated like a justified line and good breaks become infeasible.
Total-fit paragraph demerits: last-line exemption · case 03
The paragraph ending is rated like a justified line and good breaks become infeasible.
Total-fit paragraph demerits: last-line exemption · case 04
The paragraph ending is rated like a justified line and good breaks become infeasible.
Total-fit paragraph demerits: last-line exemption · case 05
The paragraph ending is rated like a justified line and good breaks become infeasible.
Total-fit paragraph demerits: demerit squaring · case 01
Break choices favour many mediocre lines over fewer good ones.
Total-fit paragraph demerits: demerit squaring · case 02
Break choices favour many mediocre lines over fewer good ones.
Total-fit paragraph demerits: demerit squaring · case 03
Break choices favour many mediocre lines over fewer good ones.
Total-fit paragraph demerits: demerit squaring · case 04
Break choices favour many mediocre lines over fewer good ones.
Total-fit paragraph demerits: demerit squaring · case 05
Break choices favour many mediocre lines over fewer good ones.
Total-fit paragraph demerits: adjacent fitness penalty · case 01
Neighbouring lines one class apart are penalised as visually incompatible.
Total-fit paragraph demerits: adjacent fitness penalty · case 02
Neighbouring lines one class apart are penalised as visually incompatible.
Total-fit paragraph demerits: adjacent fitness penalty · case 03
Neighbouring lines one class apart are penalised as visually incompatible.
Total-fit paragraph demerits: adjacent fitness penalty · case 04
Neighbouring lines one class apart are penalised as visually incompatible.
Total-fit paragraph demerits: adjacent fitness penalty · case 05
Neighbouring lines one class apart are penalised as visually incompatible.
Total-fit paragraph demerits: interword gap count · case 01
Every line measures one space too wide and breaks too early.
Total-fit paragraph demerits: interword gap count · case 02
Every line measures one space too wide and breaks too early.
Total-fit paragraph demerits: interword gap count · case 03
Every line measures one space too wide and breaks too early.
Total-fit paragraph demerits: interword gap count · case 04
Every line measures one space too wide and breaks too early.
Total-fit paragraph demerits: interword gap count · case 05
Every line measures one space too wide and breaks too early.
Total-fit paragraph demerits: badness tolerance · case 01
Very loose lines are chosen that should have been rejected as infeasible.
Total-fit paragraph demerits: badness tolerance · case 02
Very loose lines are chosen that should have been rejected as infeasible.
Total-fit paragraph demerits: badness tolerance · case 03
Very loose lines are chosen that should have been rejected as infeasible.
Total-fit paragraph demerits: badness tolerance · case 04
Very loose lines are chosen that should have been rejected as infeasible.
Total-fit paragraph demerits: badness tolerance · case 05
Very loose lines are chosen that should have been rejected as infeasible.
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 ↗