FAILURE MAP
← Case archive

FA-72151 / Error-correcting codes / Open access

Depuncturing indexes the pattern by received count · case 01

Soft values are placed at shifted positions after the first punctured bit.

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

ROOT CAUSE

The pattern is indexed with the received-value counter j instead of the mother-stream position k.

VERIFIED REPAIR

Index the puncturing pattern by the mother-stream position.

Unsuccessful approach: Advancing the pattern one step ahead of k shifts every decision by one.

Case contract

Depuncture a rate-matched soft stream: the mother-code stream of length total was punctured with a cyclic 0/1 pattern starting at pattern phase 0 for every block. Reinsert LLR 0 at punctured positions and place received values at kept positions. If the number of received values differs from the number of kept positions, or the pattern keeps nothing, return None. Return the depunctured list.

Why this case matters

Rate-compatible punctured convolutional and turbo codes need exact depuncturing before decoding.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(rx, pattern, total):
    if not pattern or sum(pattern) == 0 or total < 0:
        return None
    kept = sum(pattern) * (total // len(pattern)) + sum(pattern[:total % len(pattern)])
    if kept != len(rx):
        return None
    out, j = [], 0
    for k in range(total):
        if pattern[j % len(pattern)]:
            out.append(rx[j])
            j += 1
        else:
            out.append(0)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]], ['regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6]', [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6], [-1, -3, 0, 1, 4, -3]], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]], ['control [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12]', [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12], [1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]], ['control [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14]', [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14], [1, -1, -1, 0, 6, 2, 4, 0, -1, 1, 4, 0, 6, 6]]], [['regression [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]], ['regression [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12]', [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12], [1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[-3, 2, -3, -1, 4, 2, 1, 6, 6, -5], [1, 1, 0], 14]', [[-3, 2, -3, -1, 4, 2, 1, 6, 6, -5], [1, 1, 0], 14], [-3, 2, 0, -3, -1, 0, 4, 2, 0, 1, 6, 0, 6, -5]], ['control [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12]', [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12], [-5, -3, 0, -1, 6, 0, -3, -5, 0, -5, -3, 0]], ['control [[1, 2], [1, 1, 0], 3]', [[1, 2], [1, 1, 0], 3], [1, 2, 0]]], [['regression [[1, 4, 2, 4], [1, 0], 7]', [[1, 4, 2, 4], [1, 0], 7], [1, 0, 4, 0, 2, 0, 4]], ['regression [[6, 2, -1], [1, 0], 5]', [[6, 2, -1], [1, 0], 5], [6, 0, 2, 0, -1]], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[4], [1, 0, 0], 2]', [[4], [1, 0, 0], 2], [4, 0]], ['control [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['control [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]]], [['regression [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12]', [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12], [-5, -3, 0, -1, 6, 0, -3, -5, 0, -5, -3, 0]], ['regression [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['partial-repair [[1, 2], [1, 1, 0], 3]', [[1, 2], [1, 1, 0], 3], [1, 2, 0]], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10]', [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10], [2, 0, 1, -3, 6, 0, -1, 0, -5, -3]], ['control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]]], [['regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6]', [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6], [-1, -3, 0, 1, 4, -3]], ['regression [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10]', [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10], [2, 0, 1, -3, 6, 0, -1, 0, -5, -3]], ['partial-repair [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['partial-repair [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[6, 2, -1], [1, 0], 5]', [[6, 2, -1], [1, 0], 5], [6, 0, 2, 0, -1]]]]
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
regression [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13][-5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0][-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]Failed
regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6][-1, -3, 0, 0, 0, 0][-1, -3, 0, 1, 4, -3]Failed
control [[1, 2, 3], [1, 1, 0], 3]NoneNonePassed
control [[], [0, 0], 4]NoneNonePassed
control [[7, 8, 9], [1, 1, 0, 1], 5]NoneNonePassed
control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8][-1, 0, 0, 0, 0, 0, 0, 0][-1, 0, 4, 1, -5, 0, -3, 0]Failed
control [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12][1, -3, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0][1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]Failed
control [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14][1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0][1, -1, -1, 0, 6, 2, 4, 0, -1, 1, 4, 0, 6, 6]Failed

