FA-97551 / Knitting and sewing pattern grading / Open access
Seam and hem allowance cutter: fold width · case 01
A place-on-fold bodice is cut at double width.
ROOT CAUSE
The fold piece is cut at the full finished width plus one allowance.
VERIFIED REPAIR
Cut half the finished width plus one allowance.
Unsuccessful approach: Halving the allowance too leaves the side seam short.
Case contract
Pieces [name, finished_w, finished_h, on_fold, hemmed]. Cut width = w/2 + sa when cut on the fold (no allowance on the fold), else w + 2*sa. Cut height = h + sa (top) + (hem if hemmed else sa). Fabric area counts the unfolded piece (2*cut width for fold pieces) * cut height, summed and half-up to cm^2. A non-positive finished dimension -> "error: piece". Return [[name, cut_w, cut_h] floats, area].
Why this case matters
Pattern drafting software adds seam and hem allowances and handles place-on-fold pieces.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(pieces, sa, hem):
S = Fraction(str(sa))
H = Fraction(str(hem))
out = []
area = Fraction(0)
for name, w, h, fold, hemmed in pieces:
W = Fraction(str(w))
Hh = Fraction(str(h))
if W <= 0 or Hh <= 0:
return 'error: piece'
cw = W + S if fold else W + 2 * S
ch = Hh + S + (H if hemmed else S)
out.append([name, float(cw), float(ch)])
area += (2 * cw if fold else cw) * ch
return [out, math.floor(area + Fraction(1, 2))]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['regression: fold width',
[[['facing0', 42, 62.5, True, False], ['back1', 50, 40, False, True], ['facing2', 25, 15, False, True],
['front3', 42, 55, True, True]],
1.5, 4],
[[['facing0', 22.5, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 22.5, 60.5]], 8656]],
['repair check: fold width',
[[['yoke0', 30.5, 40, True, True], ['yoke1', 42, 62.5, False, True]], 1.5, 2.5],
[[['yoke0', 16.75, 44.0], ['yoke1', 45.0, 66.5]], 4467]],
['generated control 1',
[[['back0', 50, 0, False, True], ['sleeve1', 25, 62.5, False, True], ['yoke2', 25, 15, True, False]], 1,
2.5],
'error: piece'],
['generated control 2',
[[['sleeve0', 0, 15, False, True], ['front1', 42, 62.5, False, True], ['back2', 42, 55, False, False],
['front3', 25, 62.5, False, True]],
2, 2.5],
'error: piece'],
['generated control 3',
[[['sleeve0', 0, 55, True, True], ['sleeve1', 30.5, 0, True, False], ['sleeve2', 0, 55, True, True]], 1.6,
4],
'error: piece']],
[['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['regression: fold width', [[['yoke0', 50, 40, True, True], ['sleeve1', 42, 62.5, False, True]], 1.5, 2.5],
[[['yoke0', 26.5, 44.0], ['sleeve1', 45.0, 66.5]], 5325]],
['repair check: fold width', [[['yoke0', 42, 15, True, False]], 1.5, 3], [[['yoke0', 22.5, 18.0]], 810]],
['generated control 1', [[['front0', 20, 40, False, False], ['sleeve1', 50, 15, False, False]], 2, 3],
[[['front0', 24.0, 44.0], ['sleeve1', 54.0, 19.0]], 2082]],
['generated control 2',
[[['facing0', 30.5, 0, True, True], ['back1', 42, 0, True, True], ['back2', 30.5, 55, False, False],
['facing3', 30.5, 62.5, False, True]],
2, 2.5],
'error: piece'],
['generated control 3',
[[['front0', 25, 55, False, False], ['facing1', 50, 62.5, True, True], ['facing2', 0, 55, False, True]],
1.5, 3],
'error: piece']],
[['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['regression: fold width',
[[['facing0', 42, 62.5, False, True], ['back1', 50, 15, True, False], ['sleeve2', 30.5, 40, True, False]],
1.6, 3],
[[['facing0', 45.2, 67.1], ['back1', 26.6, 18.2], ['sleeve2', 16.85, 43.2]], 5457]],
['repair check: fold width', [[['back0', 50, 55, True, False], ['facing1', 50, 55, False, True]], 1.6, 2.5],
[[['back0', 26.6, 58.2], ['facing1', 53.2, 59.1]], 6240]],
['generated control 1',
[[['sleeve0', 30.5, 62.5, False, False], ['facing1', 25, 0, True, True],
['back2', 30.5, 62.5, False, False], ['front3', 0, 62.5, False, False]],
1, 4],
'error: piece'],
['generated control 2', [[['yoke0', 0, 0, True, False]], 1, 3], 'error: piece'],
['generated control 3',
[[['front0', 30.5, 62.5, True, True], ['yoke1', 20, 40, True, True], ['sleeve2', 20, 0, False, True],
['sleeve3', 50, 62.5, False, True]],
1.6, 3],
'error: piece']],
[['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['regression: fold width', [[['front0', 20, 55, True, True]], 2, 3], [[['front0', 12.0, 60.0]], 1440]],
['repair check: fold width', [[['back0', 20, 62.5, True, False]], 1.5, 2.5],
[[['back0', 11.5, 65.5]], 1507]],
['generated control 1',
[[['front0', 20, 15, True, True], ['back1', 30.5, 55, False, True], ['back2', 50, 15, False, True],
['yoke3', 0, 0, True, True]],
1, 4],
'error: piece'],
['generated control 2',
[[['yoke0', 42, 0, True, False], ['front1', 0, 55, False, False], ['front2', 50, 40, False, True],
['back3', 20, 40, True, True]],
1.5, 2.5],
'error: piece'],
['generated control 3',
[[['facing0', 20, 0, True, True], ['yoke1', 20, 62.5, True, True], ['yoke2', 25, 15, False, False],
['facing3', 42, 0, False, True]],
2, 2.5],
'error: piece']],
[['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['regression: fold width', [[['sleeve0', 42, 62.5, True, True]], 2, 3], [[['sleeve0', 23.0, 67.5]], 3105]],
['repair check: fold width', [[['yoke0', 42, 62.5, True, False], ['facing1', 25, 40, False, True]], 1.6, 3],
[[['yoke0', 22.6, 65.7], ['facing1', 28.2, 44.6]], 4227]],
['generated control 1', [[['facing0', 30.5, 0, False, False]], 1.5, 3], 'error: piece'],
['generated control 2',
[[['facing0', 25, 0, True, False], ['sleeve1', 30.5, 62.5, False, True], ['facing2', 0, 40, False, False],
['sleeve3', 30.5, 55, False, False]],
1.5, 4],
'error: piece'],
['generated control 3',
[[['sleeve0', 50, 0, False, True], ['sleeve1', 50, 15, False, False], ['yoke2', 50, 62.5, False, False]],
1.6, 2.5],
'error: piece']]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| plain piece | [[['back', 43.0, 64.5]], 2774] | [[['back', 43.0, 64.5]], 2774] | Passed |
| fold piece | [[['front', 43.5, 58.0]], 5046] | [[['front', 22.5, 58.0]], 2610] | Failed |
| zero width | error: piece | error: piece | Passed |
| regression: fold width | [[['facing0', 43.5, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 43.5, 60.5]], 13948] | [[['facing0', 22.5, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 22.5, 60.5]], 8656] | Failed |
| repair check: fold width | [[['yoke0', 32.0, 44.0], ['yoke1', 45.0, 66.5]], 5809] | [[['yoke0', 16.75, 44.0], ['yoke1', 45.0, 66.5]], 4467] | Failed |
| generated control 1 | error: piece | error: piece | Passed |
| generated control 2 | error: piece | error: piece | Passed |
| generated control 3 | error: piece | error: piece | Passed |
SHA-256 / bd0119adf873d4b7f820987a8a0e2be22ed2231bee26f07389aa47b7ce17f927
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(pieces, sa, hem):
S = Fraction(str(sa))
H = Fraction(str(hem))
out = []
area = Fraction(0)
for name, w, h, fold, hemmed in pieces:
W = Fraction(str(w))
Hh = Fraction(str(h))
if W <= 0 or Hh <= 0:
return 'error: piece'
cw = (W + S) / 2 if fold else W + 2 * S
ch = Hh + S + (H if hemmed else S)
out.append([name, float(cw), float(ch)])
area += (2 * cw if fold else cw) * ch
return [out, math.floor(area + Fraction(1, 2))]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['regression: fold width',
[[['facing0', 42, 62.5, True, False], ['back1', 50, 40, False, True], ['facing2', 25, 15, False, True],
['front3', 42, 55, True, True]],
1.5, 4],
[[['facing0', 22.5, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 22.5, 60.5]], 8656]],
['repair check: fold width',
[[['yoke0', 30.5, 40, True, True], ['yoke1', 42, 62.5, False, True]], 1.5, 2.5],
[[['yoke0', 16.75, 44.0], ['yoke1', 45.0, 66.5]], 4467]],
['generated control 1',
[[['back0', 50, 0, False, True], ['sleeve1', 25, 62.5, False, True], ['yoke2', 25, 15, True, False]], 1,
2.5],
'error: piece'],
['generated control 2',
[[['sleeve0', 0, 15, False, True], ['front1', 42, 62.5, False, True], ['back2', 42, 55, False, False],
['front3', 25, 62.5, False, True]],
2, 2.5],
'error: piece'],
['generated control 3',
[[['sleeve0', 0, 55, True, True], ['sleeve1', 30.5, 0, True, False], ['sleeve2', 0, 55, True, True]], 1.6,
4],
'error: piece']],
[['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['regression: fold width', [[['yoke0', 50, 40, True, True], ['sleeve1', 42, 62.5, False, True]], 1.5, 2.5],
[[['yoke0', 26.5, 44.0], ['sleeve1', 45.0, 66.5]], 5325]],
['repair check: fold width', [[['yoke0', 42, 15, True, False]], 1.5, 3], [[['yoke0', 22.5, 18.0]], 810]],
['generated control 1', [[['front0', 20, 40, False, False], ['sleeve1', 50, 15, False, False]], 2, 3],
[[['front0', 24.0, 44.0], ['sleeve1', 54.0, 19.0]], 2082]],
['generated control 2',
[[['facing0', 30.5, 0, True, True], ['back1', 42, 0, True, True], ['back2', 30.5, 55, False, False],
['facing3', 30.5, 62.5, False, True]],
2, 2.5],
'error: piece'],
['generated control 3',
[[['front0', 25, 55, False, False], ['facing1', 50, 62.5, True, True], ['facing2', 0, 55, False, True]],
1.5, 3],
'error: piece']],
[['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['regression: fold width',
[[['facing0', 42, 62.5, False, True], ['back1', 50, 15, True, False], ['sleeve2', 30.5, 40, True, False]],
1.6, 3],
[[['facing0', 45.2, 67.1], ['back1', 26.6, 18.2], ['sleeve2', 16.85, 43.2]], 5457]],
['repair check: fold width', [[['back0', 50, 55, True, False], ['facing1', 50, 55, False, True]], 1.6, 2.5],
[[['back0', 26.6, 58.2], ['facing1', 53.2, 59.1]], 6240]],
['generated control 1',
[[['sleeve0', 30.5, 62.5, False, False], ['facing1', 25, 0, True, True],
['back2', 30.5, 62.5, False, False], ['front3', 0, 62.5, False, False]],
1, 4],
'error: piece'],
['generated control 2', [[['yoke0', 0, 0, True, False]], 1, 3], 'error: piece'],
['generated control 3',
[[['front0', 30.5, 62.5, True, True], ['yoke1', 20, 40, True, True], ['sleeve2', 20, 0, False, True],
['sleeve3', 50, 62.5, False, True]],
1.6, 3],
'error: piece']],
[['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['regression: fold width', [[['front0', 20, 55, True, True]], 2, 3], [[['front0', 12.0, 60.0]], 1440]],
['repair check: fold width', [[['back0', 20, 62.5, True, False]], 1.5, 2.5],
[[['back0', 11.5, 65.5]], 1507]],
['generated control 1',
[[['front0', 20, 15, True, True], ['back1', 30.5, 55, False, True], ['back2', 50, 15, False, True],
['yoke3', 0, 0, True, True]],
1, 4],
'error: piece'],
['generated control 2',
[[['yoke0', 42, 0, True, False], ['front1', 0, 55, False, False], ['front2', 50, 40, False, True],
['back3', 20, 40, True, True]],
1.5, 2.5],
'error: piece'],
['generated control 3',
[[['facing0', 20, 0, True, True], ['yoke1', 20, 62.5, True, True], ['yoke2', 25, 15, False, False],
['facing3', 42, 0, False, True]],
2, 2.5],
'error: piece']],
[['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['regression: fold width', [[['sleeve0', 42, 62.5, True, True]], 2, 3], [[['sleeve0', 23.0, 67.5]], 3105]],
['repair check: fold width', [[['yoke0', 42, 62.5, True, False], ['facing1', 25, 40, False, True]], 1.6, 3],
[[['yoke0', 22.6, 65.7], ['facing1', 28.2, 44.6]], 4227]],
['generated control 1', [[['facing0', 30.5, 0, False, False]], 1.5, 3], 'error: piece'],
['generated control 2',
[[['facing0', 25, 0, True, False], ['sleeve1', 30.5, 62.5, False, True], ['facing2', 0, 40, False, False],
['sleeve3', 30.5, 55, False, False]],
1.5, 4],
'error: piece'],
['generated control 3',
[[['sleeve0', 50, 0, False, True], ['sleeve1', 50, 15, False, False], ['yoke2', 50, 62.5, False, False]],
1.6, 2.5],
'error: piece']]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| plain piece | [[['back', 43.0, 64.5]], 2774] | [[['back', 43.0, 64.5]], 2774] | Passed |
| fold piece | [[['front', 21.75, 58.0]], 2523] | [[['front', 22.5, 58.0]], 2610] | Failed |
| zero width | error: piece | error: piece | Passed |
| regression: fold width | [[['facing0', 21.75, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 21.75, 60.5]], 8467] | [[['facing0', 22.5, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 22.5, 60.5]], 8656] | Failed |
| repair check: fold width | [[['yoke0', 16.0, 44.0], ['yoke1', 45.0, 66.5]], 4401] | [[['yoke0', 16.75, 44.0], ['yoke1', 45.0, 66.5]], 4467] | Failed |
| generated control 1 | error: piece | error: piece | Passed |
| generated control 2 | error: piece | error: piece | Passed |
| generated control 3 | error: piece | error: piece | Passed |
SHA-256 / c11b5ab74ab14354aa0bcc3ff58e9b8932b794b9fa53bc82e0159caf9282eabf
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(pieces, sa, hem):
S = Fraction(str(sa))
H = Fraction(str(hem))
out = []
area = Fraction(0)
for name, w, h, fold, hemmed in pieces:
W = Fraction(str(w))
Hh = Fraction(str(h))
if W <= 0 or Hh <= 0:
return 'error: piece'
cw = W / 2 + S if fold else W + 2 * S
ch = Hh + S + (H if hemmed else S)
out.append([name, float(cw), float(ch)])
area += (2 * cw if fold else cw) * ch
return [out, math.floor(area + Fraction(1, 2))]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['regression: fold width',
[[['facing0', 42, 62.5, True, False], ['back1', 50, 40, False, True], ['facing2', 25, 15, False, True],
['front3', 42, 55, True, True]],
1.5, 4],
[[['facing0', 22.5, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 22.5, 60.5]], 8656]],
['repair check: fold width',
[[['yoke0', 30.5, 40, True, True], ['yoke1', 42, 62.5, False, True]], 1.5, 2.5],
[[['yoke0', 16.75, 44.0], ['yoke1', 45.0, 66.5]], 4467]],
['generated control 1',
[[['back0', 50, 0, False, True], ['sleeve1', 25, 62.5, False, True], ['yoke2', 25, 15, True, False]], 1,
2.5],
'error: piece'],
['generated control 2',
[[['sleeve0', 0, 15, False, True], ['front1', 42, 62.5, False, True], ['back2', 42, 55, False, False],
['front3', 25, 62.5, False, True]],
2, 2.5],
'error: piece'],
['generated control 3',
[[['sleeve0', 0, 55, True, True], ['sleeve1', 30.5, 0, True, False], ['sleeve2', 0, 55, True, True]], 1.6,
4],
'error: piece']],
[['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['regression: fold width', [[['yoke0', 50, 40, True, True], ['sleeve1', 42, 62.5, False, True]], 1.5, 2.5],
[[['yoke0', 26.5, 44.0], ['sleeve1', 45.0, 66.5]], 5325]],
['repair check: fold width', [[['yoke0', 42, 15, True, False]], 1.5, 3], [[['yoke0', 22.5, 18.0]], 810]],
['generated control 1', [[['front0', 20, 40, False, False], ['sleeve1', 50, 15, False, False]], 2, 3],
[[['front0', 24.0, 44.0], ['sleeve1', 54.0, 19.0]], 2082]],
['generated control 2',
[[['facing0', 30.5, 0, True, True], ['back1', 42, 0, True, True], ['back2', 30.5, 55, False, False],
['facing3', 30.5, 62.5, False, True]],
2, 2.5],
'error: piece'],
['generated control 3',
[[['front0', 25, 55, False, False], ['facing1', 50, 62.5, True, True], ['facing2', 0, 55, False, True]],
1.5, 3],
'error: piece']],
[['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['regression: fold width',
[[['facing0', 42, 62.5, False, True], ['back1', 50, 15, True, False], ['sleeve2', 30.5, 40, True, False]],
1.6, 3],
[[['facing0', 45.2, 67.1], ['back1', 26.6, 18.2], ['sleeve2', 16.85, 43.2]], 5457]],
['repair check: fold width', [[['back0', 50, 55, True, False], ['facing1', 50, 55, False, True]], 1.6, 2.5],
[[['back0', 26.6, 58.2], ['facing1', 53.2, 59.1]], 6240]],
['generated control 1',
[[['sleeve0', 30.5, 62.5, False, False], ['facing1', 25, 0, True, True],
['back2', 30.5, 62.5, False, False], ['front3', 0, 62.5, False, False]],
1, 4],
'error: piece'],
['generated control 2', [[['yoke0', 0, 0, True, False]], 1, 3], 'error: piece'],
['generated control 3',
[[['front0', 30.5, 62.5, True, True], ['yoke1', 20, 40, True, True], ['sleeve2', 20, 0, False, True],
['sleeve3', 50, 62.5, False, True]],
1.6, 3],
'error: piece']],
[['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['regression: fold width', [[['front0', 20, 55, True, True]], 2, 3], [[['front0', 12.0, 60.0]], 1440]],
['repair check: fold width', [[['back0', 20, 62.5, True, False]], 1.5, 2.5],
[[['back0', 11.5, 65.5]], 1507]],
['generated control 1',
[[['front0', 20, 15, True, True], ['back1', 30.5, 55, False, True], ['back2', 50, 15, False, True],
['yoke3', 0, 0, True, True]],
1, 4],
'error: piece'],
['generated control 2',
[[['yoke0', 42, 0, True, False], ['front1', 0, 55, False, False], ['front2', 50, 40, False, True],
['back3', 20, 40, True, True]],
1.5, 2.5],
'error: piece'],
['generated control 3',
[[['facing0', 20, 0, True, True], ['yoke1', 20, 62.5, True, True], ['yoke2', 25, 15, False, False],
['facing3', 42, 0, False, True]],
2, 2.5],
'error: piece']],
[['fold piece', [[['front', 42, 55, True, False]], 1.5, 3], [[['front', 22.5, 58.0]], 2610]],
['zero width', [[['yoke', 0, 10, False, False]], 1, 2], 'error: piece'],
['plain piece', [[['back', 40, 60, False, True]], 1.5, 3], [[['back', 43.0, 64.5]], 2774]],
['regression: fold width', [[['sleeve0', 42, 62.5, True, True]], 2, 3], [[['sleeve0', 23.0, 67.5]], 3105]],
['repair check: fold width', [[['yoke0', 42, 62.5, True, False], ['facing1', 25, 40, False, True]], 1.6, 3],
[[['yoke0', 22.6, 65.7], ['facing1', 28.2, 44.6]], 4227]],
['generated control 1', [[['facing0', 30.5, 0, False, False]], 1.5, 3], 'error: piece'],
['generated control 2',
[[['facing0', 25, 0, True, False], ['sleeve1', 30.5, 62.5, False, True], ['facing2', 0, 40, False, False],
['sleeve3', 30.5, 55, False, False]],
1.5, 4],
'error: piece'],
['generated control 3',
[[['sleeve0', 50, 0, False, True], ['sleeve1', 50, 15, False, False], ['yoke2', 50, 62.5, False, False]],
1.6, 2.5],
'error: piece']]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| plain piece | [[['back', 43.0, 64.5]], 2774] | [[['back', 43.0, 64.5]], 2774] | Passed |
| fold piece | [[['front', 22.5, 58.0]], 2610] | [[['front', 22.5, 58.0]], 2610] | Passed |
| zero width | error: piece | error: piece | Passed |
| regression: fold width | [[['facing0', 22.5, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 22.5, 60.5]], 8656] | [[['facing0', 22.5, 65.5], ['back1', 53.0, 45.5], ['facing2', 28.0, 20.5], ['front3', 22.5, 60.5]], 8656] | Passed |
| repair check: fold width | [[['yoke0', 16.75, 44.0], ['yoke1', 45.0, 66.5]], 4467] | [[['yoke0', 16.75, 44.0], ['yoke1', 45.0, 66.5]], 4467] | Passed |
| generated control 1 | error: piece | error: piece | Passed |
| generated control 2 | error: piece | error: piece | Passed |
| generated control 3 | error: piece | error: piece | Passed |
SHA-256 / 5200cc54e9e7091dfd5df03b9516f0c32d8b668fd7c115411e99a6009ce44bf9
Verification & scope
A deterministic toy contract stated in full here; it is a bounded teaching model, not an authoritative reference or standards implementation. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:52:33.285120+00:00.
Case digest / 5ed7ef57eb29e2c8c281caa61597f37a91b0808878f7b49bb0a8842af5ccf372