FAILURE MAP
← Case archive

FA-27646 / HTTP ranges / Open access

A media player maps a seek time to keyframe-aligned byte range requests around cached spans: the media window stops at the last representation byte · case 01

A media player maps a seek time to keyframe-aligned byte range requests around cached spans: the media window stops at the last representation byte.

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

ROOT CAUSE

The media-seek-range-plan-window-end-clamp decision uses idx=x['index'] T=x['total'] if not idx or T<=0: return None reqs=[] H=x['header_end'] if H>0 and not any(a<=0 and H-1<=b for a,b in x['cached']): reqs.append([0,H-1]) k=-1 for i,(tm,off) in enumerate(idx): if tm<=x['seek']: k=i o=idx[max(k,0)][1] if o>=T: return None e=o+x['window']-1 cur=o for a,b in sorted(x['cached']): if b<cur or a>e: continue if a>cur: reqs.append([cur,a-1]) cur=max(cur,b+1) if cur<=e: reqs.append([cur,e]) return ['bytes=%d-%d'%(a,b) for a,b in reqs].

VERIFIED REPAIR

Apply the bounded decision exactly: idx=x['index'] T=x['total'] if not idx or T<=0: return None reqs=[] H=x['header_end'] if H>0 and not any(a<=0 and H-1<=b for a,b in x['cached']): reqs.append([0,H-1]) k=-1 for i,(tm,off) in enumerate(idx): if tm<=x['seek']: k=i o=idx[max(k,0)][1] if o>=T: return None e=min(T-1,o+x['window']-1) cur=o for a,b in sorted(x['cached']): if b<cur or a>e: continue if a>cur: reqs.append([cur,a-1]) cur=max(cur,b+1) if cur<=e: reqs.append([cur,e]) return ['bytes=%d-%d'%(a,b) for a,b in reqs]

Unsuccessful approach: The partial repair uses idx=x['index'] T=x['total'] if not idx or T<=0: return None reqs=[] H=x['header_end'] if H>0 and not any(a<=0 and H-1<=b for a,b in x['cached']): reqs.append([0,H-1]) k=-1 for i,(tm,off) in enumerate(idx): if tm<=x['seek']: k=i o=idx[max(k,0)][1] if o>=T: return None e=min(T,o+x['window']-1) cur=o for a,b in sorted(x['cached']): if b<cur or a>e: continue if a>cur: reqs.append([cur,a-1]) cur=max(cur,b+1) if cur<=e: reqs.append([cur,e]) return ['bytes=%d-%d'%(a,b) for a,b in reqs], which still violates the stated contract.

Case contract

x has a time-sorted keyframe index [time,byte-offset], total length, init header length H (bytes 0..H-1), seek time, byte window and cached inclusive spans (unordered). Request the header unless one cached span covers all of it. Start at the last keyframe with time<=seek, or the first keyframe when seeking earlier. A start offset at or beyond total, an empty index or nonpositive total returns null. The media window is [start,min(total-1,start+window-1)]; request only its uncached gaps in ascending order, as inclusive bytes=a-b values after any header request.

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(x):
    idx=x['index']
    T=x['total']
    if not idx or T<=0: return None
    reqs=[]
    H=x['header_end']
    if H>0 and not any(a<=0 and H-1<=b for a,b in x['cached']): reqs.append([0,H-1])
    k=-1
    for i,(tm,off) in enumerate(idx):
        if tm<=x['seek']: k=i
    o=idx[max(k,0)][1]
    if o>=T: return None
    e=o+x['window']-1
    cur=o
    for a,b in sorted(x['cached']):
        if b<cur or a>e: continue
        if a>cur: reqs.append([cur,a-1])
        cur=max(cur,b+1)
    if cur<=e: reqs.append([cur,e])
    return ['bytes=%d-%d'%(a,b) for a,b in reqs]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('window-end-clamp fixture 0', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 1', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2000,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 2', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':3999,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 3', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[1000,100],[3000,600]],'seek':500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=100-399'])))
