FA-26676 / HTTP ranges / Open access
Numeric token budgets count leading zeroes before integer conversion · case 01
Numeric token budgets count leading zeroes before integer conversion.
ROOT CAUSE
The range-digit-budget-before-conversion decision uses return int(digits) if len(str(int(digits)))<=limit else None.
VERIFIED REPAIR
Apply the bounded decision exactly: return int(digits) if len(digits)<=limit else None
Unsuccessful approach: The partial repair uses return int(digits) if len(digits.lstrip("0"))<=limit else None, which still violates the stated contract.
Case contract
Inputs contain only ASCII digits and are nonempty. Reject tokens longer than limit with None; otherwise return integer. Budget counts syntax not numeric magnitude.
Why this case matters
Range responses combine representation identity, conditional requests, framing, and partial-object state.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(digits, limit):
return int(digits) if len(str(int(digits)))<=limit else None
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('range-digit-budget-before-conversion fixture 0', solve("0"*(N+1),N), None)
check('range-digit-budget-before-conversion fixture 1', solve("0"*N,N), 0)
check('range-digit-budget-before-conversion fixture 2', solve("1",1), 1)
check('range-digit-budget-before-conversion fixture 3', solve("001",2), None)
check('range-digit-budget-before-conversion fixture 4', solve("001",3), 1)
check('range-digit-budget-before-conversion fixture 5', solve("9",0), None)
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 |
|---|---|---|---|
| range-digit-budget-before-conversion fixture 0 | 0 | None | Failed |
| range-digit-budget-before-conversion fixture 1 | 0 | 0 | Passed |
| range-digit-budget-before-conversion fixture 2 | 1 | 1 | Passed |
| range-digit-budget-before-conversion fixture 3 | 1 | None | Failed |
| range-digit-budget-before-conversion fixture 4 | 1 | 1 | Passed |
| range-digit-budget-before-conversion fixture 5 | None | None | Passed |
SHA-256 / 1d33d529f48b3b6334c3d748c52375812647f43f7ef120e27af2b4560eee496d
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(digits, limit):
return int(digits) if len(digits.lstrip("0"))<=limit else None
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('range-digit-budget-before-conversion fixture 0', solve("0"*(N+1),N), None)
check('range-digit-budget-before-conversion fixture 1', solve("0"*N,N), 0)
check('range-digit-budget-before-conversion fixture 2', solve("1",1), 1)
check('range-digit-budget-before-conversion fixture 3', solve("001",2), None)
check('range-digit-budget-before-conversion fixture 4', solve("001",3), 1)
check('range-digit-budget-before-conversion fixture 5', solve("9",0), None)
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 |
|---|---|---|---|
| range-digit-budget-before-conversion fixture 0 | 0 | None | Failed |
| range-digit-budget-before-conversion fixture 1 | 0 | 0 | Passed |
| range-digit-budget-before-conversion fixture 2 | 1 | 1 | Passed |
| range-digit-budget-before-conversion fixture 3 | 1 | None | Failed |
| range-digit-budget-before-conversion fixture 4 | 1 | 1 | Passed |
| range-digit-budget-before-conversion fixture 5 | None | None | Passed |
SHA-256 / 7708105e77b993819f5b449e078c4d42d1521151f6abfd8baa9ce262c65aab66
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(digits, limit):
return int(digits) if len(digits)<=limit else None
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('range-digit-budget-before-conversion fixture 0', solve("0"*(N+1),N), None)
check('range-digit-budget-before-conversion fixture 1', solve("0"*N,N), 0)
check('range-digit-budget-before-conversion fixture 2', solve("1",1), 1)
check('range-digit-budget-before-conversion fixture 3', solve("001",2), None)
check('range-digit-budget-before-conversion fixture 4', solve("001",3), 1)
check('range-digit-budget-before-conversion fixture 5', solve("9",0), None)
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 |
|---|---|---|---|
| range-digit-budget-before-conversion fixture 0 | None | None | Passed |
| range-digit-budget-before-conversion fixture 1 | 0 | 0 | Passed |
| range-digit-budget-before-conversion fixture 2 | 1 | 1 | Passed |
| range-digit-budget-before-conversion fixture 3 | None | None | Passed |
| range-digit-budget-before-conversion fixture 4 | 1 | 1 | Passed |
| range-digit-budget-before-conversion fixture 5 | None | None | Passed |
SHA-256 / 2e8db7c6fde411387b5b4adcb4134b234eccaff3d1e1c2be5d692a0d963e29b4
Verification & scope
Deterministic simplified range service, with stipulated local policies and already parsed trusted inputs; not a complete HTTP 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:41:18.150748+00:00.
Case digest / b7b0e2109d82634393c8cb83fc8c05abbd8ca97ab8c7675c0e1c11fda5ddba4f