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.
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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] | None | None | Passed |
| control [[], [0, 0], 4] | None | None | Passed |
| control [[7, 8, 9], [1, 1, 0, 1], 5] | None | None | Passed |
| 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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] | None | None | Passed |
| control [[], [0, 0], 4] | None | None | Passed |
| control [[7, 8, 9], [1, 1, 0, 1], 5] | None | None | Passed |
| 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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] | None | None | Passed |
| control [[], [0, 0], 4] | None | None | Passed |
| control [[7, 8, 9], [1, 1, 0, 1], 5] | None | None | Passed |
| 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