FAILURE MAP
← Case archive

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.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

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 fixtureActualExpectedOutcome
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 widtherror: pieceerror: piecePassed
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 1error: pieceerror: piecePassed
generated control 2error: pieceerror: piecePassed
generated control 3error: pieceerror: piecePassed

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 fixtureActualExpectedOutcome
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 widtherror: pieceerror: piecePassed
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 1error: pieceerror: piecePassed
generated control 2error: pieceerror: piecePassed
generated control 3error: pieceerror: piecePassed

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 fixtureActualExpectedOutcome
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 widtherror: pieceerror: piecePassed
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 1error: pieceerror: piecePassed
generated control 2error: pieceerror: piecePassed
generated control 3error: pieceerror: piecePassed

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