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
Upper-case or out-of-range letters decode to negative coordinates · case 01
Points like "Aa" produce negative rows or columns.
Upper-case or out-of-range letters decode to negative coordinates · case 02
Points like "Aa" produce negative rows or columns.
Upper-case or out-of-range letters decode to negative coordinates · case 03
Points like "Aa" produce negative rows or columns.
Upper-case or out-of-range letters decode to negative coordinates · case 04
Points like "Aa" produce negative rows or columns.
Upper-case or out-of-range letters decode to negative coordinates · case 05
Points like "Aa" produce negative rows or columns.
An empty SGF move value is rejected · case 01
B[] passes become invalid moves.
An empty SGF move value is rejected · case 02
B[] passes become invalid moves.
An empty SGF move value is rejected · case 03
B[] passes become invalid moves.
An empty SGF move value is rejected · case 04
B[] passes become invalid moves.
An empty SGF move value is rejected · case 05
B[] passes become invalid moves.
Half-point margins are truncated to whole points · case 01
W+0.5 is stored as a zero margin win.
Half-point margins are truncated to whole points · case 02
W+0.5 is stored as a zero margin win.
Half-point margins are truncated to whole points · case 03
W+0.5 is stored as a zero margin win.
Half-point margins are truncated to whole points · case 04
W+0.5 is stored as a zero margin win.
Half-point margins are truncated to whole points · case 05
W+0.5 is stored as a zero margin win.
Capitalised resign and time reasons are not recognised · case 01
B+R and W+Resign are reported as unknown results.
Capitalised resign and time reasons are not recognised · case 02
B+R and W+Resign are reported as unknown results.
Capitalised resign and time reasons are not recognised · case 03
B+R and W+Resign are reported as unknown results.
Capitalised resign and time reasons are not recognised · case 04
B+R and W+Resign are reported as unknown results.
Capitalised resign and time reasons are not recognised · case 05
B+R and W+Resign are reported as unknown results.
SGF draw value 0 is not recognised · case 01
Records with RE[0] or RE[Jigo] are classified as unknown.
SGF draw value 0 is not recognised · case 02
Records with RE[0] or RE[Jigo] are classified as unknown.
SGF draw value 0 is not recognised · case 03
Records with RE[0] or RE[Jigo] are classified as unknown.
SGF draw value 0 is not recognised · case 04
Records with RE[0] or RE[Jigo] are classified as unknown.
SGF draw value 0 is not recognised · case 05
Records with RE[0] or RE[Jigo] are classified as unknown.
Void results are not distinguished from malformed values · case 01
RE[Void] (no result, e.g. an annulled game) is reported as unknown.
Void results are not distinguished from malformed values · case 02
RE[Void] (no result, e.g. an annulled game) is reported as unknown.
Void results are not distinguished from malformed values · case 03
RE[Void] (no result, e.g. an annulled game) is reported as unknown.
Void results are not distinguished from malformed values · case 04
RE[Void] (no result, e.g. an annulled game) is reported as unknown.
Void results are not distinguished from malformed values · case 05
RE[Void] (no result, e.g. an annulled game) is reported as unknown.
A winner with no margin is parsed as unknown · case 01
RE[B+] loses the winner.
A winner with no margin is parsed as unknown · case 02
RE[B+] loses the winner.
A winner with no margin is parsed as unknown · case 03
RE[B+] loses the winner.
A winner with no margin is parsed as unknown · case 04
RE[B+] loses the winner.
A winner with no margin is parsed as unknown · case 05
RE[B+] loses the winner.
Group tax is charged per stone instead of per chain · case 01
Large living groups are penalised by their size.
Group tax is charged per stone instead of per chain · case 02
Large living groups are penalised by their size.
Group tax is charged per stone instead of per chain · case 03
Large living groups are penalised by their size.
Group tax is charged per stone instead of per chain · case 04
Large living groups are penalised by their size.
Group tax is charged per stone instead of per chain · case 05
Large living groups are penalised by their size.
Diagonally touching stones are merged into one taxed chain · case 01
Players are under-taxed for diagonal shapes and regions leak diagonally.
Diagonally touching stones are merged into one taxed chain · case 02
Players are under-taxed for diagonal shapes and regions leak diagonally.
Diagonally touching stones are merged into one taxed chain · case 03
Players are under-taxed for diagonal shapes and regions leak diagonally.
Diagonally touching stones are merged into one taxed chain · case 04
Players are under-taxed for diagonal shapes and regions leak diagonally.
Diagonally touching stones are merged into one taxed chain · case 05
Players are under-taxed for diagonal shapes and regions leak diagonally.
Group tax charges one point per chain · case 01
Fragmented positions lose only half the intended penalty.
Group tax charges one point per chain · case 02
Fragmented positions lose only half the intended penalty.
Group tax charges one point per chain · case 03
Fragmented positions lose only half the intended penalty.
Group tax charges one point per chain · case 04
Fragmented positions lose only half the intended penalty.
Group tax charges one point per chain · case 05
Fragmented positions lose only half the intended penalty.
Pass stones are credited to the passing player · case 01
Passing earns the passer a prisoner.
Pass stones are credited to the passing player · case 02
Passing earns the passer a prisoner.
Pass stones are credited to the passing player · case 03
Passing earns the passer a prisoner.
Pass stones are credited to the passing player · case 04
Passing earns the passer a prisoner.
Pass stones are credited to the passing player · case 05
Passing earns the passer a prisoner.
The extra stone depends on the first pass · case 01
White is charged or excused the equalising stone based on who passed first.
The extra stone depends on the first pass · case 02
White is charged or excused the equalising stone based on who passed first.
The extra stone depends on the first pass · case 03
White is charged or excused the equalising stone based on who passed first.
The extra stone depends on the first pass · case 04
White is charged or excused the equalising stone based on who passed first.
The extra stone depends on the first pass · case 05
White is charged or excused the equalising stone based on who passed first.
The equalising stone is credited to white · case 01
Black-last games give white an extra prisoner.
The equalising stone is credited to white · case 02
Black-last games give white an extra prisoner.
The equalising stone is credited to white · case 03
Black-last games give white an extra prisoner.
The equalising stone is credited to white · case 04
Black-last games give white an extra prisoner.
The equalising stone is credited to white · case 05
Black-last games give white an extra prisoner.
A one-stone handicap triggers compensation · case 01
Handicap 1 games give white an extra point.
A one-stone handicap triggers compensation · case 02
Handicap 1 games give white an extra point.
A one-stone handicap triggers compensation · case 03
Handicap 1 games give white an extra point.
A one-stone handicap triggers compensation · case 04
Handicap 1 games give white an extra point.
A one-stone handicap triggers compensation · case 05
Handicap 1 games give white an extra point.
AGA compensation uses the full handicap count · case 01
AGA games are scored like Chinese games.
AGA compensation uses the full handicap count · case 02
AGA games are scored like Chinese games.
AGA compensation uses the full handicap count · case 03
AGA games are scored like Chinese games.
AGA compensation uses the full handicap count · case 04
AGA games are scored like Chinese games.
AGA compensation uses the full handicap count · case 05
AGA games are scored like Chinese games.
Handicap compensation is added to black · case 01
Black margin grows with the handicap.
Handicap compensation is added to black · case 02
Black margin grows with the handicap.
Handicap compensation is added to black · case 03
Black margin grows with the handicap.
Handicap compensation is added to black · case 04
Black margin grows with the handicap.
Handicap compensation is added to black · case 05
Black margin grows with the handicap.
A liberty shared by two stones of a chain hides the atari · case 01
Chains whose only liberty touches two of their stones are not reported.
A liberty shared by two stones of a chain hides the atari · case 02
Chains whose only liberty touches two of their stones are not reported.
A liberty shared by two stones of a chain hides the atari · case 03
Chains whose only liberty touches two of their stones are not reported.
A liberty shared by two stones of a chain hides the atari · case 04
Chains whose only liberty touches two of their stones are not reported.
A liberty shared by two stones of a chain hides the atari · case 05
Chains whose only liberty touches two of their stones are not reported.
Atari report order depends on scan order · case 01
Reports are emitted in row-major discovery order instead of sorted order.
Atari report order depends on scan order · case 02
Reports are emitted in row-major discovery order instead of sorted order.
Atari report order depends on scan order · case 03
Reports are emitted in row-major discovery order instead of sorted order.
Atari report order depends on scan order · case 04
Reports are emitted in row-major discovery order instead of sorted order.
Atari report order depends on scan order · case 05
Reports are emitted in row-major discovery order instead of sorted order.
Diagonal empty points are counted as liberties · case 01
Chains in atari appear to have several liberties.
Diagonal empty points are counted as liberties · case 02
Chains in atari appear to have several liberties.
Diagonal empty points are counted as liberties · case 03
Chains in atari appear to have several liberties.
Diagonal empty points are counted as liberties · case 04
Chains in atari appear to have several liberties.
Diagonal empty points are counted as liberties · case 05
Chains in atari appear to have several liberties.
The board edge counts as liberties · case 01
Edge and corner chains report extra liberties.
The board edge counts as liberties · case 02
Edge and corner chains report extra liberties.
The board edge counts as liberties · case 03
Edge and corner chains report extra liberties.
The board edge counts as liberties · case 04
Edge and corner chains report extra liberties.
The board edge counts as liberties · case 05
Edge and corner chains report extra liberties.
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 ↗