FAILURE MAP
← Case archive

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

Evenly spaced increase row: trailing increase · case 01

A round of 8 increases only adds 7 stitches.

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

ROOT CAUSE

The final m1 is dropped for rounds as well as flat rows.

VERIFIED REPAIR

Drop the trailing m1 only for flat rows.

Unsuccessful approach: Dropping it only in the round leaves an edge increase on flat rows.

Case contract

Distribute increases (m1) evenly over stitches. Flat rows use increases+1 segments with no increase at the edges; rounds use `increases` segments each followed by m1. Segment length is stitches // segments; the remainder adds one stitch to segments in order: rounds from the start, flat rows alternating from the outside in (first, last, second, second-last...). Segments must hold at least one stitch, else "error: too many increases". 0 increases -> "k<n>"; negative counts or no stitches -> "error: counts". Output "k4, m1, k5, ...".

Why this case matters

Yoke, cuff-to-body and hem transitions ask knitters to increase evenly across a row.

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(stitches, increases, flat):
    if stitches <= 0 or increases < 0:
        return 'error: counts'
    if increases == 0:
        return 'k%d' % stitches
    segs = increases + 1 if flat else increases
    if segs > stitches:
        return 'error: too many increases'
    base, extra = divmod(stitches, segs)
    lens = [base] * segs
    if flat:
        order = []
        i, j = 0, segs - 1
        while i <= j:
            order.append(i)
            if i != j:
                order.append(j)
            i += 1
            j -= 1
    else:
        order = list(range(segs))
    for idx in order[:extra]:
        lens[idx] += 1
    parts = []
    for n in lens:
        parts.append('k%d' % n)
        parts.append('m1')
    parts.pop()
    return ', '.join(parts)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['no increases', [17, 0, True], 'k17'],
  ['regression: trailing increase', [40, 7, False], 'k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1'],
  ['repair check: trailing increase', [61, 10, False],
   'k7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1'],
  ['generated control 1', [17, 0, False], 'k17'],
  ['generated control 2', [10, 10, True], 'error: too many increases'],
  ['generated control 3', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1']],
 [['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['no increases', [17, 0, True], 'k17'],
  ['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['regression: trailing increase', [23, 5, False], 'k5, m1, k5, m1, k5, m1, k4, m1, k4, m1'],
  ['repair check: trailing increase', [72, 3, False], 'k24, m1, k24, m1, k24, m1'],
  ['generated control 1', [72, 8, True],
   'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8'],
  ['generated control 2', [23, 7, False], 'k4, m1, k4, m1, k3, m1, k3, m1, k3, m1, k3, m1, k3, m1'],
  ['generated control 3', [48, 10, False],
   'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k4, m1, k4, m1']],
 [['no increases', [17, 0, True], 'k17'],
  ['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['regression: trailing increase', [17, 16, False],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, '
   'k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [10, 1, True], 'k5, m1, k5'],
  ['generated control 1', [9, 4, True], 'k2, m1, k2, m1, k1, m1, k2, m1, k2'],
  ['generated control 2', [9, 2, False], 'k5, m1, k4, m1'],
  ['generated control 3', [17, 10, True],
   'k2, m1, k2, m1, k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k2, m1, k2, m1, k2']],
 [['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['regression: trailing increase', [10, 10, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [72, 3, True], 'k18, m1, k18, m1, k18, m1, k18'],
  ['generated control 1', [6, 8, True], 'error: too many increases'],
  ['generated control 2', [61, 9, False],
   'k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k6, m1, k6, m1'],
  ['generated control 3', [9, 2, False], 'k5, m1, k4, m1']],
 [['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['regression: trailing increase', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [48, 3, True], 'k12, m1, k12, m1, k12, m1, k12'],
  ['generated control 1', [6, 4, True], 'k2, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['generated control 2', [40, 5, False], 'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1'],
  ['generated control 3', [9, 10, True], 'error: too many increases']]]
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
round even splitk5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1Failed
flat with remainderk6, m1, k6, m1, k5, m1, k6k6, m1, k6, m1, k5, m1, k6Passed
no increasesk17k17Passed
regression: trailing increasek6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1Failed
repair check: trailing increasek7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6k7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1Failed
generated control 1k17k17Passed
generated control 2error: too many increaseserror: too many increasesPassed
generated control 3k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1Failed

SHA-256 / d1f0ada01a46052e2ed52d704514954392f2008cc620a5449577b1941c806688

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(stitches, increases, flat):
    if stitches <= 0 or increases < 0:
        return 'error: counts'
    if increases == 0:
        return 'k%d' % stitches
    segs = increases + 1 if flat else increases
    if segs > stitches:
        return 'error: too many increases'
    base, extra = divmod(stitches, segs)
    lens = [base] * segs
    if flat:
        order = []
        i, j = 0, segs - 1
        while i <= j:
            order.append(i)
            if i != j:
                order.append(j)
            i += 1
            j -= 1
    else:
        order = list(range(segs))
    for idx in order[:extra]:
        lens[idx] += 1
    parts = []
    for n in lens:
        parts.append('k%d' % n)
        parts.append('m1')
    if not flat:
        parts.pop()
    return ', '.join(parts)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['no increases', [17, 0, True], 'k17'],
  ['regression: trailing increase', [40, 7, False], 'k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1'],
  ['repair check: trailing increase', [61, 10, False],
   'k7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1'],
  ['generated control 1', [17, 0, False], 'k17'],
  ['generated control 2', [10, 10, True], 'error: too many increases'],
  ['generated control 3', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1']],
 [['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['no increases', [17, 0, True], 'k17'],
  ['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['regression: trailing increase', [23, 5, False], 'k5, m1, k5, m1, k5, m1, k4, m1, k4, m1'],
  ['repair check: trailing increase', [72, 3, False], 'k24, m1, k24, m1, k24, m1'],
  ['generated control 1', [72, 8, True],
   'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8'],
  ['generated control 2', [23, 7, False], 'k4, m1, k4, m1, k3, m1, k3, m1, k3, m1, k3, m1, k3, m1'],
  ['generated control 3', [48, 10, False],
   'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k4, m1, k4, m1']],
 [['no increases', [17, 0, True], 'k17'],
  ['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['regression: trailing increase', [17, 16, False],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, '
   'k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [10, 1, True], 'k5, m1, k5'],
  ['generated control 1', [9, 4, True], 'k2, m1, k2, m1, k1, m1, k2, m1, k2'],
  ['generated control 2', [9, 2, False], 'k5, m1, k4, m1'],
  ['generated control 3', [17, 10, True],
   'k2, m1, k2, m1, k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k2, m1, k2, m1, k2']],
 [['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['regression: trailing increase', [10, 10, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [72, 3, True], 'k18, m1, k18, m1, k18, m1, k18'],
  ['generated control 1', [6, 8, True], 'error: too many increases'],
  ['generated control 2', [61, 9, False],
   'k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k6, m1, k6, m1'],
  ['generated control 3', [9, 2, False], 'k5, m1, k4, m1']],
 [['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['regression: trailing increase', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [48, 3, True], 'k12, m1, k12, m1, k12, m1, k12'],
  ['generated control 1', [6, 4, True], 'k2, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['generated control 2', [40, 5, False], 'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1'],
  ['generated control 3', [9, 10, True], 'error: too many increases']]]
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
round even splitk5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1Failed
flat with remainderk6, m1, k6, m1, k5, m1, k6, m1k6, m1, k6, m1, k5, m1, k6Failed
no increasesk17k17Passed
regression: trailing increasek6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1Failed
repair check: trailing increasek7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6k7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1Failed
generated control 1k17k17Passed
generated control 2error: too many increaseserror: too many increasesPassed
generated control 3k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1Failed

SHA-256 / 66c8d062e71809850133b0530c359ede457db50e32a4f6686ddf525b8fe30232

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(stitches, increases, flat):
    if stitches <= 0 or increases < 0:
        return 'error: counts'
    if increases == 0:
        return 'k%d' % stitches
    segs = increases + 1 if flat else increases
    if segs > stitches:
        return 'error: too many increases'
    base, extra = divmod(stitches, segs)
    lens = [base] * segs
    if flat:
        order = []
        i, j = 0, segs - 1
        while i <= j:
            order.append(i)
            if i != j:
                order.append(j)
            i += 1
            j -= 1
    else:
        order = list(range(segs))
    for idx in order[:extra]:
        lens[idx] += 1
    parts = []
    for n in lens:
        parts.append('k%d' % n)
        parts.append('m1')
    if flat:
        parts.pop()
    return ', '.join(parts)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['no increases', [17, 0, True], 'k17'],
  ['regression: trailing increase', [40, 7, False], 'k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1'],
  ['repair check: trailing increase', [61, 10, False],
   'k7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1'],
  ['generated control 1', [17, 0, False], 'k17'],
  ['generated control 2', [10, 10, True], 'error: too many increases'],
  ['generated control 3', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1']],
 [['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['no increases', [17, 0, True], 'k17'],
  ['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['regression: trailing increase', [23, 5, False], 'k5, m1, k5, m1, k5, m1, k4, m1, k4, m1'],
  ['repair check: trailing increase', [72, 3, False], 'k24, m1, k24, m1, k24, m1'],
  ['generated control 1', [72, 8, True],
   'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k8'],
  ['generated control 2', [23, 7, False], 'k4, m1, k4, m1, k3, m1, k3, m1, k3, m1, k3, m1, k3, m1'],
  ['generated control 3', [48, 10, False],
   'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k4, m1, k4, m1']],
 [['no increases', [17, 0, True], 'k17'],
  ['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['regression: trailing increase', [17, 16, False],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, '
   'k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [10, 1, True], 'k5, m1, k5'],
  ['generated control 1', [9, 4, True], 'k2, m1, k2, m1, k1, m1, k2, m1, k2'],
  ['generated control 2', [9, 2, False], 'k5, m1, k4, m1'],
  ['generated control 3', [17, 10, True],
   'k2, m1, k2, m1, k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k2, m1, k2, m1, k2']],
 [['flat maximum', [10, 9, True],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['regression: trailing increase', [10, 10, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [72, 3, True], 'k18, m1, k18, m1, k18, m1, k18'],
  ['generated control 1', [6, 8, True], 'error: too many increases'],
  ['generated control 2', [61, 9, False],
   'k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k6, m1, k6, m1'],
  ['generated control 3', [9, 2, False], 'k5, m1, k4, m1']],
 [['flat over maximum', [10, 10, True], 'error: too many increases'],
  ['round even split', [40, 8, False], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1'],
  ['flat with remainder', [23, 3, True], 'k6, m1, k6, m1, k5, m1, k6'],
  ['regression: trailing increase', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['repair check: trailing increase', [48, 3, True], 'k12, m1, k12, m1, k12, m1, k12'],
  ['generated control 1', [6, 4, True], 'k2, m1, k1, m1, k1, m1, k1, m1, k1'],
  ['generated control 2', [40, 5, False], 'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1'],
  ['generated control 3', [9, 10, True], 'error: too many increases']]]
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
round even splitk5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1Passed
flat with remainderk6, m1, k6, m1, k5, m1, k6k6, m1, k6, m1, k5, m1, k6Passed
no increasesk17k17Passed
regression: trailing increasek6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1Passed
repair check: trailing increasek7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1k7, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k6, m1Passed
generated control 1k17k17Passed
generated control 2error: too many increaseserror: too many increasesPassed
generated control 3k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1Passed

SHA-256 / 8a5fddc262290a013bf1ba737a0d6bf41c30d12a2717a7f153bdf07eef0f82fb

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

Case digest / a0e960e6e647a750256cb46f9f98f104db8953348c847f3f1b3d012bdb16e68b