SHA-256 / 87b2176ea09ca1ad128fc0db60ec884782fd1a9419435163876a2e62ca8ffb92

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(rx, pattern, total):
    if not pattern or sum(pattern) == 0 or total < 0:
        return None
    kept = sum(pattern) * (total // len(pattern)) + sum(pattern[:total % len(pattern)])
    if kept != len(rx):
        return None
    out, j = [], 0
    for k in range(total):
        if pattern[(k + 1) % len(pattern)]:
            out.append(rx[j])
            j += 1
        else:
            out.append(0)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]], ['regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6]', [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6], [-1, -3, 0, 1, 4, -3]], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]], ['control [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12]', [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12], [1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]], ['control [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14]', [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14], [1, -1, -1, 0, 6, 2, 4, 0, -1, 1, 4, 0, 6, 6]]], [['regression [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]], ['regression [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12]', [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12], [1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[-3, 2, -3, -1, 4, 2, 1, 6, 6, -5], [1, 1, 0], 14]', [[-3, 2, -3, -1, 4, 2, 1, 6, 6, -5], [1, 1, 0], 14], [-3, 2, 0, -3, -1, 0, 4, 2, 0, 1, 6, 0, 6, -5]], ['control [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12]', [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12], [-5, -3, 0, -1, 6, 0, -3, -5, 0, -5, -3, 0]], ['control [[1, 2], [1, 1, 0], 3]', [[1, 2], [1, 1, 0], 3], [1, 2, 0]]], [['regression [[1, 4, 2, 4], [1, 0], 7]', [[1, 4, 2, 4], [1, 0], 7], [1, 0, 4, 0, 2, 0, 4]], ['regression [[6, 2, -1], [1, 0], 5]', [[6, 2, -1], [1, 0], 5], [6, 0, 2, 0, -1]], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[4], [1, 0, 0], 2]', [[4], [1, 0, 0], 2], [4, 0]], ['control [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['control [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]]], [['regression [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12]', [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12], [-5, -3, 0, -1, 6, 0, -3, -5, 0, -5, -3, 0]], ['regression [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['partial-repair [[1, 2], [1, 1, 0], 3]', [[1, 2], [1, 1, 0], 3], [1, 2, 0]], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10]', [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10], [2, 0, 1, -3, 6, 0, -1, 0, -5, -3]], ['control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]]], [['regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6]', [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6], [-1, -3, 0, 1, 4, -3]], ['regression [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10]', [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10], [2, 0, 1, -3, 6, 0, -1, 0, -5, -3]], ['partial-repair [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['partial-repair [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[6, 2, -1], [1, 0], 5]', [[6, 2, -1], [1, 0], 5], [6, 0, 2, 0, -1]]]]
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
regression [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13][-5, 0, -1, 4, 1, 0, -3, 2, 4, 0, 6, 1, -1][-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]Failed
regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6][-1, 0, -3, 1, 4, 0][-1, -3, 0, 1, 4, -3]Failed
control [[1, 2, 3], [1, 1, 0], 3]NoneNonePassed
control [[], [0, 0], 4]NoneNonePassed
control [[7, 8, 9], [1, 1, 0, 1], 5]NoneNonePassed
control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8][0, -1, 4, 1, 0, -5, 0, -3][-1, 0, 4, 1, -5, 0, -3, 0]Failed
control [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12][1, -3, 0, -5, 2, 2, 0, -1, -3, 2, 0, 4][1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]Failed
control [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14][1, -1, 0, -1, 6, 2, 0, 4, -1, 1, 0, 4, 6, 6][1, -1, -1, 0, 6, 2, 4, 0, -1, 1, 4, 0, 6, 6]Failed

