FA-91616 / Digital signal filters / Open access
Coefficient quantizer measures error before clipping · case 01
max_error understates the real error for saturated coefficients.
ROOT CAUSE
The error uses the unclipped code rather than the stored code.
VERIFIED REPAIR
Compute the error from the saturated code.
Unsuccessful approach: The attempted repair uses the saturated code but reports the error in LSB units instead of coefficient units.
Case contract
Input [coeffs, f, B, mode]: quantize each decimal coefficient to a B-bit two's-complement code with f fractional bits; "nearest" rounds half away from zero, "truncate" floors. Codes saturate to [-2^(B-1), 2^(B-1)-1]. Return {"codes", "saturated": count of clipped codes, "max_error": max |code/2^f - c| after saturation as a fraction string}.
Why this case matters
Coefficient quantization decides whether a fixed-point filter still meets spec; rounding and saturation slips shift poles.
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(x):
coeffs, f, B, mode = x
scale = 2 ** f
hi, lo = 2 ** (B - 1) - 1, -2 ** (B - 1)
codes = []
sat = 0
err = Fraction(0)
for s in coeffs:
c = Fraction(s)
v = c * scale
if mode == 'nearest':
q = math.floor(abs(v) + Fraction(1, 2)) * (1 if v >= 0 else -1)
else:
q = math.floor(v)
raw = q
if q > hi or q < lo:
sat += 1
q = max(lo, min(hi, q))
codes.append(q)
err = max(err, abs(Fraction(raw, scale) - c))
return {'codes': codes, 'saturated': sat, 'max_error': str(err)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: positive overflow', [['1', '0.99'], 7, 8, 'nearest'], {'codes': [127, 127], 'saturated': 1, 'max_error': '1/128'}], ['regression: negative overflow', [['-1.5'], 7, 8, 'truncate'], {'codes': [-128], 'saturated': 1, 'max_error': '1/2'}], ['repair check: tie cases nearest', [['0.125', '0.375', '-0.125'], 2, 8, 'nearest'], {'codes': [1, 2, -1], 'saturated': 0, 'max_error': '1/8'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 8', [['0.08', '-2.194', '-0.29'], 4, 6, 'nearest'], {'codes': [1, -32, -5], 'saturated': 1, 'max_error': '97/500'}], ['regression: random quantize 9', [['-0.92', '1.79'], 4, 5, 'truncate'], {'codes': [-15, 15], 'saturated': 1, 'max_error': '341/400'}], ['regression: positive overflow', [['1', '0.99'], 7, 8, 'nearest'], {'codes': [127, 127], 'saturated': 1, 'max_error': '1/128'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 21', [['1.81'], 6, 7, 'truncate'], {'codes': [63], 'saturated': 1, 'max_error': '1321/1600'}], ['regression: random quantize 26', [['-1.848', '0.82', '-1.59'], 2, 3, 'truncate'], {'codes': [-4, 3, -4], 'saturated': 2, 'max_error': '106/125'}], ['repair check: random quantize 0', [['-1.79', '1.59'], 3, 5, 'truncate'], {'codes': [-15, 12], 'saturated': 0, 'max_error': '9/100'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 32', [['-1.79', '-1.633', '-0.38'], 3, 4, 'nearest'], {'codes': [-8, -8, -3], 'saturated': 2, 'max_error': '79/100'}], ['regression: random quantize 36', [['-1.29', '-1.846'], 3, 4, 'truncate'], {'codes': [-8, -8], 'saturated': 2, 'max_error': '423/500'}], ['repair check: random quantize 2', [['-0.09', '-0.09', '0.397'], 4, 7, 'nearest'], {'codes': [-1, -1, 6], 'saturated': 0, 'max_error': '11/400'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 38', [['2.146', '-1.527', '-1.91'], 5, 6, 'nearest'], {'codes': [31, -32, -32], 'saturated': 3, 'max_error': '4709/4000'}], ['regression: random quantize 39', [['1.85', '-1.902'], 3, 4, 'truncate'], {'codes': [7, -8], 'saturated': 2, 'max_error': '39/40'}], ['regression: random quantize 4', [['-1.49', '-1.91'], 2, 3, 'nearest'], {'codes': [-4, -4], 'saturated': 2, 'max_error': '91/100'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]]]
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: positive overflow | {'codes': [127, 127], 'max_error': '7/3200', 'saturated': 1} | {'codes': [127, 127], 'max_error': '1/128', 'saturated': 1} | Failed |
| regression: negative overflow | {'codes': [-128], 'max_error': '0', 'saturated': 1} | {'codes': [-128], 'max_error': '1/2', 'saturated': 1} | Failed |
| repair check: tie cases nearest | {'codes': [1, 2, -1], 'max_error': '1/8', 'saturated': 0} | {'codes': [1, 2, -1], 'max_error': '1/8', 'saturated': 0} | Passed |
| control: negative full scale | {'codes': [-128], 'max_error': '0', 'saturated': 0} | {'codes': [-128], 'max_error': '0', 'saturated': 0} | Passed |
| control: exact grid | {'codes': [2, -1], 'max_error': '0', 'saturated': 0} | {'codes': [2, -1], 'max_error': '0', 'saturated': 0} | Passed |
| control: exact grid truncate | {'codes': [2, -1, 3], 'max_error': '0', 'saturated': 0} | {'codes': [2, -1, 3], 'max_error': '0', 'saturated': 0} | Passed |
| control: integer multiple truncate | {'codes': [-4, 10], 'max_error': '0', 'saturated': 0} | {'codes': [-4, 10], 'max_error': '0', 'saturated': 0} | Passed |
SHA-256 / 9d54efc7ffcfabe2a10ff577dba230b184ae9ff3dee3d42afa8c0ddd5a44e3b1
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(x):
coeffs, f, B, mode = x
scale = 2 ** f
hi, lo = 2 ** (B - 1) - 1, -2 ** (B - 1)
codes = []
sat = 0
err = Fraction(0)
for s in coeffs:
c = Fraction(s)
v = c * scale
if mode == 'nearest':
q = math.floor(abs(v) + Fraction(1, 2)) * (1 if v >= 0 else -1)
else:
q = math.floor(v)
if q > hi or q < lo:
sat += 1
q = max(lo, min(hi, q))
codes.append(q)
err = max(err, abs(q - v))
return {'codes': codes, 'saturated': sat, 'max_error': str(err)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: positive overflow', [['1', '0.99'], 7, 8, 'nearest'], {'codes': [127, 127], 'saturated': 1, 'max_error': '1/128'}], ['regression: negative overflow', [['-1.5'], 7, 8, 'truncate'], {'codes': [-128], 'saturated': 1, 'max_error': '1/2'}], ['repair check: tie cases nearest', [['0.125', '0.375', '-0.125'], 2, 8, 'nearest'], {'codes': [1, 2, -1], 'saturated': 0, 'max_error': '1/8'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 8', [['0.08', '-2.194', '-0.29'], 4, 6, 'nearest'], {'codes': [1, -32, -5], 'saturated': 1, 'max_error': '97/500'}], ['regression: random quantize 9', [['-0.92', '1.79'], 4, 5, 'truncate'], {'codes': [-15, 15], 'saturated': 1, 'max_error': '341/400'}], ['regression: positive overflow', [['1', '0.99'], 7, 8, 'nearest'], {'codes': [127, 127], 'saturated': 1, 'max_error': '1/128'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 21', [['1.81'], 6, 7, 'truncate'], {'codes': [63], 'saturated': 1, 'max_error': '1321/1600'}], ['regression: random quantize 26', [['-1.848', '0.82', '-1.59'], 2, 3, 'truncate'], {'codes': [-4, 3, -4], 'saturated': 2, 'max_error': '106/125'}], ['repair check: random quantize 0', [['-1.79', '1.59'], 3, 5, 'truncate'], {'codes': [-15, 12], 'saturated': 0, 'max_error': '9/100'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 32', [['-1.79', '-1.633', '-0.38'], 3, 4, 'nearest'], {'codes': [-8, -8, -3], 'saturated': 2, 'max_error': '79/100'}], ['regression: random quantize 36', [['-1.29', '-1.846'], 3, 4, 'truncate'], {'codes': [-8, -8], 'saturated': 2, 'max_error': '423/500'}], ['repair check: random quantize 2', [['-0.09', '-0.09', '0.397'], 4, 7, 'nearest'], {'codes': [-1, -1, 6], 'saturated': 0, 'max_error': '11/400'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 38', [['2.146', '-1.527', '-1.91'], 5, 6, 'nearest'], {'codes': [31, -32, -32], 'saturated': 3, 'max_error': '4709/4000'}], ['regression: random quantize 39', [['1.85', '-1.902'], 3, 4, 'truncate'], {'codes': [7, -8], 'saturated': 2, 'max_error': '39/40'}], ['regression: random quantize 4', [['-1.49', '-1.91'], 2, 3, 'nearest'], {'codes': [-4, -4], 'saturated': 2, 'max_error': '91/100'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]]]
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: positive overflow | {'codes': [127, 127], 'max_error': '1', 'saturated': 1} | {'codes': [127, 127], 'max_error': '1/128', 'saturated': 1} | Failed |
| regression: negative overflow | {'codes': [-128], 'max_error': '64', 'saturated': 1} | {'codes': [-128], 'max_error': '1/2', 'saturated': 1} | Failed |
| repair check: tie cases nearest | {'codes': [1, 2, -1], 'max_error': '1/2', 'saturated': 0} | {'codes': [1, 2, -1], 'max_error': '1/8', 'saturated': 0} | Failed |
| control: negative full scale | {'codes': [-128], 'max_error': '0', 'saturated': 0} | {'codes': [-128], 'max_error': '0', 'saturated': 0} | Passed |
| control: exact grid | {'codes': [2, -1], 'max_error': '0', 'saturated': 0} | {'codes': [2, -1], 'max_error': '0', 'saturated': 0} | Passed |
| control: exact grid truncate | {'codes': [2, -1, 3], 'max_error': '0', 'saturated': 0} | {'codes': [2, -1, 3], 'max_error': '0', 'saturated': 0} | Passed |
| control: integer multiple truncate | {'codes': [-4, 10], 'max_error': '0', 'saturated': 0} | {'codes': [-4, 10], 'max_error': '0', 'saturated': 0} | Passed |
SHA-256 / aa6a6e86dfc3f1ac5c15ac2dd95937950c5c74e9df3845cd894592f17e0e2d33
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(x):
coeffs, f, B, mode = x
scale = 2 ** f
hi, lo = 2 ** (B - 1) - 1, -2 ** (B - 1)
codes = []
sat = 0
err = Fraction(0)
for s in coeffs:
c = Fraction(s)
v = c * scale
if mode == 'nearest':
q = math.floor(abs(v) + Fraction(1, 2)) * (1 if v >= 0 else -1)
else:
q = math.floor(v)
if q > hi or q < lo:
sat += 1
q = max(lo, min(hi, q))
codes.append(q)
err = max(err, abs(Fraction(q, scale) - c))
return {'codes': codes, 'saturated': sat, 'max_error': str(err)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: positive overflow', [['1', '0.99'], 7, 8, 'nearest'], {'codes': [127, 127], 'saturated': 1, 'max_error': '1/128'}], ['regression: negative overflow', [['-1.5'], 7, 8, 'truncate'], {'codes': [-128], 'saturated': 1, 'max_error': '1/2'}], ['repair check: tie cases nearest', [['0.125', '0.375', '-0.125'], 2, 8, 'nearest'], {'codes': [1, 2, -1], 'saturated': 0, 'max_error': '1/8'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 8', [['0.08', '-2.194', '-0.29'], 4, 6, 'nearest'], {'codes': [1, -32, -5], 'saturated': 1, 'max_error': '97/500'}], ['regression: random quantize 9', [['-0.92', '1.79'], 4, 5, 'truncate'], {'codes': [-15, 15], 'saturated': 1, 'max_error': '341/400'}], ['regression: positive overflow', [['1', '0.99'], 7, 8, 'nearest'], {'codes': [127, 127], 'saturated': 1, 'max_error': '1/128'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 21', [['1.81'], 6, 7, 'truncate'], {'codes': [63], 'saturated': 1, 'max_error': '1321/1600'}], ['regression: random quantize 26', [['-1.848', '0.82', '-1.59'], 2, 3, 'truncate'], {'codes': [-4, 3, -4], 'saturated': 2, 'max_error': '106/125'}], ['repair check: random quantize 0', [['-1.79', '1.59'], 3, 5, 'truncate'], {'codes': [-15, 12], 'saturated': 0, 'max_error': '9/100'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 32', [['-1.79', '-1.633', '-0.38'], 3, 4, 'nearest'], {'codes': [-8, -8, -3], 'saturated': 2, 'max_error': '79/100'}], ['regression: random quantize 36', [['-1.29', '-1.846'], 3, 4, 'truncate'], {'codes': [-8, -8], 'saturated': 2, 'max_error': '423/500'}], ['repair check: random quantize 2', [['-0.09', '-0.09', '0.397'], 4, 7, 'nearest'], {'codes': [-1, -1, 6], 'saturated': 0, 'max_error': '11/400'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]], [['regression: random quantize 38', [['2.146', '-1.527', '-1.91'], 5, 6, 'nearest'], {'codes': [31, -32, -32], 'saturated': 3, 'max_error': '4709/4000'}], ['regression: random quantize 39', [['1.85', '-1.902'], 3, 4, 'truncate'], {'codes': [7, -8], 'saturated': 2, 'max_error': '39/40'}], ['regression: random quantize 4', [['-1.49', '-1.91'], 2, 3, 'nearest'], {'codes': [-4, -4], 'saturated': 2, 'max_error': '91/100'}], ['control: negative full scale', [['-1'], 7, 8, 'nearest'], {'codes': [-128], 'saturated': 0, 'max_error': '0'}], ['control: exact grid', [['0.5', '-0.25'], 2, 4, 'nearest'], {'codes': [2, -1], 'saturated': 0, 'max_error': '0'}], ['control: exact grid truncate', [['0.5', '-0.25', '0.75'], 2, 4, 'truncate'], {'codes': [2, -1, 3], 'saturated': 0, 'max_error': '0'}], ['control: integer multiple truncate', [['-0.5', '1.25'], 3, 6, 'truncate'], {'codes': [-4, 10], 'saturated': 0, 'max_error': '0'}]]]
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: positive overflow | {'codes': [127, 127], 'max_error': '1/128', 'saturated': 1} | {'codes': [127, 127], 'max_error': '1/128', 'saturated': 1} | Passed |
| regression: negative overflow | {'codes': [-128], 'max_error': '1/2', 'saturated': 1} | {'codes': [-128], 'max_error': '1/2', 'saturated': 1} | Passed |
| repair check: tie cases nearest | {'codes': [1, 2, -1], 'max_error': '1/8', 'saturated': 0} | {'codes': [1, 2, -1], 'max_error': '1/8', 'saturated': 0} | Passed |
| control: negative full scale | {'codes': [-128], 'max_error': '0', 'saturated': 0} | {'codes': [-128], 'max_error': '0', 'saturated': 0} | Passed |
| control: exact grid | {'codes': [2, -1], 'max_error': '0', 'saturated': 0} | {'codes': [2, -1], 'max_error': '0', 'saturated': 0} | Passed |
| control: exact grid truncate | {'codes': [2, -1, 3], 'max_error': '0', 'saturated': 0} | {'codes': [2, -1, 3], 'max_error': '0', 'saturated': 0} | Passed |
| control: integer multiple truncate | {'codes': [-4, 10], 'max_error': '0', 'saturated': 0} | {'codes': [-4, 10], 'max_error': '0', 'saturated': 0} | Passed |
SHA-256 / 4ae57d8919e0f7192204a8322fd727064db7c5a3f145009454a7dd663a9e3ab2
Verification & scope
A deterministic bounded teaching model with a stipulated toy contract; exact rational arithmetic or fixed-decimal rounding keeps outputs strict JSON. It is not a production DSP library and claims no standards conformance. 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:51:37.589225+00:00.
Case digest / 89e415a58a9876badbb0b7320233b0ad98bc8f957f4d0a9e748908e01aeb0dd8