FAILURE MAP
← Case archive

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

Evenly spaced increase row: symmetric remainder · case 01

Leftover stitches pile up on the right edge of a flat row, making the increases lopsided.

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

ROOT CAUSE

Remainder stitches go to the first segments instead of alternating from both edges.

VERIFIED REPAIR

Hand out remainder stitches in the outside-in order.

Unsuccessful approach: Taking the tail of the order gives the extra stitches to the centre segments.

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 range(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: symmetric remainder', [72, 9, True],
   'k8, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k8'],
  ['repair check: symmetric remainder', [61, 4, False], 'k16, m1, k15, m1, k15, m1, k15, m1'],
  ['generated control 1', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 2', [17, 1, False], 'k17, m1'],
  ['generated control 3', [40, 7, True], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5']],
 [['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: symmetric remainder', [10, 7, True],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k2'],
  ['repair check: symmetric remainder', [23, 1, True], 'k12, m1, k11'],
  ['generated control 1', [17, 1, False], 'k17, m1'],
  ['generated control 2', [40, 10, True],
   'k4, m1, k4, m1, k4, m1, k4, m1, k3, m1, k3, m1, k3, m1, k3, m1, k4, m1, k4, m1, k4'],
  ['generated control 3', [61, 8, False], 'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k7, m1, k7, m1, k7, 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: symmetric remainder', [48, 8, True],
   'k6, m1, k6, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k6'],
  ['repair check: symmetric remainder', [17, 7, True],
   'k3, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2'],
  ['generated control 1', [17, 10, False],
   'k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 2', [72, 7, True], 'k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9'],
  ['generated control 3', [48, 0, True], 'k48']],
 [['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: symmetric remainder', [9, 4, True], 'k2, m1, k2, m1, k1, m1, k2, m1, k2'],
  ['repair check: symmetric remainder', [9, 8, False],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 1', [6, 1, False], 'k6, m1'],
  ['generated control 2', [10, 3, True], 'k3, m1, k2, m1, k2, m1, k3'],
  ['generated control 3', [23, 2, True], 'k8, m1, k7, m1, k8']],
 [['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: symmetric remainder', [48, 4, True], 'k10, m1, k10, m1, k9, m1, k9, m1, k10'],
  ['repair check: symmetric remainder', [9, 7, False],
   'k2, m1, k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 1', [9, 1, False], 'k9, m1'], ['generated control 2', [40, 0, True], 'k40'],
  ['generated control 3', [40, 7, False], 'k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1']]]
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, k6, m1, k5k6, m1, k6, m1, k5, m1, k6Failed
no increasesk17k17Passed
regression: symmetric remainderk8, m1, k8, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7k8, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k8Failed
repair check: symmetric remainderk16, m1, k15, m1, k15, m1, k15, m1k16, m1, k15, m1, k15, m1, k15, m1Passed
generated control 1k1, 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
generated control 2k17, m1k17, m1Passed
generated control 3k5, 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, k5Passed

SHA-256 / 3795b2506542f5207d3ca3042e936ea4b7871519a31e6e18f63e9f0e25c43820

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[len(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: symmetric remainder', [72, 9, True],
   'k8, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k8'],
  ['repair check: symmetric remainder', [61, 4, False], 'k16, m1, k15, m1, k15, m1, k15, m1'],
  ['generated control 1', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 2', [17, 1, False], 'k17, m1'],
  ['generated control 3', [40, 7, True], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5']],
 [['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: symmetric remainder', [10, 7, True],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k2'],
  ['repair check: symmetric remainder', [23, 1, True], 'k12, m1, k11'],
  ['generated control 1', [17, 1, False], 'k17, m1'],
  ['generated control 2', [40, 10, True],
   'k4, m1, k4, m1, k4, m1, k4, m1, k3, m1, k3, m1, k3, m1, k3, m1, k4, m1, k4, m1, k4'],
  ['generated control 3', [61, 8, False], 'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k7, m1, k7, m1, k7, 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: symmetric remainder', [48, 8, True],
   'k6, m1, k6, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k6'],
  ['repair check: symmetric remainder', [17, 7, True],
   'k3, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2'],
  ['generated control 1', [17, 10, False],
   'k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 2', [72, 7, True], 'k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9'],
  ['generated control 3', [48, 0, True], 'k48']],
 [['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: symmetric remainder', [9, 4, True], 'k2, m1, k2, m1, k1, m1, k2, m1, k2'],
  ['repair check: symmetric remainder', [9, 8, False],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 1', [6, 1, False], 'k6, m1'],
  ['generated control 2', [10, 3, True], 'k3, m1, k2, m1, k2, m1, k3'],
  ['generated control 3', [23, 2, True], 'k8, m1, k7, m1, k8']],
 [['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: symmetric remainder', [48, 4, True], 'k10, m1, k10, m1, k9, m1, k9, m1, k10'],
  ['repair check: symmetric remainder', [9, 7, False],
   'k2, m1, k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 1', [9, 1, False], 'k9, m1'], ['generated control 2', [40, 0, True], 'k40'],
  ['generated control 3', [40, 7, False], 'k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1']]]
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 remainderk5, m1, k6, m1, k6, m1, k6k6, m1, k6, m1, k5, m1, k6Failed
no increasesk17k17Passed
regression: symmetric remainderk7, m1, k7, m1, k7, m1, k7, m1, k8, m1, k8, m1, k7, m1, k7, m1, k7, m1, k7k8, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k8Failed
repair check: symmetric remainderk15, m1, k15, m1, k15, m1, k16, m1k16, m1, k15, m1, k15, m1, k15, m1Failed
generated control 1k1, 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
generated control 2k17, m1k17, m1Passed
generated control 3k5, 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, k5Passed

SHA-256 / 79c2c6c56e26ae8c2bf49c9fea66412cacf67b83e9fd80ef273f1dc15e07990b

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: symmetric remainder', [72, 9, True],
   'k8, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k8'],
  ['repair check: symmetric remainder', [61, 4, False], 'k16, m1, k15, m1, k15, m1, k15, m1'],
  ['generated control 1', [9, 9, False],
   'k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 2', [17, 1, False], 'k17, m1'],
  ['generated control 3', [40, 7, True], 'k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5']],
 [['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: symmetric remainder', [10, 7, True],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k2'],
  ['repair check: symmetric remainder', [23, 1, True], 'k12, m1, k11'],
  ['generated control 1', [17, 1, False], 'k17, m1'],
  ['generated control 2', [40, 10, True],
   'k4, m1, k4, m1, k4, m1, k4, m1, k3, m1, k3, m1, k3, m1, k3, m1, k4, m1, k4, m1, k4'],
  ['generated control 3', [61, 8, False], 'k8, m1, k8, m1, k8, m1, k8, m1, k8, m1, k7, m1, k7, m1, k7, 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: symmetric remainder', [48, 8, True],
   'k6, m1, k6, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k5, m1, k6'],
  ['repair check: symmetric remainder', [17, 7, True],
   'k3, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2'],
  ['generated control 1', [17, 10, False],
   'k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k2, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 2', [72, 7, True], 'k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9, m1, k9'],
  ['generated control 3', [48, 0, True], 'k48']],
 [['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: symmetric remainder', [9, 4, True], 'k2, m1, k2, m1, k1, m1, k2, m1, k2'],
  ['repair check: symmetric remainder', [9, 8, False],
   'k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 1', [6, 1, False], 'k6, m1'],
  ['generated control 2', [10, 3, True], 'k3, m1, k2, m1, k2, m1, k3'],
  ['generated control 3', [23, 2, True], 'k8, m1, k7, m1, k8']],
 [['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: symmetric remainder', [48, 4, True], 'k10, m1, k10, m1, k9, m1, k9, m1, k10'],
  ['repair check: symmetric remainder', [9, 7, False],
   'k2, m1, k2, m1, k1, m1, k1, m1, k1, m1, k1, m1, k1, m1'],
  ['generated control 1', [9, 1, False], 'k9, m1'], ['generated control 2', [40, 0, True], 'k40'],
  ['generated control 3', [40, 7, False], 'k6, m1, k6, m1, k6, m1, k6, m1, k6, m1, k5, m1, k5, m1']]]
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: symmetric remainderk8, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k8k8, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k7, m1, k8Passed
repair check: symmetric remainderk16, m1, k15, m1, k15, m1, k15, m1k16, m1, k15, m1, k15, m1, k15, m1Passed
generated control 1k1, 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
generated control 2k17, m1k17, m1Passed
generated control 3k5, 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, k5Passed

SHA-256 / d7929c5bc90d4a49fb8b7b82b46fc13d36acea8f8c249591e63965d8fb10215a

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

Case digest / 263b5b3b2410b24fd9d3d1598efc46ca21cbea59ad8e24093b531580638786fb