check('window-end-clamp fixture 4', json.loads(json.dumps(solve({'cached':[[0,49]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 5', json.loads(json.dumps(solve({'cached':[[50,200]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 6', json.loads(json.dumps(solve({'cached':[[0,150]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-799'])))
check('window-end-clamp fixture 7', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':4500,'total':1200,'window':400}))), json.loads(json.dumps(['bytes=0-99','bytes=900-1199'])))
check('window-end-clamp fixture 8', json.loads(json.dumps(solve({'cached':[[0,99],[600,649]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-599','bytes=650-799'])))
check('window-end-clamp fixture 9', json.loads(json.dumps(solve({'cached':[[0,99],[900,950]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-799'])))
check('window-end-clamp fixture 10', json.loads(json.dumps(solve({'cached':[[0,99],[799,850]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-798'])))
check('window-end-clamp fixture 11', json.loads(json.dumps(solve({'cached':[[0,99],[600,610],[540,700]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-539','bytes=701-799'])))
check('window-end-clamp fixture 12', json.loads(json.dumps(solve({'cached':[[0,99],[500,798]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=799-799'])))
check('window-end-clamp fixture 13', json.loads(json.dumps(solve({'cached':[[0,99],[500,510]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=511-799'])))
check('window-end-clamp fixture 14', json.loads(json.dumps(solve({'cached':[[0,99],[501,510]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-500','bytes=511-799'])))
check('window-end-clamp fixture 15', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,1300]],'seek':3000,'total':1200,'window':300}))), json.loads(json.dumps(None)))
check('window-end-clamp fixture 16', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':10,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=100-399'])))
check('window-end-clamp fixture 17', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[1000,200],[2000,300],[3000,400],[4000,500],[5000,600]],'seek':1000*N,'total':2000,'window':50}))), json.loads(json.dumps(['bytes=0-99',"bytes=%d-%d"%(100*N+100,100*N+149)])))
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
window-end-clamp fixture 0['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 1['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 2['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 3['bytes=0-99', 'bytes=100-399']['bytes=0-99', 'bytes=100-399']Passed
window-end-clamp fixture 4['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 5['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 6['bytes=500-799']['bytes=500-799']Passed
window-end-clamp fixture 7['bytes=0-99', 'bytes=900-1299']['bytes=0-99', 'bytes=900-1199']Failed
window-end-clamp fixture 8['bytes=500-599', 'bytes=650-799']['bytes=500-599', 'bytes=650-799']Passed
window-end-clamp fixture 9['bytes=500-799']['bytes=500-799']Passed
window-end-clamp fixture 10['bytes=500-798']['bytes=500-798']Passed
window-end-clamp fixture 11['bytes=500-539', 'bytes=701-799']['bytes=500-539', 'bytes=701-799']Passed
window-end-clamp fixture 12['bytes=799-799']['bytes=799-799']Passed
window-end-clamp fixture 13['bytes=511-799']['bytes=511-799']Passed
window-end-clamp fixture 14['bytes=500-500', 'bytes=511-799']['bytes=500-500', 'bytes=511-799']Passed
window-end-clamp fixture 15NoneNonePassed
window-end-clamp fixture 16['bytes=0-99', 'bytes=100-399']['bytes=0-99', 'bytes=100-399']Passed
window-end-clamp fixture 17['bytes=0-99', 'bytes=200-249']['bytes=0-99', 'bytes=200-249']Passed

SHA-256 / a71b7cec63461599514b0156edc6aab84c567c5dc4381d1dfbbb3936adb9b7f0

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    idx=x['index']
    T=x['total']
    if not idx or T<=0: return None
    reqs=[]
    H=x['header_end']
    if H>0 and not any(a<=0 and H-1<=b for a,b in x['cached']): reqs.append([0,H-1])
    k=-1
    for i,(tm,off) in enumerate(idx):
        if tm<=x['seek']: k=i
    o=idx[max(k,0)][1]
    if o>=T: return None
    e=min(T,o+x['window']-1)
    cur=o
    for a,b in sorted(x['cached']):
        if b<cur or a>e: continue
        if a>cur: reqs.append([cur,a-1])
        cur=max(cur,b+1)
    if cur<=e: reqs.append([cur,e])
    return ['bytes=%d-%d'%(a,b) for a,b in reqs]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('window-end-clamp fixture 0', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 1', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2000,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 2', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':3999,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 3', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[1000,100],[3000,600]],'seek':500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=100-399'])))
check('window-end-clamp fixture 4', json.loads(json.dumps(solve({'cached':[[0,49]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 5', json.loads(json.dumps(solve({'cached':[[50,200]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 6', json.loads(json.dumps(solve({'cached':[[0,150]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-799'])))
check('window-end-clamp fixture 7', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':4500,'total':1200,'window':400}))), json.loads(json.dumps(['bytes=0-99','bytes=900-1199'])))
check('window-end-clamp fixture 8', json.loads(json.dumps(solve({'cached':[[0,99],[600,649]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-599','bytes=650-799'])))
check('window-end-clamp fixture 9', json.loads(json.dumps(solve({'cached':[[0,99],[900,950]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-799'])))
check('window-end-clamp fixture 10', json.loads(json.dumps(solve({'cached':[[0,99],[799,850]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-798'])))
check('window-end-clamp fixture 11', json.loads(json.dumps(solve({'cached':[[0,99],[600,610],[540,700]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-539','bytes=701-799'])))
check('window-end-clamp fixture 12', json.loads(json.dumps(solve({'cached':[[0,99],[500,798]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=799-799'])))
check('window-end-clamp fixture 13', json.loads(json.dumps(solve({'cached':[[0,99],[500,510]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=511-799'])))
check('window-end-clamp fixture 14', json.loads(json.dumps(solve({'cached':[[0,99],[501,510]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-500','bytes=511-799'])))
check('window-end-clamp fixture 15', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,1300]],'seek':3000,'total':1200,'window':300}))), json.loads(json.dumps(None)))
check('window-end-clamp fixture 16', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':10,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=100-399'])))
check('window-end-clamp fixture 17', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[1000,200],[2000,300],[3000,400],[4000,500],[5000,600]],'seek':1000*N,'total':2000,'window':50}))), json.loads(json.dumps(['bytes=0-99',"bytes=%d-%d"%(100*N+100,100*N+149)])))
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
window-end-clamp fixture 0['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 1['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 2['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 3['bytes=0-99', 'bytes=100-399']['bytes=0-99', 'bytes=100-399']Passed
window-end-clamp fixture 4['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 5['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 6['bytes=500-799']['bytes=500-799']Passed
window-end-clamp fixture 7['bytes=0-99', 'bytes=900-1200']['bytes=0-99', 'bytes=900-1199']Failed
window-end-clamp fixture 8['bytes=500-599', 'bytes=650-799']['bytes=500-599', 'bytes=650-799']Passed
window-end-clamp fixture 9['bytes=500-799']['bytes=500-799']Passed
window-end-clamp fixture 10['bytes=500-798']['bytes=500-798']Passed
window-end-clamp fixture 11['bytes=500-539', 'bytes=701-799']['bytes=500-539', 'bytes=701-799']Passed
window-end-clamp fixture 12['bytes=799-799']['bytes=799-799']Passed
window-end-clamp fixture 13['bytes=511-799']['bytes=511-799']Passed
window-end-clamp fixture 14['bytes=500-500', 'bytes=511-799']['bytes=500-500', 'bytes=511-799']Passed
window-end-clamp fixture 15NoneNonePassed
window-end-clamp fixture 16['bytes=0-99', 'bytes=100-399']['bytes=0-99', 'bytes=100-399']Passed
window-end-clamp fixture 17['bytes=0-99', 'bytes=200-249']['bytes=0-99', 'bytes=200-249']Passed

SHA-256 / af7e139dc4ab25d333c8deff2a6946e1c7065a31272838dc3753dcababa76b6b

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    idx=x['index']
    T=x['total']
    if not idx or T<=0: return None
    reqs=[]
    H=x['header_end']
    if H>0 and not any(a<=0 and H-1<=b for a,b in x['cached']): reqs.append([0,H-1])
    k=-1
    for i,(tm,off) in enumerate(idx):
        if tm<=x['seek']: k=i
    o=idx[max(k,0)][1]
    if o>=T: return None
    e=min(T-1,o+x['window']-1)
    cur=o
    for a,b in sorted(x['cached']):
        if b<cur or a>e: continue
        if a>cur: reqs.append([cur,a-1])
        cur=max(cur,b+1)
    if cur<=e: reqs.append([cur,e])
    return ['bytes=%d-%d'%(a,b) for a,b in reqs]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('window-end-clamp fixture 0', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 1', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2000,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 2', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':3999,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 3', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[1000,100],[3000,600]],'seek':500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=100-399'])))
check('window-end-clamp fixture 4', json.loads(json.dumps(solve({'cached':[[0,49]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 5', json.loads(json.dumps(solve({'cached':[[50,200]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=500-799'])))
check('window-end-clamp fixture 6', json.loads(json.dumps(solve({'cached':[[0,150]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-799'])))
check('window-end-clamp fixture 7', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':4500,'total':1200,'window':400}))), json.loads(json.dumps(['bytes=0-99','bytes=900-1199'])))
check('window-end-clamp fixture 8', json.loads(json.dumps(solve({'cached':[[0,99],[600,649]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-599','bytes=650-799'])))
check('window-end-clamp fixture 9', json.loads(json.dumps(solve({'cached':[[0,99],[900,950]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-799'])))
check('window-end-clamp fixture 10', json.loads(json.dumps(solve({'cached':[[0,99],[799,850]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-798'])))
check('window-end-clamp fixture 11', json.loads(json.dumps(solve({'cached':[[0,99],[600,610],[540,700]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-539','bytes=701-799'])))
check('window-end-clamp fixture 12', json.loads(json.dumps(solve({'cached':[[0,99],[500,798]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=799-799'])))
check('window-end-clamp fixture 13', json.loads(json.dumps(solve({'cached':[[0,99],[500,510]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=511-799'])))
check('window-end-clamp fixture 14', json.loads(json.dumps(solve({'cached':[[0,99],[501,510]],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':2500,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=500-500','bytes=511-799'])))
check('window-end-clamp fixture 15', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,1300]],'seek':3000,'total':1200,'window':300}))), json.loads(json.dumps(None)))
check('window-end-clamp fixture 16', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[2000,500],[4000,900]],'seek':10,'total':1200,'window':300}))), json.loads(json.dumps(['bytes=0-99','bytes=100-399'])))
check('window-end-clamp fixture 17', json.loads(json.dumps(solve({'cached':[],'header_end':100,'index':[[0,100],[1000,200],[2000,300],[3000,400],[4000,500],[5000,600]],'seek':1000*N,'total':2000,'window':50}))), json.loads(json.dumps(['bytes=0-99',"bytes=%d-%d"%(100*N+100,100*N+149)])))
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
window-end-clamp fixture 0['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 1['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 2['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 3['bytes=0-99', 'bytes=100-399']['bytes=0-99', 'bytes=100-399']Passed
window-end-clamp fixture 4['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 5['bytes=0-99', 'bytes=500-799']['bytes=0-99', 'bytes=500-799']Passed
window-end-clamp fixture 6['bytes=500-799']['bytes=500-799']Passed
window-end-clamp fixture 7['bytes=0-99', 'bytes=900-1199']['bytes=0-99', 'bytes=900-1199']Passed
window-end-clamp fixture 8['bytes=500-599', 'bytes=650-799']['bytes=500-599', 'bytes=650-799']Passed
window-end-clamp fixture 9['bytes=500-799']['bytes=500-799']Passed
window-end-clamp fixture 10['bytes=500-798']['bytes=500-798']Passed
window-end-clamp fixture 11['bytes=500-539', 'bytes=701-799']['bytes=500-539', 'bytes=701-799']Passed
window-end-clamp fixture 12['bytes=799-799']['bytes=799-799']Passed
window-end-clamp fixture 13['bytes=511-799']['bytes=511-799']Passed
window-end-clamp fixture 14['bytes=500-500', 'bytes=511-799']['bytes=500-500', 'bytes=511-799']Passed
window-end-clamp fixture 15NoneNonePassed
window-end-clamp fixture 16['bytes=0-99', 'bytes=100-399']['bytes=0-99', 'bytes=100-399']Passed
window-end-clamp fixture 17['bytes=0-99', 'bytes=200-249']['bytes=0-99', 'bytes=200-249']Passed

SHA-256 / f75b1d661ce5beafb8ef2831ee8457cb550f27048bc9330bda3b09b7d35f970f

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:27.004740+00:00.

Case digest / 31e87e1ec46540ad058a48eb45828436f4fbb44d36a3776dcf2e9baa0ec3c14d