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
End-of-file newline diff: the marker is written only after removed lines · case 01
An added last line without newline is shown as if it had one.
End-of-file newline diff: the marker is written only after removed lines · case 02
An added last line without newline is shown as if it had one.
End-of-file newline diff: the marker is written only after removed lines · case 03
An added last line without newline is shown as if it had one.
End-of-file newline diff: the marker is written only after removed lines · case 04
An added last line without newline is shown as if it had one.
End-of-file newline diff: the marker is written only after removed lines · case 05
An added last line without newline is shown as if it had one.
Patience diff anchors: lines repeated in the new side become anchors · case 01
A line duplicated in the new file anchors to its last copy and misaligns the diff.
Patience diff anchors: lines repeated in the new side become anchors · case 02
A line duplicated in the new file anchors to its last copy and misaligns the diff.
Patience diff anchors: lines repeated in the new side become anchors · case 03
A line duplicated in the new file anchors to its last copy and misaligns the diff.
Patience diff anchors: lines repeated in the new side become anchors · case 04
A line duplicated in the new file anchors to its last copy and misaligns the diff.
Patience diff anchors: lines repeated in the new side become anchors · case 05
A line duplicated in the new file anchors to its last copy and misaligns the diff.
Patience diff anchors: piles are keyed by old index instead of new index · case 01
Crossing unique lines are all kept as anchors, producing an inconsistent alignment.
Patience diff anchors: piles are keyed by old index instead of new index · case 02
Crossing unique lines are all kept as anchors, producing an inconsistent alignment.
Patience diff anchors: piles are keyed by old index instead of new index · case 03
Crossing unique lines are all kept as anchors, producing an inconsistent alignment.
Patience diff anchors: piles are keyed by old index instead of new index · case 04
Crossing unique lines are all kept as anchors, producing an inconsistent alignment.
Patience diff anchors: piles are keyed by old index instead of new index · case 05
Crossing unique lines are all kept as anchors, producing an inconsistent alignment.
Patience diff anchors: reconstruction starts from the first pile · case 01
Only a single anchor is returned even when a long chain exists.
Patience diff anchors: reconstruction starts from the first pile · case 02
Only a single anchor is returned even when a long chain exists.
Patience diff anchors: reconstruction starts from the first pile · case 03
Only a single anchor is returned even when a long chain exists.
Patience diff anchors: reconstruction starts from the first pile · case 04
Only a single anchor is returned even when a long chain exists.
Patience diff anchors: reconstruction starts from the first pile · case 05
Only a single anchor is returned even when a long chain exists.
Diffstat histogram: small changes vanish from a scaled bar · case 01
A file with one changed line shows no marks next to a large file.
Diffstat histogram: small changes vanish from a scaled bar · case 02
A file with one changed line shows no marks next to a large file.
Diffstat histogram: small changes vanish from a scaled bar · case 03
A file with one changed line shows no marks next to a large file.
Diffstat histogram: small changes vanish from a scaled bar · case 04
A file with one changed line shows no marks next to a large file.
Diffstat histogram: small changes vanish from a scaled bar · case 05
A file with one changed line shows no marks next to a large file.
Diffstat histogram: each bar is scaled to its own file total · case 01
Every changed file fills the whole width, so bars no longer compare sizes.
Diffstat histogram: each bar is scaled to its own file total · case 02
Every changed file fills the whole width, so bars no longer compare sizes.
Diffstat histogram: each bar is scaled to its own file total · case 03
Every changed file fills the whole width, so bars no longer compare sizes.
Diffstat histogram: each bar is scaled to its own file total · case 04
Every changed file fills the whole width, so bars no longer compare sizes.
Diffstat histogram: each bar is scaled to its own file total · case 05
Every changed file fills the whole width, so bars no longer compare sizes.
Diffstat histogram: a single insertion is pluralized · case 01
The summary reads "1 insertions(+)".
Diffstat histogram: a single insertion is pluralized · case 02
The summary reads "1 insertions(+)".
Diffstat histogram: a single insertion is pluralized · case 03
The summary reads "1 insertions(+)".
Diffstat histogram: a single insertion is pluralized · case 04
The summary reads "1 insertions(+)".
Diffstat histogram: a single insertion is pluralized · case 05
The summary reads "1 insertions(+)".
Diffstat histogram: zero insertions are still reported · case 01
A deletion-only change says "0 insertions(+)".
Diffstat histogram: zero insertions are still reported · case 02
A deletion-only change says "0 insertions(+)".
Diffstat histogram: zero insertions are still reported · case 03
A deletion-only change says "0 insertions(+)".
Diffstat histogram: zero insertions are still reported · case 04
A deletion-only change says "0 insertions(+)".
Diffstat histogram: zero insertions are still reported · case 05
A deletion-only change says "0 insertions(+)".
Whitespace comparison modes: -b discards leading whitespace · case 01
Indenting a line is not reported under -b, although whitespace appeared where there was none.
Whitespace comparison modes: -b discards leading whitespace · case 02
Indenting a line is not reported under -b, although whitespace appeared where there was none.
Whitespace comparison modes: -b discards leading whitespace · case 03
Indenting a line is not reported under -b, although whitespace appeared where there was none.
Whitespace comparison modes: -b discards leading whitespace · case 04
Indenting a line is not reported under -b, although whitespace appeared where there was none.
Whitespace comparison modes: -b discards leading whitespace · case 05
Indenting a line is not reported under -b, although whitespace appeared where there was none.
Whitespace comparison modes: -b collapses only spaces, not tabs · case 01
Replacing a tab with a space is reported as a change under -b.
Whitespace comparison modes: -b collapses only spaces, not tabs · case 02
Replacing a tab with a space is reported as a change under -b.
Whitespace comparison modes: -b collapses only spaces, not tabs · case 03
Replacing a tab with a space is reported as a change under -b.
Whitespace comparison modes: -b collapses only spaces, not tabs · case 04
Replacing a tab with a space is reported as a change under -b.
Whitespace comparison modes: -b collapses only spaces, not tabs · case 05
Replacing a tab with a space is reported as a change under -b.
Whitespace comparison modes: every trailing carriage return is stripped · case 01
Lines ending in two carriage returns compare equal to lines with one.
Whitespace comparison modes: every trailing carriage return is stripped · case 02
Lines ending in two carriage returns compare equal to lines with one.
Whitespace comparison modes: every trailing carriage return is stripped · case 03
Lines ending in two carriage returns compare equal to lines with one.
Whitespace comparison modes: every trailing carriage return is stripped · case 04
Lines ending in two carriage returns compare equal to lines with one.
Whitespace comparison modes: every trailing carriage return is stripped · case 05
Lines ending in two carriage returns compare equal to lines with one.
Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 01
Without a whitespace option, adding a line of spaces is ignored as a blank line.
Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 02
Without a whitespace option, adding a line of spaces is ignored as a blank line.
Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 03
Without a whitespace option, adding a line of spaces is ignored as a blank line.
Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 04
Without a whitespace option, adding a line of spaces is ignored as a blank line.
Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 05
Without a whitespace option, adding a line of spaces is ignored as a blank line.
Whitespace comparison modes: -w removes only spaces · case 01
Tab and other whitespace differences are still reported under -w.
Whitespace comparison modes: -w removes only spaces · case 02
Tab and other whitespace differences are still reported under -w.
Whitespace comparison modes: -w removes only spaces · case 03
Tab and other whitespace differences are still reported under -w.
Whitespace comparison modes: -w removes only spaces · case 04
Tab and other whitespace differences are still reported under -w.
Whitespace comparison modes: -w removes only spaces · case 05
Tab and other whitespace differences are still reported under -w.
Character diff cleanup merge: the factored prefix becomes a separate equality · case 01
Two equalities sit next to each other after cleanup, so identical changes normalize differently.
Character diff cleanup merge: the factored prefix becomes a separate equality · case 02
Two equalities sit next to each other after cleanup, so identical changes normalize differently.
Character diff cleanup merge: the factored prefix becomes a separate equality · case 03
Two equalities sit next to each other after cleanup, so identical changes normalize differently.
Character diff cleanup merge: the factored prefix becomes a separate equality · case 04
Two equalities sit next to each other after cleanup, so identical changes normalize differently.
Character diff cleanup merge: the factored prefix becomes a separate equality · case 05
Two equalities sit next to each other after cleanup, so identical changes normalize differently.
Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 01
Edits without a common suffix duplicate their deleted text into the next equality.
Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 02
Edits without a common suffix duplicate their deleted text into the next equality.
Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 03
Edits without a common suffix duplicate their deleted text into the next equality.
Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 04
Edits without a common suffix duplicate their deleted text into the next equality.
Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 05
Edits without a common suffix duplicate their deleted text into the next equality.
Character diff cleanup merge: empty entries survive cleanup · case 01
Normalized diffs contain empty equalities that split merges and render as nothing.
Character diff cleanup merge: empty entries survive cleanup · case 02
Normalized diffs contain empty equalities that split merges and render as nothing.
Character diff cleanup merge: empty entries survive cleanup · case 03
Normalized diffs contain empty equalities that split merges and render as nothing.
Character diff cleanup merge: empty entries survive cleanup · case 04
Normalized diffs contain empty equalities that split merges and render as nothing.
Character diff cleanup merge: empty entries survive cleanup · case 05
Normalized diffs contain empty equalities that split merges and render as nothing.
Character diff cleanup merge: insertions are emitted before deletions · case 01
The same replacement normalizes to insertion-first output, unlike the canonical form.
Character diff cleanup merge: insertions are emitted before deletions · case 02
The same replacement normalizes to insertion-first output, unlike the canonical form.
Character diff cleanup merge: insertions are emitted before deletions · case 03
The same replacement normalizes to insertion-first output, unlike the canonical form.
Character diff cleanup merge: insertions are emitted before deletions · case 04
The same replacement normalizes to insertion-first output, unlike the canonical form.
Character diff cleanup merge: insertions are emitted before deletions · case 05
The same replacement normalizes to insertion-first output, unlike the canonical form.
Character diff cleanup merge: a common suffix at the end of the text is lost · case 01
Characters shared by the final deletion and insertion disappear from the output.
Character diff cleanup merge: a common suffix at the end of the text is lost · case 02
Characters shared by the final deletion and insertion disappear from the output.
Character diff cleanup merge: a common suffix at the end of the text is lost · case 03
Characters shared by the final deletion and insertion disappear from the output.
Character diff cleanup merge: a common suffix at the end of the text is lost · case 04
Characters shared by the final deletion and insertion disappear from the output.
Character diff cleanup merge: a common suffix at the end of the text is lost · case 05
Characters shared by the final deletion and insertion disappear from the output.
Rename similarity pairing: repeated lines are counted as a set · case 01
Files full of repeated lines (braces, blank lines) score too low to be detected as renames.
Rename similarity pairing: repeated lines are counted as a set · case 02
Files full of repeated lines (braces, blank lines) score too low to be detected as renames.
Rename similarity pairing: repeated lines are counted as a set · case 03
Files full of repeated lines (braces, blank lines) score too low to be detected as renames.
Rename similarity pairing: repeated lines are counted as a set · case 04
Files full of repeated lines (braces, blank lines) score too low to be detected as renames.
Rename similarity pairing: repeated lines are counted as a set · case 05
Files full of repeated lines (braces, blank lines) score too low to be detected as renames.
Rename similarity pairing: a small file inside a large one scores 100 · case 01
A three-line file is reported as renamed to a large file that merely contains it.
Rename similarity pairing: a small file inside a large one scores 100 · case 02
A three-line file is reported as renamed to a large file that merely contains it.
Rename similarity pairing: a small file inside a large one scores 100 · case 03
A three-line file is reported as renamed to a large file that merely contains it.
Rename similarity pairing: a small file inside a large one scores 100 · case 04
A three-line file is reported as renamed to a large file that merely contains it.
Rename similarity pairing: a small file inside a large one scores 100 · case 05
A three-line file is reported as renamed to a large file that merely contains it.
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 ↗