SHA-256 / 10499d8ada905a75ec79480ec996e7406967586a96297aee32d4b872d335ebe5

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(rx, pattern, total):
    if not pattern or sum(pattern) == 0 or total < 0:
        return None
    kept = sum(pattern) * (total // len(pattern)) + sum(pattern[:total % len(pattern)])
    if kept != len(rx):
        return None
    out, j = [], 0
    for k in range(total):
        if pattern[k % len(pattern)]:
            out.append(rx[j])
            j += 1
        else:
            out.append(0)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]], ['regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6]', [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6], [-1, -3, 0, 1, 4, -3]], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]], ['control [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12]', [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12], [1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]], ['control [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14]', [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14], [1, -1, -1, 0, 6, 2, 4, 0, -1, 1, 4, 0, 6, 6]]], [['regression [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]], ['regression [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12]', [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12], [1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[-3, 2, -3, -1, 4, 2, 1, 6, 6, -5], [1, 1, 0], 14]', [[-3, 2, -3, -1, 4, 2, 1, 6, 6, -5], [1, 1, 0], 14], [-3, 2, 0, -3, -1, 0, 4, 2, 0, 1, 6, 0, 6, -5]], ['control [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12]', [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12], [-5, -3, 0, -1, 6, 0, -3, -5, 0, -5, -3, 0]], ['control [[1, 2], [1, 1, 0], 3]', [[1, 2], [1, 1, 0], 3], [1, 2, 0]]], [['regression [[1, 4, 2, 4], [1, 0], 7]', [[1, 4, 2, 4], [1, 0], 7], [1, 0, 4, 0, 2, 0, 4]], ['regression [[6, 2, -1], [1, 0], 5]', [[6, 2, -1], [1, 0], 5], [6, 0, 2, 0, -1]], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[4], [1, 0, 0], 2]', [[4], [1, 0, 0], 2], [4, 0]], ['control [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['control [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]]], [['regression [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12]', [[-5, -3, -1, 6, -3, -5, -5, -3], [1, 1, 0], 12], [-5, -3, 0, -1, 6, 0, -3, -5, 0, -5, -3, 0]], ['regression [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['partial-repair [[1, 2], [1, 1, 0], 3]', [[1, 2], [1, 1, 0], 3], [1, 2, 0]], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10]', [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10], [2, 0, 1, -3, 6, 0, -1, 0, -5, -3]], ['control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8]', [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8], [-1, 0, 4, 1, -5, 0, -3, 0]]], [['regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6]', [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6], [-1, -3, 0, 1, 4, -3]], ['regression [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10]', [[2, 1, -3, 6, -1, -5, -3], [1, 0, 1, 1, 1, 0], 10], [2, 0, 1, -3, 6, 0, -1, 0, -5, -3]], ['partial-repair [[7, 8, 9, 5], [1, 1, 0, 1], 5]', [[7, 8, 9, 5], [1, 1, 0, 1], 5], [7, 8, 0, 9, 5]], ['partial-repair [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13]', [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13], [-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]], ['control [[7, 8, 9], [1, 1, 0, 1], 5]', [[7, 8, 9], [1, 1, 0, 1], 5], None], ['control [[1, 2, 3], [1, 1, 0], 3]', [[1, 2, 3], [1, 1, 0], 3], None], ['control [[], [0, 0], 4]', [[], [0, 0], 4], None], ['control [[6, 2, -1], [1, 0], 5]', [[6, 2, -1], [1, 0], 5], [6, 0, 2, 0, -1]]]]
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
regression [[-5, -1, 4, 1, -3, 2, 4, 6, 1, -1], [1, 1, 0, 1], 13][-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1][-5, -1, 0, 4, 1, -3, 0, 2, 4, 6, 0, 1, -1]Passed
regression [[-1, -3, 1, 4, -3], [1, 1, 0, 1], 6][-1, -3, 0, 1, 4, -3][-1, -3, 0, 1, 4, -3]Passed
control [[1, 2, 3], [1, 1, 0], 3]NoneNonePassed
control [[], [0, 0], 4]NoneNonePassed
control [[7, 8, 9], [1, 1, 0, 1], 5]NoneNonePassed
control [[-1, 4, 1, -5, -3], [1, 0, 1, 1, 1, 0], 8][-1, 0, 4, 1, -5, 0, -3, 0][-1, 0, 4, 1, -5, 0, -3, 0]Passed
control [[1, -3, -5, 2, 2, -1, -3, 2, 4], [1, 1, 1, 0], 12][1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0][1, -3, -5, 0, 2, 2, -1, 0, -3, 2, 4, 0]Passed
control [[1, -1, -1, 6, 2, 4, -1, 1, 4, 6, 6], [1, 1, 1, 0], 14][1, -1, -1, 0, 6, 2, 4, 0, -1, 1, 4, 0, 6, 6][1, -1, -1, 0, 6, 2, 4, 0, -1, 1, 4, 0, 6, 6]Passed

SHA-256 / d46279e3d549463fd43fd675779a552f2160fd7476fc2f13694c39d701898a4f

Verification & scope

A deterministic, bounded teaching model of the named code under the stated contract; not a production codec. 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:48:35.922846+00:00.

Case digest / 573c7a7553ba10a6cbaeb550e17817491112890534ff389c2dd6b0efd9f0bb73