FAILURE MAP
← Case archive

FA-97561 / Knitting and sewing pattern grading / Open access

Seam and hem allowance cutter: unfolded fabric area · case 01

Fold pieces consume half the fabric in the estimate.

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

ROOT CAUSE

The fabric area uses the folded half-piece.

VERIFIED REPAIR

Count fold pieces at twice the cut width.

Unsuccessful approach: Removing allowance at the fold double-counts the fold saving.

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 / 2 + S if fold else W + 2 * S
        ch = Hh + S + (H if hemmed else S)
        out.append([name, float(cw), float(ch)])
        area += 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: unfolded fabric area', [[['front0', 25, 15, True, False]], 1, 4],
   [[['front0', 13.5, 17.0]], 459]],
  ['repair check: unfolded fabric area',
   [[['back0', 30.5, 55, False, False], ['facing1', 25, 40, True, False]], 2, 3],
   [[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 3312]],
  ['generated control 1',
   [[['facing0', 0, 15, False, True], ['sleeve1', 30.5, 0, True, False], ['front2', 0, 55, False, True]], 1.6,
    2.5],
   'error: piece'],
  ['generated control 2', [[['yoke0', 0, 55, False, False], ['back1', 50, 55, True, True]], 1.5, 4],
   'error: piece'],
  ['generated control 3', [[['front0', 42, 15, False, False], ['sleeve1', 50, 0, False, False]], 1, 3],
   '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: unfolded fabric area', [[['yoke0', 20, 15, True, False]], 1.6, 4],
   [[['yoke0', 11.6, 18.2]], 422]],
  ['repair check: unfolded fabric area',
   [[['back0', 30.5, 55, False, True], ['facing1', 42, 62.5, False, False], ['front2', 25, 15, True, False]],
    1.5, 2.5],
   [[['back0', 33.5, 59.0], ['facing1', 45.0, 65.5], ['front2', 14.0, 18.0]], 5428]],
  ['generated control 1', [[['facing0', 42, 40, False, False]], 2, 2.5], [[['facing0', 46.0, 44.0]], 2024]],
  ['generated control 2',
   [[['facing0', 30.5, 62.5, False, True], ['facing1', 20, 0, False, False],
     ['back2', 50, 62.5, False, True]],
    2, 2.5],
   'error: piece'],
  ['generated control 3', [[['sleeve0', 20, 40, False, True]], 1, 2.5], [[['sleeve0', 22.0, 43.5]], 957]]],
 [['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: unfolded fabric area',
   [[['front0', 50, 62.5, False, False], ['back1', 20, 15, False, True], ['back2', 25, 62.5, False, True],
     ['facing3', 50, 55, True, False]],
    1.6, 3],
   [[['front0', 53.2, 65.7], ['back1', 23.2, 19.6], ['back2', 28.2, 67.1], ['facing3', 26.6, 58.2]], 8938]],
  ['repair check: unfolded fabric area',
   [[['yoke0', 20, 55, False, False], ['facing1', 50, 15, True, False], ['facing2', 50, 62.5, True, False]],
    2, 2.5],
   [[['yoke0', 24.0, 59.0], ['facing1', 27.0, 19.0], ['facing2', 27.0, 66.5]], 6033]],
  ['generated control 1',
   [[['facing0', 0, 62.5, True, True], ['facing1', 50, 40, True, False], ['back2', 30.5, 0, False, True],
     ['yoke3', 50, 40, True, False]],
    1, 4],
   'error: piece'],
  ['generated control 2', [[['facing0', 0, 15, False, True], ['yoke1', 42, 55, False, False]], 1.5, 2.5],
   'error: piece'],
  ['generated control 3', [[['front0', 50, 62.5, False, True], ['facing1', 30.5, 0, False, False]], 1.5, 2.5],
   '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: unfolded fabric area',
   [[['facing0', 20, 15, True, False], ['yoke1', 20, 55, True, True], ['yoke2', 30.5, 62.5, False, False],
     ['yoke3', 50, 40, True, False]],
    2, 2.5],
   [[['facing0', 12.0, 19.0], ['yoke1', 12.0, 59.5], ['yoke2', 34.5, 66.5], ['yoke3', 27.0, 44.0]], 6554]],
  ['repair check: unfolded fabric area',
   [[['front0', 30.5, 40, False, False], ['facing1', 25, 55, False, True], ['back2', 25, 15, True, True],
     ['facing3', 25, 40, True, False]],
    1.5, 4],
   [[['front0', 33.5, 43.0], ['facing1', 28.0, 60.5], ['back2', 14.0, 20.5], ['facing3', 14.0, 43.0]], 4913]],
  ['generated control 1',
   [[['front0', 20, 0, True, True], ['back1', 42, 40, False, True], ['facing2', 42, 55, False, True],
     ['front3', 20, 55, False, True]],
    1, 4],
   'error: piece'],
  ['generated control 2',
   [[['facing0', 50, 0, True, True], ['front1', 42, 40, False, True], ['yoke2', 30.5, 62.5, True, False]], 1,
    3],
   'error: piece'],
  ['generated control 3', [[['facing0', 0, 15, True, True], ['facing1', 42, 0, True, True]], 1.6, 3],
   '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: unfolded fabric area',
   [[['yoke0', 30.5, 15, True, False], ['sleeve1', 50, 15, True, True]], 1, 3],
   [[['yoke0', 16.25, 17.0], ['sleeve1', 26.0, 19.0]], 1541]],
  ['repair check: unfolded fabric area', [[['yoke0', 50, 62.5, True, True]], 1.5, 4],
   [[['yoke0', 26.5, 68.0]], 3604]],
  ['generated control 1', [[['yoke0', 25, 62.5, True, False], ['back1', 0, 0, True, False]], 1.6, 4],
   'error: piece'],
  ['generated control 2',
   [[['front0', 50, 0, True, False], ['sleeve1', 50, 62.5, False, True], ['facing2', 42, 0, False, False],
     ['front3', 0, 62.5, False, True]],
    2, 4],
   'error: piece'],
  ['generated control 3', [[['sleeve0', 0, 15, True, False], ['sleeve1', 50, 40, False, True]], 2, 3],
   '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]], 1305][[['front', 22.5, 58.0]], 2610]Failed
zero widtherror: pieceerror: piecePassed
regression: unfolded fabric area[[['front0', 13.5, 17.0]], 230][[['front0', 13.5, 17.0]], 459]Failed
repair check: unfolded fabric area[[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 2674][[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 3312]Failed
generated control 1error: pieceerror: piecePassed
generated control 2error: pieceerror: piecePassed
generated control 3error: pieceerror: piecePassed

SHA-256 / dd27c35861a2043ff5206fee2467307e90c55f0957ba45d51395e5da8196f6e7

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 / 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 - 2 * S 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: unfolded fabric area', [[['front0', 25, 15, True, False]], 1, 4],
   [[['front0', 13.5, 17.0]], 459]],
  ['repair check: unfolded fabric area',
   [[['back0', 30.5, 55, False, False], ['facing1', 25, 40, True, False]], 2, 3],
   [[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 3312]],
  ['generated control 1',
   [[['facing0', 0, 15, False, True], ['sleeve1', 30.5, 0, True, False], ['front2', 0, 55, False, True]], 1.6,
    2.5],
   'error: piece'],
  ['generated control 2', [[['yoke0', 0, 55, False, False], ['back1', 50, 55, True, True]], 1.5, 4],
   'error: piece'],
  ['generated control 3', [[['front0', 42, 15, False, False], ['sleeve1', 50, 0, False, False]], 1, 3],
   '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: unfolded fabric area', [[['yoke0', 20, 15, True, False]], 1.6, 4],
   [[['yoke0', 11.6, 18.2]], 422]],
  ['repair check: unfolded fabric area',
   [[['back0', 30.5, 55, False, True], ['facing1', 42, 62.5, False, False], ['front2', 25, 15, True, False]],
    1.5, 2.5],
   [[['back0', 33.5, 59.0], ['facing1', 45.0, 65.5], ['front2', 14.0, 18.0]], 5428]],
  ['generated control 1', [[['facing0', 42, 40, False, False]], 2, 2.5], [[['facing0', 46.0, 44.0]], 2024]],
  ['generated control 2',
   [[['facing0', 30.5, 62.5, False, True], ['facing1', 20, 0, False, False],
     ['back2', 50, 62.5, False, True]],
    2, 2.5],
   'error: piece'],
  ['generated control 3', [[['sleeve0', 20, 40, False, True]], 1, 2.5], [[['sleeve0', 22.0, 43.5]], 957]]],
 [['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: unfolded fabric area',
   [[['front0', 50, 62.5, False, False], ['back1', 20, 15, False, True], ['back2', 25, 62.5, False, True],
     ['facing3', 50, 55, True, False]],
    1.6, 3],
   [[['front0', 53.2, 65.7], ['back1', 23.2, 19.6], ['back2', 28.2, 67.1], ['facing3', 26.6, 58.2]], 8938]],
  ['repair check: unfolded fabric area',
   [[['yoke0', 20, 55, False, False], ['facing1', 50, 15, True, False], ['facing2', 50, 62.5, True, False]],
    2, 2.5],
   [[['yoke0', 24.0, 59.0], ['facing1', 27.0, 19.0], ['facing2', 27.0, 66.5]], 6033]],
  ['generated control 1',
   [[['facing0', 0, 62.5, True, True], ['facing1', 50, 40, True, False], ['back2', 30.5, 0, False, True],
     ['yoke3', 50, 40, True, False]],
    1, 4],
   'error: piece'],
  ['generated control 2', [[['facing0', 0, 15, False, True], ['yoke1', 42, 55, False, False]], 1.5, 2.5],
   'error: piece'],
  ['generated control 3', [[['front0', 50, 62.5, False, True], ['facing1', 30.5, 0, False, False]], 1.5, 2.5],
   '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: unfolded fabric area',
   [[['facing0', 20, 15, True, False], ['yoke1', 20, 55, True, True], ['yoke2', 30.5, 62.5, False, False],
     ['yoke3', 50, 40, True, False]],
    2, 2.5],
   [[['facing0', 12.0, 19.0], ['yoke1', 12.0, 59.5], ['yoke2', 34.5, 66.5], ['yoke3', 27.0, 44.0]], 6554]],
  ['repair check: unfolded fabric area',
   [[['front0', 30.5, 40, False, False], ['facing1', 25, 55, False, True], ['back2', 25, 15, True, True],
     ['facing3', 25, 40, True, False]],
    1.5, 4],
   [[['front0', 33.5, 43.0], ['facing1', 28.0, 60.5], ['back2', 14.0, 20.5], ['facing3', 14.0, 43.0]], 4913]],
  ['generated control 1',
   [[['front0', 20, 0, True, True], ['back1', 42, 40, False, True], ['facing2', 42, 55, False, True],
     ['front3', 20, 55, False, True]],
    1, 4],
   'error: piece'],
  ['generated control 2',
   [[['facing0', 50, 0, True, True], ['front1', 42, 40, False, True], ['yoke2', 30.5, 62.5, True, False]], 1,
    3],
   'error: piece'],
  ['generated control 3', [[['facing0', 0, 15, True, True], ['facing1', 42, 0, True, True]], 1.6, 3],
   '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: unfolded fabric area',
   [[['yoke0', 30.5, 15, True, False], ['sleeve1', 50, 15, True, True]], 1, 3],
   [[['yoke0', 16.25, 17.0], ['sleeve1', 26.0, 19.0]], 1541]],
  ['repair check: unfolded fabric area', [[['yoke0', 50, 62.5, True, True]], 1.5, 4],
   [[['yoke0', 26.5, 68.0]], 3604]],
  ['generated control 1', [[['yoke0', 25, 62.5, True, False], ['back1', 0, 0, True, False]], 1.6, 4],
   'error: piece'],
  ['generated control 2',
   [[['front0', 50, 0, True, False], ['sleeve1', 50, 62.5, False, True], ['facing2', 42, 0, False, False],
     ['front3', 0, 62.5, False, True]],
    2, 4],
   'error: piece'],
  ['generated control 3', [[['sleeve0', 0, 15, True, False], ['sleeve1', 50, 40, False, True]], 2, 3],
   '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]], 2436][[['front', 22.5, 58.0]], 2610]Failed
zero widtherror: pieceerror: piecePassed
regression: unfolded fabric area[[['front0', 13.5, 17.0]], 425][[['front0', 13.5, 17.0]], 459]Failed
repair check: unfolded fabric area[[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 3136][[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 3312]Failed
generated control 1error: pieceerror: piecePassed
generated control 2error: pieceerror: piecePassed
generated control 3error: pieceerror: piecePassed

SHA-256 / 9a34d56a66f0d7a34b6136adcd19422a5bf215ece70b637eeac9332add55a810

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: unfolded fabric area', [[['front0', 25, 15, True, False]], 1, 4],
   [[['front0', 13.5, 17.0]], 459]],
  ['repair check: unfolded fabric area',
   [[['back0', 30.5, 55, False, False], ['facing1', 25, 40, True, False]], 2, 3],
   [[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 3312]],
  ['generated control 1',
   [[['facing0', 0, 15, False, True], ['sleeve1', 30.5, 0, True, False], ['front2', 0, 55, False, True]], 1.6,
    2.5],
   'error: piece'],
  ['generated control 2', [[['yoke0', 0, 55, False, False], ['back1', 50, 55, True, True]], 1.5, 4],
   'error: piece'],
  ['generated control 3', [[['front0', 42, 15, False, False], ['sleeve1', 50, 0, False, False]], 1, 3],
   '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: unfolded fabric area', [[['yoke0', 20, 15, True, False]], 1.6, 4],
   [[['yoke0', 11.6, 18.2]], 422]],
  ['repair check: unfolded fabric area',
   [[['back0', 30.5, 55, False, True], ['facing1', 42, 62.5, False, False], ['front2', 25, 15, True, False]],
    1.5, 2.5],
   [[['back0', 33.5, 59.0], ['facing1', 45.0, 65.5], ['front2', 14.0, 18.0]], 5428]],
  ['generated control 1', [[['facing0', 42, 40, False, False]], 2, 2.5], [[['facing0', 46.0, 44.0]], 2024]],
  ['generated control 2',
   [[['facing0', 30.5, 62.5, False, True], ['facing1', 20, 0, False, False],
     ['back2', 50, 62.5, False, True]],
    2, 2.5],
   'error: piece'],
  ['generated control 3', [[['sleeve0', 20, 40, False, True]], 1, 2.5], [[['sleeve0', 22.0, 43.5]], 957]]],
 [['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: unfolded fabric area',
   [[['front0', 50, 62.5, False, False], ['back1', 20, 15, False, True], ['back2', 25, 62.5, False, True],
     ['facing3', 50, 55, True, False]],
    1.6, 3],
   [[['front0', 53.2, 65.7], ['back1', 23.2, 19.6], ['back2', 28.2, 67.1], ['facing3', 26.6, 58.2]], 8938]],
  ['repair check: unfolded fabric area',
   [[['yoke0', 20, 55, False, False], ['facing1', 50, 15, True, False], ['facing2', 50, 62.5, True, False]],
    2, 2.5],
   [[['yoke0', 24.0, 59.0], ['facing1', 27.0, 19.0], ['facing2', 27.0, 66.5]], 6033]],
  ['generated control 1',
   [[['facing0', 0, 62.5, True, True], ['facing1', 50, 40, True, False], ['back2', 30.5, 0, False, True],
     ['yoke3', 50, 40, True, False]],
    1, 4],
   'error: piece'],
  ['generated control 2', [[['facing0', 0, 15, False, True], ['yoke1', 42, 55, False, False]], 1.5, 2.5],
   'error: piece'],
  ['generated control 3', [[['front0', 50, 62.5, False, True], ['facing1', 30.5, 0, False, False]], 1.5, 2.5],
   '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: unfolded fabric area',
   [[['facing0', 20, 15, True, False], ['yoke1', 20, 55, True, True], ['yoke2', 30.5, 62.5, False, False],
     ['yoke3', 50, 40, True, False]],
    2, 2.5],
   [[['facing0', 12.0, 19.0], ['yoke1', 12.0, 59.5], ['yoke2', 34.5, 66.5], ['yoke3', 27.0, 44.0]], 6554]],
  ['repair check: unfolded fabric area',
   [[['front0', 30.5, 40, False, False], ['facing1', 25, 55, False, True], ['back2', 25, 15, True, True],
     ['facing3', 25, 40, True, False]],
    1.5, 4],
   [[['front0', 33.5, 43.0], ['facing1', 28.0, 60.5], ['back2', 14.0, 20.5], ['facing3', 14.0, 43.0]], 4913]],
  ['generated control 1',
   [[['front0', 20, 0, True, True], ['back1', 42, 40, False, True], ['facing2', 42, 55, False, True],
     ['front3', 20, 55, False, True]],
    1, 4],
   'error: piece'],
  ['generated control 2',
   [[['facing0', 50, 0, True, True], ['front1', 42, 40, False, True], ['yoke2', 30.5, 62.5, True, False]], 1,
    3],
   'error: piece'],
  ['generated control 3', [[['facing0', 0, 15, True, True], ['facing1', 42, 0, True, True]], 1.6, 3],
   '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: unfolded fabric area',
   [[['yoke0', 30.5, 15, True, False], ['sleeve1', 50, 15, True, True]], 1, 3],
   [[['yoke0', 16.25, 17.0], ['sleeve1', 26.0, 19.0]], 1541]],
  ['repair check: unfolded fabric area', [[['yoke0', 50, 62.5, True, True]], 1.5, 4],
   [[['yoke0', 26.5, 68.0]], 3604]],
  ['generated control 1', [[['yoke0', 25, 62.5, True, False], ['back1', 0, 0, True, False]], 1.6, 4],
   'error: piece'],
  ['generated control 2',
   [[['front0', 50, 0, True, False], ['sleeve1', 50, 62.5, False, True], ['facing2', 42, 0, False, False],
     ['front3', 0, 62.5, False, True]],
    2, 4],
   'error: piece'],
  ['generated control 3', [[['sleeve0', 0, 15, True, False], ['sleeve1', 50, 40, False, True]], 2, 3],
   '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: unfolded fabric area[[['front0', 13.5, 17.0]], 459][[['front0', 13.5, 17.0]], 459]Passed
repair check: unfolded fabric area[[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 3312][[['back0', 34.5, 59.0], ['facing1', 14.5, 44.0]], 3312]Passed
generated control 1error: pieceerror: piecePassed
generated control 2error: pieceerror: piecePassed
generated control 3error: pieceerror: piecePassed

SHA-256 / 2773a917a870936219719a650bb802306db837fe8484a74acdc4bcc4a8cc5e82

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.423582+00:00.

Case digest / 28b6a82e5546125192293f1b268efbfe81263b9a6730482dafa0c3253899a399