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
Hunk overlap check: ranges extend one line past their last line · case 01
Hunks one line apart are reported as conflicting.
Hunk overlap check: ranges extend one line past their last line · case 02
Hunks one line apart are reported as conflicting.
Hunk overlap check: ranges extend one line past their last line · case 03
Hunks one line apart are reported as conflicting.
Hunk overlap check: ranges extend one line past their last line · case 04
Hunks one line apart are reported as conflicting.
Hunk overlap check: ranges extend one line past their last line · case 05
Hunks one line apart are reported as conflicting.
Patch reversal: an omitted count becomes an explicit zero · case 01
Reversing a single-line hunk produces a header claiming an empty range.
Patch reversal: an omitted count becomes an explicit zero · case 02
Reversing a single-line hunk produces a header claiming an empty range.
Patch reversal: an omitted count becomes an explicit zero · case 03
Reversing a single-line hunk produces a header claiming an empty range.
Patch reversal: an omitted count becomes an explicit zero · case 04
Reversing a single-line hunk produces a header claiming an empty range.
Patch reversal: an omitted count becomes an explicit zero · case 05
Reversing a single-line hunk produces a header claiming an empty range.
Patch reversal: header starts are swapped but counts are not · case 01
The reversed hunk's header counts disagree with its body.
Patch reversal: header starts are swapped but counts are not · case 02
The reversed hunk's header counts disagree with its body.
Patch reversal: header starts are swapped but counts are not · case 03
The reversed hunk's header counts disagree with its body.
Patch reversal: header starts are swapped but counts are not · case 04
The reversed hunk's header counts disagree with its body.
Patch reversal: header starts are swapped but counts are not · case 05
The reversed hunk's header counts disagree with its body.
Patch reversal: reversed blocks list additions before removals · case 01
The reversed hunk shows new lines before old lines inside each change.
Patch reversal: reversed blocks list additions before removals · case 02
The reversed hunk shows new lines before old lines inside each change.
Patch reversal: reversed blocks list additions before removals · case 03
The reversed hunk shows new lines before old lines inside each change.
Patch reversal: reversed blocks list additions before removals · case 04
The reversed hunk shows new lines before old lines inside each change.
Patch reversal: reversed blocks list additions before removals · case 05
The reversed hunk shows new lines before old lines inside each change.
Patch reversal: no-newline markers detach from their lines · case 01
After reordering, the missing-newline marker follows the wrong line or starts a block.
Patch reversal: no-newline markers detach from their lines · case 02
After reordering, the missing-newline marker follows the wrong line or starts a block.
Patch reversal: no-newline markers detach from their lines · case 03
After reordering, the missing-newline marker follows the wrong line or starts a block.
Patch reversal: no-newline markers detach from their lines · case 04
After reordering, the missing-newline marker follows the wrong line or starts a block.
Patch reversal: no-newline markers detach from their lines · case 05
After reordering, the missing-newline marker follows the wrong line or starts a block.
Patch reversal: the function context after the header is dropped · case 01
Reversed hunks lose the section heading shown after the @@ markers.
Patch reversal: the function context after the header is dropped · case 02
Reversed hunks lose the section heading shown after the @@ markers.
Patch reversal: the function context after the header is dropped · case 03
Reversed hunks lose the section heading shown after the @@ markers.
Patch reversal: the function context after the header is dropped · case 04
Reversed hunks lose the section heading shown after the @@ markers.
Patch reversal: the function context after the header is dropped · case 05
Reversed hunks lose the section heading shown after the @@ markers.
Blame propagation: removed lines do not advance the old-line cursor · case 01
Lines after a deletion are credited to the commits of the deleted lines.
Blame propagation: removed lines do not advance the old-line cursor · case 02
Lines after a deletion are credited to the commits of the deleted lines.
Blame propagation: removed lines do not advance the old-line cursor · case 03
Lines after a deletion are credited to the commits of the deleted lines.
Blame propagation: removed lines do not advance the old-line cursor · case 04
Lines after a deletion are credited to the commits of the deleted lines.
Blame propagation: removed lines do not advance the old-line cursor · case 05
Lines after a deletion are credited to the commits of the deleted lines.
Blame propagation: whitespace-only rewrites keep old blame even when not requested · case 01
Plain blame hides reformatting commits.
Blame propagation: whitespace-only rewrites keep old blame even when not requested · case 02
Plain blame hides reformatting commits.
Blame propagation: whitespace-only rewrites keep old blame even when not requested · case 03
Plain blame hides reformatting commits.
Blame propagation: whitespace-only rewrites keep old blame even when not requested · case 04
Plain blame hides reformatting commits.
Blame propagation: whitespace-only rewrites keep old blame even when not requested · case 05
Plain blame hides reformatting commits.
Blame propagation: every added line is compared with the first removed line · case 01
The second and later reformatted lines are credited to the reformatting commit, and duplicates inherit the wrong commit.
Blame propagation: every added line is compared with the first removed line · case 02
The second and later reformatted lines are credited to the reformatting commit, and duplicates inherit the wrong commit.
Blame propagation: every added line is compared with the first removed line · case 03
The second and later reformatted lines are credited to the reformatting commit, and duplicates inherit the wrong commit.
Blame propagation: every added line is compared with the first removed line · case 04
The second and later reformatted lines are credited to the reformatting commit, and duplicates inherit the wrong commit.
Blame propagation: every added line is compared with the first removed line · case 05
The second and later reformatted lines are credited to the reformatting commit, and duplicates inherit the wrong commit.
Unified hunk parser: an omitted old count is read as zero · case 01
Single-line hunks are rejected as truncated or misread.
Unified hunk parser: an omitted old count is read as zero · case 02
Single-line hunks are rejected as truncated or misread.
Unified hunk parser: an omitted old count is read as zero · case 03
Single-line hunks are rejected as truncated or misread.
Unified hunk parser: an omitted old count is read as zero · case 04
Single-line hunks are rejected as truncated or misread.
Unified hunk parser: an omitted old count is read as zero · case 05
Single-line hunks are rejected as truncated or misread.
Unified hunk parser: no-newline markers end the hunk body · case 01
Patches touching a last line without newline are reported as truncated.
Unified hunk parser: no-newline markers end the hunk body · case 02
Patches touching a last line without newline are reported as truncated.
Unified hunk parser: no-newline markers end the hunk body · case 03
Patches touching a last line without newline are reported as truncated.
Unified hunk parser: no-newline markers end the hunk body · case 04
Patches touching a last line without newline are reported as truncated.
Unified hunk parser: no-newline markers end the hunk body · case 05
Patches touching a last line without newline are reported as truncated.
Unified hunk parser: an empty line inside a hunk ends it · case 01
Patches whose blank context lines lost their leading space are rejected as truncated.
Unified hunk parser: an empty line inside a hunk ends it · case 02
Patches whose blank context lines lost their leading space are rejected as truncated.
Unified hunk parser: an empty line inside a hunk ends it · case 03
Patches whose blank context lines lost their leading space are rejected as truncated.
Unified hunk parser: an empty line inside a hunk ends it · case 04
Patches whose blank context lines lost their leading space are rejected as truncated.
Unified hunk parser: an empty line inside a hunk ends it · case 05
Patches whose blank context lines lost their leading space are rejected as truncated.
Unified hunk parser: the body stops when either side is exhausted · case 01
Hunks ending in additions or removals are reported as truncated.
Unified hunk parser: the body stops when either side is exhausted · case 02
Hunks ending in additions or removals are reported as truncated.
Unified hunk parser: the body stops when either side is exhausted · case 03
Hunks ending in additions or removals are reported as truncated.
Unified hunk parser: the body stops when either side is exhausted · case 04
Hunks ending in additions or removals are reported as truncated.
Unified hunk parser: the body stops when either side is exhausted · case 05
Hunks ending in additions or removals are reported as truncated.
Tree listing diff: directories are ordered by bare name · case 01
A file replaced by a same-named directory is reported as a type change, and entries around directories are misordered.
Tree listing diff: directories are ordered by bare name · case 02
A file replaced by a same-named directory is reported as a type change, and entries around directories are misordered.
Tree listing diff: directories are ordered by bare name · case 03
A file replaced by a same-named directory is reported as a type change, and entries around directories are misordered.
Tree listing diff: directories are ordered by bare name · case 04
A file replaced by a same-named directory is reported as a type change, and entries around directories are misordered.
Tree listing diff: directories are ordered by bare name · case 05
A file replaced by a same-named directory is reported as a type change, and entries around directories are misordered.
Tree listing diff: an executable-bit change is reported as a type change · case 01
Toggling the executable bit shows up as "T" instead of a modification.
Tree listing diff: an executable-bit change is reported as a type change · case 02
Toggling the executable bit shows up as "T" instead of a modification.
Tree listing diff: an executable-bit change is reported as a type change · case 03
Toggling the executable bit shows up as "T" instead of a modification.
Tree listing diff: an executable-bit change is reported as a type change · case 04
Toggling the executable bit shows up as "T" instead of a modification.
Tree listing diff: an executable-bit change is reported as a type change · case 05
Toggling the executable bit shows up as "T" instead of a modification.
Tree listing diff: mode-only changes are not reported · case 01
Making a script executable produces no change entry.
Tree listing diff: mode-only changes are not reported · case 02
Making a script executable produces no change entry.
Tree listing diff: mode-only changes are not reported · case 03
Making a script executable produces no change entry.
Tree listing diff: mode-only changes are not reported · case 04
Making a script executable produces no change entry.
Tree listing diff: mode-only changes are not reported · case 05
Making a script executable produces no change entry.
Tree listing diff: entries after the shorter listing ends are ignored · case 01
Files added or deleted at the end of the directory are missing from the diff.
Tree listing diff: entries after the shorter listing ends are ignored · case 02
Files added or deleted at the end of the directory are missing from the diff.
Tree listing diff: entries after the shorter listing ends are ignored · case 03
Files added or deleted at the end of the directory are missing from the diff.
Tree listing diff: entries after the shorter listing ends are ignored · case 04
Files added or deleted at the end of the directory are missing from the diff.
Tree listing diff: entries after the shorter listing ends are ignored · case 05
Files added or deleted at the end of the directory are missing from the diff.
Hunk function context: the hunk's own first line can be its heading · case 01
A hunk that starts on a definition shows that definition instead of the enclosing one.
Hunk function context: the hunk's own first line can be its heading · case 02
A hunk that starts on a definition shows that definition instead of the enclosing one.
Hunk function context: the hunk's own first line can be its heading · case 03
A hunk that starts on a definition shows that definition instead of the enclosing one.
Hunk function context: the hunk's own first line can be its heading · case 04
A hunk that starts on a definition shows that definition instead of the enclosing one.
Hunk function context: the hunk's own first line can be its heading · case 05
A hunk that starts on a definition shows that definition instead of the enclosing one.
Hunk function context: indented statements are taken as headings · case 01
The header shows a statement inside the function instead of the function signature.
Hunk function context: indented statements are taken as headings · case 02
The header shows a statement inside the function instead of the function signature.
Hunk function context: indented statements are taken as headings · case 03
The header shows a statement inside the function instead of the function signature.
Hunk function context: indented statements are taken as headings · case 04
The header shows a statement inside the function instead of the function signature.
Hunk function context: indented statements are taken as headings · case 05
The header shows a statement inside the function instead of the function signature.
Hunk function context: long headings are not truncated · case 01
Very long signatures overflow the hunk header.
Hunk function context: long headings are not truncated · case 02
Very long signatures overflow the hunk header.
Hunk function context: long headings are not truncated · case 03
Very long signatures overflow the hunk header.
Hunk function context: long headings are not truncated · case 04
Very long signatures overflow the hunk header.
Hunk function context: long headings are not truncated · case 05
Very long signatures overflow the hunk header.
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 ↗