FA-72231 / Error-correcting codes / Open access
LLR quantizer floors negative half values · case 01
Negative samples are quantised one step less reliable than positive samples of equal magnitude.
ROOT CAUSE
Rounding is done on the signed value with floor division, so -2.5 becomes -2 while +2.5 becomes 3.
VERIFIED REPAIR
Round the magnitude half away from zero and then restore the sign.
Unsuccessful approach: Taking abs(v + 50) // 100 rounds negative values towards the wrong neighbour.
Case contract
Quantise soft demodulator samples to signed integer LLRs for a hard/soft decoder. Each sample y (integer) is scaled (v = y * scale, in hundredths), rounded to the nearest integer with halves rounded away from zero, and saturated symmetrically to +-(2^(bits-1) - 1). Positive LLR means bit 0, negative bit 1, zero is an erasure (None). Return [llrs, hard decisions].
Why this case matters
Fixed-point receivers quantise LLRs before feeding Viterbi or LDPC decoders; bias at this stage costs coding gain.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(samples, scale, bits):
lim = 2 ** (bits - 1) - 1
llrs, hard = [], []
for y in samples:
v = y * scale
q = abs((v + 50) // 100)
q = min(q, lim)
q = q if v >= 0 else -q
llrs.append(q)
hard.append(None if q == 0 else (0 if q > 0 else 1))
return [llrs, hard]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[329, -1, -98, 396, 80, -221, -227], 3, 5]', [[329, -1, -98, 396, 80, -221, -227], 3, 5], [[10, 0, -3, 12, 2, -7, -7], [0, None, 1, 0, 0, 1, 1]]], ['partial-repair [[-110, -296, 193], 1, 3]', [[-110, -296, 193], 1, 3], [[-1, -3, 2], [1, 1, 0]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]], ['control [[161, 358], 1, 4]', [[161, 358], 1, 4], [[2, 4], [0, 0]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]], ['control [[251, -383, 56, 115, -2], 2, 4]', [[251, -383, 56, 115, -2], 2, 4], [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]]]], [['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['partial-repair [[-325, -180, 220, -322, 21], 4, 5]', [[-325, -180, 220, -322, 21], 4, 5], [[-13, -7, 9, -13, 1], [1, 1, 0, 1, 0]]], ['partial-repair [[-341, 242, -149, -142, 5, 301], 1, 4]', [[-341, 242, -149, -142, 5, 301], 1, 4], [[-3, 2, -1, -1, 0, 3], [1, 0, 1, 1, None, 0]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]], ['control [[-350, 350], 2, 3]', [[-350, 350], 2, 3], [[-3, 3], [1, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]]], [['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[-175, 400, -173], 4, 5]', [[-175, 400, -173], 4, 5], [[-7, 15, -7], [1, 0, 1]]], ['partial-repair [[-273, 202, 226, 129, -219, -131], 2, 3]', [[-273, 202, 226, 129, -219, -131], 2, 3], [[-3, 3, 3, 3, -3, -3], [1, 0, 0, 0, 1, 1]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]], ['control [[251, -383, 56, 115, -2], 2, 4]', [[251, -383, 56, 115, -2], 2, 4], [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]]], ['control [[-308, 132, -336, -334, 391, 337, -203], 4, 4]', [[-308, 132, -336, -334, 391, 337, -203], 4, 4], [[-7, 5, -7, -7, 7, 7, -7], [1, 0, 1, 1, 0, 0, 1]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]]], [['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['partial-repair [[-87, 93], 3, 4]', [[-87, 93], 3, 4], [[-3, 3], [1, 0]]], ['partial-repair [[-219, -66, -258, -177, 231, 304], 3, 5]', [[-219, -66, -258, -177, 231, 304], 3, 5], [[-7, -2, -8, -5, 7, 9], [1, 1, 1, 1, 0, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]], ['control [[161, 358], 1, 4]', [[161, 358], 1, 4], [[2, 4], [0, 0]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]]], [['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[-293, -398, 93, -6, -35, -78, -62], 4, 5]', [[-293, -398, 93, -6, -35, -78, -62], 4, 5], [[-12, -15, 4, 0, -1, -3, -2], [1, 1, 0, None, 1, 1, 1]]], ['partial-repair [[-128, 321, 78, -33, 59, -182], 1, 3]', [[-128, 321, 78, -33, 59, -182], 1, 3], [[-1, 3, 1, 0, 1, -2], [1, 0, 0, None, 0, 1]]], ['control [[-308, 132, -336, -334, 391, 337, -203], 4, 4]', [[-308, 132, -336, -334, 391, 337, -203], 4, 4], [[-7, 5, -7, -7, 7, 7, -7], [1, 0, 1, 1, 0, 0, 1]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]], ['control [[-350, 350], 2, 3]', [[-350, 350], 2, 3], [[-3, 3], [1, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]]]]
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 [[250, -250, 150, -150, 49, -50], 1, 4] | [[3, -2, 2, -1, 0, 0], [0, 1, 0, 1, None, None]] | [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]] | Failed |
| regression [[-1049, -1050, -1051], 1, 8] | [[-10, -10, -11], [1, 1, 1]] | [[-10, -11, -11], [1, 1, 1]] | Failed |
| partial-repair [[329, -1, -98, 396, 80, -221, -227], 3, 5] | [[10, 0, -3, 12, 2, -7, -7], [0, None, 1, 0, 0, 1, 1]] | [[10, 0, -3, 12, 2, -7, -7], [0, None, 1, 0, 0, 1, 1]] | Passed |
| partial-repair [[-110, -296, 193], 1, 3] | [[-1, -3, 2], [1, 1, 0]] | [[-1, -3, 2], [1, 1, 0]] | Passed |
| control [[-316, 153, -380, 115, 285], 2, 3] | [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]] | [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]] | Passed |
| control [[161, 358], 1, 4] | [[2, 4], [0, 0]] | [[2, 4], [0, 0]] | Passed |
| control [[184, 146], 3, 5] | [[6, 4], [0, 0]] | [[6, 4], [0, 0]] | Passed |
| control [[251, -383, 56, 115, -2], 2, 4] | [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]] | [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]] | Passed |
SHA-256 / 6a86d2d0be13cadfae08c4cc7e84d6e1e99fdf386f7edee595f36e7ef8a4245f
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(samples, scale, bits):
lim = 2 ** (bits - 1) - 1
llrs, hard = [], []
for y in samples:
v = y * scale
q = abs(v + 50) // 100
q = min(q, lim)
q = q if v >= 0 else -q
llrs.append(q)
hard.append(None if q == 0 else (0 if q > 0 else 1))
return [llrs, hard]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[329, -1, -98, 396, 80, -221, -227], 3, 5]', [[329, -1, -98, 396, 80, -221, -227], 3, 5], [[10, 0, -3, 12, 2, -7, -7], [0, None, 1, 0, 0, 1, 1]]], ['partial-repair [[-110, -296, 193], 1, 3]', [[-110, -296, 193], 1, 3], [[-1, -3, 2], [1, 1, 0]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]], ['control [[161, 358], 1, 4]', [[161, 358], 1, 4], [[2, 4], [0, 0]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]], ['control [[251, -383, 56, 115, -2], 2, 4]', [[251, -383, 56, 115, -2], 2, 4], [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]]]], [['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['partial-repair [[-325, -180, 220, -322, 21], 4, 5]', [[-325, -180, 220, -322, 21], 4, 5], [[-13, -7, 9, -13, 1], [1, 1, 0, 1, 0]]], ['partial-repair [[-341, 242, -149, -142, 5, 301], 1, 4]', [[-341, 242, -149, -142, 5, 301], 1, 4], [[-3, 2, -1, -1, 0, 3], [1, 0, 1, 1, None, 0]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]], ['control [[-350, 350], 2, 3]', [[-350, 350], 2, 3], [[-3, 3], [1, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]]], [['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[-175, 400, -173], 4, 5]', [[-175, 400, -173], 4, 5], [[-7, 15, -7], [1, 0, 1]]], ['partial-repair [[-273, 202, 226, 129, -219, -131], 2, 3]', [[-273, 202, 226, 129, -219, -131], 2, 3], [[-3, 3, 3, 3, -3, -3], [1, 0, 0, 0, 1, 1]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]], ['control [[251, -383, 56, 115, -2], 2, 4]', [[251, -383, 56, 115, -2], 2, 4], [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]]], ['control [[-308, 132, -336, -334, 391, 337, -203], 4, 4]', [[-308, 132, -336, -334, 391, 337, -203], 4, 4], [[-7, 5, -7, -7, 7, 7, -7], [1, 0, 1, 1, 0, 0, 1]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]]], [['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['partial-repair [[-87, 93], 3, 4]', [[-87, 93], 3, 4], [[-3, 3], [1, 0]]], ['partial-repair [[-219, -66, -258, -177, 231, 304], 3, 5]', [[-219, -66, -258, -177, 231, 304], 3, 5], [[-7, -2, -8, -5, 7, 9], [1, 1, 1, 1, 0, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]], ['control [[161, 358], 1, 4]', [[161, 358], 1, 4], [[2, 4], [0, 0]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]]], [['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[-293, -398, 93, -6, -35, -78, -62], 4, 5]', [[-293, -398, 93, -6, -35, -78, -62], 4, 5], [[-12, -15, 4, 0, -1, -3, -2], [1, 1, 0, None, 1, 1, 1]]], ['partial-repair [[-128, 321, 78, -33, 59, -182], 1, 3]', [[-128, 321, 78, -33, 59, -182], 1, 3], [[-1, 3, 1, 0, 1, -2], [1, 0, 0, None, 0, 1]]], ['control [[-308, 132, -336, -334, 391, 337, -203], 4, 4]', [[-308, 132, -336, -334, 391, 337, -203], 4, 4], [[-7, 5, -7, -7, 7, 7, -7], [1, 0, 1, 1, 0, 0, 1]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]], ['control [[-350, 350], 2, 3]', [[-350, 350], 2, 3], [[-3, 3], [1, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]]]]
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 [[250, -250, 150, -150, 49, -50], 1, 4] | [[3, -2, 2, -1, 0, 0], [0, 1, 0, 1, None, None]] | [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]] | Failed |
| regression [[-1049, -1050, -1051], 1, 8] | [[-9, -10, -10], [1, 1, 1]] | [[-10, -11, -11], [1, 1, 1]] | Failed |
| partial-repair [[329, -1, -98, 396, 80, -221, -227], 3, 5] | [[10, 0, -2, 12, 2, -6, -6], [0, None, 1, 0, 0, 1, 1]] | [[10, 0, -3, 12, 2, -7, -7], [0, None, 1, 0, 0, 1, 1]] | Failed |
| partial-repair [[-110, -296, 193], 1, 3] | [[0, -2, 2], [None, 1, 0]] | [[-1, -3, 2], [1, 1, 0]] | Failed |
| control [[-316, 153, -380, 115, 285], 2, 3] | [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]] | [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]] | Passed |
| control [[161, 358], 1, 4] | [[2, 4], [0, 0]] | [[2, 4], [0, 0]] | Passed |
| control [[184, 146], 3, 5] | [[6, 4], [0, 0]] | [[6, 4], [0, 0]] | Passed |
| control [[251, -383, 56, 115, -2], 2, 4] | [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]] | [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]] | Passed |
SHA-256 / 25240f2957e79995cb02ee9d5da7fd84fb89ade9d1b61b125b0eb75a91919241
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(samples, scale, bits):
lim = 2 ** (bits - 1) - 1
llrs, hard = [], []
for y in samples:
v = y * scale
q = (abs(v) + 50) // 100
q = min(q, lim)
q = q if v >= 0 else -q
llrs.append(q)
hard.append(None if q == 0 else (0 if q > 0 else 1))
return [llrs, hard]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[329, -1, -98, 396, 80, -221, -227], 3, 5]', [[329, -1, -98, 396, 80, -221, -227], 3, 5], [[10, 0, -3, 12, 2, -7, -7], [0, None, 1, 0, 0, 1, 1]]], ['partial-repair [[-110, -296, 193], 1, 3]', [[-110, -296, 193], 1, 3], [[-1, -3, 2], [1, 1, 0]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]], ['control [[161, 358], 1, 4]', [[161, 358], 1, 4], [[2, 4], [0, 0]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]], ['control [[251, -383, 56, 115, -2], 2, 4]', [[251, -383, 56, 115, -2], 2, 4], [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]]]], [['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['partial-repair [[-325, -180, 220, -322, 21], 4, 5]', [[-325, -180, 220, -322, 21], 4, 5], [[-13, -7, 9, -13, 1], [1, 1, 0, 1, 0]]], ['partial-repair [[-341, 242, -149, -142, 5, 301], 1, 4]', [[-341, 242, -149, -142, 5, 301], 1, 4], [[-3, 2, -1, -1, 0, 3], [1, 0, 1, 1, None, 0]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]], ['control [[-350, 350], 2, 3]', [[-350, 350], 2, 3], [[-3, 3], [1, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]]], [['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[-175, 400, -173], 4, 5]', [[-175, 400, -173], 4, 5], [[-7, 15, -7], [1, 0, 1]]], ['partial-repair [[-273, 202, 226, 129, -219, -131], 2, 3]', [[-273, 202, 226, 129, -219, -131], 2, 3], [[-3, 3, 3, 3, -3, -3], [1, 0, 0, 0, 1, 1]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]], ['control [[251, -383, 56, 115, -2], 2, 4]', [[251, -383, 56, 115, -2], 2, 4], [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]]], ['control [[-308, 132, -336, -334, 391, 337, -203], 4, 4]', [[-308, 132, -336, -334, 391, 337, -203], 4, 4], [[-7, 5, -7, -7, 7, 7, -7], [1, 0, 1, 1, 0, 0, 1]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]]], [['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['partial-repair [[-87, 93], 3, 4]', [[-87, 93], 3, 4], [[-3, 3], [1, 0]]], ['partial-repair [[-219, -66, -258, -177, 231, 304], 3, 5]', [[-219, -66, -258, -177, 231, 304], 3, 5], [[-7, -2, -8, -5, 7, 9], [1, 1, 1, 1, 0, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]], ['control [[-316, 153, -380, 115, 285], 2, 3]', [[-316, 153, -380, 115, 285], 2, 3], [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]]], ['control [[161, 358], 1, 4]', [[161, 358], 1, 4], [[2, 4], [0, 0]]], ['control [[184, 146], 3, 5]', [[184, 146], 3, 5], [[6, 4], [0, 0]]]], [['regression [[250, -250, 150, -150, 49, -50], 1, 4]', [[250, -250, 150, -150, 49, -50], 1, 4], [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]]], ['regression [[-1049, -1050, -1051], 1, 8]', [[-1049, -1050, -1051], 1, 8], [[-10, -11, -11], [1, 1, 1]]], ['partial-repair [[-293, -398, 93, -6, -35, -78, -62], 4, 5]', [[-293, -398, 93, -6, -35, -78, -62], 4, 5], [[-12, -15, 4, 0, -1, -3, -2], [1, 1, 0, None, 1, 1, 1]]], ['partial-repair [[-128, 321, 78, -33, 59, -182], 1, 3]', [[-128, 321, 78, -33, 59, -182], 1, 3], [[-1, 3, 1, 0, 1, -2], [1, 0, 0, None, 0, 1]]], ['control [[-308, 132, -336, -334, 391, 337, -203], 4, 4]', [[-308, 132, -336, -334, 391, 337, -203], 4, 4], [[-7, 5, -7, -7, 7, 7, -7], [1, 0, 1, 1, 0, 0, 1]]], ['control [[900, -900, 700, -800], 1, 4]', [[900, -900, 700, -800], 1, 4], [[7, -7, 7, -7], [0, 1, 0, 1]]], ['control [[-350, 350], 2, 3]', [[-350, 350], 2, 3], [[-3, 3], [1, 0]]], ['control [[0, 1, -1], 1, 3]', [[0, 1, -1], 1, 3], [[0, 0, 0], [None, None, None]]]]]
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 [[250, -250, 150, -150, 49, -50], 1, 4] | [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]] | [[3, -3, 2, -2, 0, -1], [0, 1, 0, 1, None, 1]] | Passed |
| regression [[-1049, -1050, -1051], 1, 8] | [[-10, -11, -11], [1, 1, 1]] | [[-10, -11, -11], [1, 1, 1]] | Passed |
| partial-repair [[329, -1, -98, 396, 80, -221, -227], 3, 5] | [[10, 0, -3, 12, 2, -7, -7], [0, None, 1, 0, 0, 1, 1]] | [[10, 0, -3, 12, 2, -7, -7], [0, None, 1, 0, 0, 1, 1]] | Passed |
| partial-repair [[-110, -296, 193], 1, 3] | [[-1, -3, 2], [1, 1, 0]] | [[-1, -3, 2], [1, 1, 0]] | Passed |
| control [[-316, 153, -380, 115, 285], 2, 3] | [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]] | [[-3, 3, -3, 2, 3], [1, 0, 1, 0, 0]] | Passed |
| control [[161, 358], 1, 4] | [[2, 4], [0, 0]] | [[2, 4], [0, 0]] | Passed |
| control [[184, 146], 3, 5] | [[6, 4], [0, 0]] | [[6, 4], [0, 0]] | Passed |
| control [[251, -383, 56, 115, -2], 2, 4] | [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]] | [[5, -7, 1, 2, 0], [0, 1, 0, 0, None]] | Passed |
SHA-256 / 62a78c970f4703d111f65618568623e270c17570ff64cee4b032571b5d78cd38
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:36.678395+00:00.
Case digest / f11f9a55184a97450feaa752fad50b1942f1300d218a9651f11165c3eb433c7e