FAILURE MAP
← Case archive

FA-95716 / Shipping rate zone lookup / Open access

Area surcharge: first ZIP of a range missed · case 01

The first ZIP of each surcharge range is not surcharged.

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

ROOT CAUSE

bisect_left places a ZIP equal to a range start before that range.

VERIFIED REPAIR

Use bisect_right minus one to find the last range starting at or before the ZIP.

Unsuccessful approach: Dropping the minus one selects the following range for ZIPs inside a range.

Case contract

zip5 is a five-digit ZIP or ZIP+4. ranges [[lo, hi, code]] are non-overlapping inclusive five-digit ranges in any order. Look up the range containing the ZIP (sorted ranges, binary search) and return [code, fee] with DAS 395, EXT 510, REMOTE 1500 cents; uncovered ZIPs -> ["NONE", 0].

Why this case matters

Delivery area surcharges are keyed by destination ZIP ranges.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import bisect
N = 1
observations = []
def solve(zip5, ranges):
    z = int(zip5[:5])
    rs = sorted(ranges)
    los = [r[0] for r in rs]
    i = bisect.bisect_left(los, z) - 1
    if i >= 0 and z <= rs[i][1]:
        code = rs[i][2]
    else:
        code = 'NONE'
    return [code, {'NONE': 0, 'DAS': 395, 'EXT': 510, 'REMOTE': 1500}[code]]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 7', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 18', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 26', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]]], [['generated mix 18', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 4', ['10050', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['middle', ['20500', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 11', ['30000-0001', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 22', ['20999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 32', ['20000-0001', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]]], [['generated mix 48', ['59000-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['REMOTE', 1500]], ['generated mix 13', ['58999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 24', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 34', ['21000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 44', ['10099-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]]], [['generated mix 78', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 22', ['20999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['middle', ['20500', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 38', ['10050-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 49', ['10050', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 58', ['21000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]]], [['generated mix 17', ['59000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['REMOTE', 1500]], ['generated mix 29', ['19999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 53', ['10100-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 62', ['09999-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 72', ['19999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 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 fixtureActualExpectedOutcome
range start['NONE', 0]['DAS', 395]Failed
gap['NONE', 0]['NONE', 0]Passed
range end['DAS', 395]['DAS', 395]Passed
single zip range['NONE', 0]['DAS', 395]Failed
below first['NONE', 0]['NONE', 0]Passed
generated mix 7['NONE', 0]['NONE', 0]Passed
generated mix 18['NONE', 0]['EXT', 510]Failed
generated mix 26['NONE', 0]['NONE', 0]Passed

SHA-256 / 74c26705889ae392d630f013a9b2f07899069024ed35a699d0dcb20983e5f116

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import bisect
N = 1
observations = []
def solve(zip5, ranges):
    z = int(zip5[:5])
    rs = sorted(ranges)
    los = [r[0] for r in rs]
    i = bisect.bisect_left(los, z)
    if i >= 0 and z <= rs[i][1]:
        code = rs[i][2]
    else:
        code = 'NONE'
    return [code, {'NONE': 0, 'DAS': 395, 'EXT': 510, 'REMOTE': 1500}[code]]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 7', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 18', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 26', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]]], [['generated mix 18', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 4', ['10050', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['middle', ['20500', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 11', ['30000-0001', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 22', ['20999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 32', ['20000-0001', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]]], [['generated mix 48', ['59000-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['REMOTE', 1500]], ['generated mix 13', ['58999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 24', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 34', ['21000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 44', ['10099-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]]], [['generated mix 78', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 22', ['20999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['middle', ['20500', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 38', ['10050-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 49', ['10050', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 58', ['21000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]]], [['generated mix 17', ['59000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['REMOTE', 1500]], ['generated mix 29', ['19999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 53', ['10100-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 62', ['09999-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 72', ['19999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 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 fixtureActualExpectedOutcome
range start['DAS', 395]['DAS', 395]Passed
gap['EXT', 510]['NONE', 0]Failed
range end['EXT', 510]['DAS', 395]Failed
single zip range['DAS', 395]['DAS', 395]Passed
below first['DAS', 395]['NONE', 0]Failed
generated mix 7['DAS', 395]['NONE', 0]Failed
generated mix 18['EXT', 510]['EXT', 510]Passed
generated mix 26['DAS', 395]['NONE', 0]Failed

SHA-256 / 4aa02f9a680d2599f4af74de2308cf3d71c1b729e0d6d3de770411363831b2b3

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import bisect
N = 1
observations = []
def solve(zip5, ranges):
    z = int(zip5[:5])
    rs = sorted(ranges)
    los = [r[0] for r in rs]
    i = bisect.bisect_right(los, z) - 1
    if i >= 0 and z <= rs[i][1]:
        code = rs[i][2]
    else:
        code = 'NONE'
    return [code, {'NONE': 0, 'DAS': 395, 'EXT': 510, 'REMOTE': 1500}[code]]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 7', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 18', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 26', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]]], [['generated mix 18', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 4', ['10050', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['middle', ['20500', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 11', ['30000-0001', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 22', ['20999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 32', ['20000-0001', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]]], [['generated mix 48', ['59000-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['REMOTE', 1500]], ['generated mix 13', ['58999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 24', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 34', ['21000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 44', ['10099-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]]], [['generated mix 78', ['20000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['generated mix 22', ['20999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['below first', ['09999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['middle', ['20500', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['EXT', 510]], ['range end', ['10099', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 38', ['10050-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 49', ['10050', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 58', ['21000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]]], [['generated mix 17', ['59000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['REMOTE', 1500]], ['generated mix 29', ['19999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['range start', ['10000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['gap', ['10100', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['single zip range', ['30000', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['DAS', 395]], ['generated mix 53', ['10100-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 62', ['09999-4321', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 0]], ['generated mix 72', ['19999', [[10000, 10099, 'DAS'], [20000, 20999, 'EXT'], [59000, 59999, 'REMOTE'], [30000, 30000, 'DAS']]], ['NONE', 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 fixtureActualExpectedOutcome
range start['DAS', 395]['DAS', 395]Passed
gap['NONE', 0]['NONE', 0]Passed
range end['DAS', 395]['DAS', 395]Passed
single zip range['DAS', 395]['DAS', 395]Passed
below first['NONE', 0]['NONE', 0]Passed
generated mix 7['NONE', 0]['NONE', 0]Passed
generated mix 18['EXT', 510]['EXT', 510]Passed
generated mix 26['NONE', 0]['NONE', 0]Passed

SHA-256 / 1d687a6acd4da603f5dd27cd1209c814e6c5fd17db054b1c195cf67f439f864a

Verification & scope

Stipulated ranges and fee amounts. 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:52:16.176392+00:00.

Case digest / 5eecc4f3577bd20488df34f08d251692fc996ec4b338ac0d98b8a6a1178f9506