{"abstract":"An object store maps upload part numbers and byte ranges onto stored parts: part numbers are one-based and positive.","category":"HTTP ranges","checks":14,"contract":"x has stored part sizes in order and a query. [\"part\",n] (1-based) returns [206,bytes a-b/total] for that part, or [416,bytes */total] when n is outside 1..count or the part is empty. [\"range\",a,b] with inclusive bounds returns [416,bytes */total] unless 0<=a<=b<total; otherwise [206,rows] where each intersecting nonempty part yields [part-number,offset-within-part,count] in part order.","contract_signature":"x","evaluation_group":"s3-http_ranges-part-number-range-map","failed_approach":"The partial repair uses sizes=x['parts']\ntotal=sum(sizes)\nstarts=[]\nacc=0\nfor s in sizes:\n    starts.append(acc)\n    acc+=s\nq=x['query']\nif q[0]=='part':\n    n=q[1]\n    if not n<=len(sizes) or sizes[n-1]==0: return [416,'bytes */%d'%total]\n    a=starts[n-1]\n    return [206,'bytes %d-%d/%d'%(a,a+sizes[n-1]-1,total)]\na,b=q[1],q[2]\nif not 0<=a<=b<total: return [416,'bytes */%d'%total]\nout=[]\nfor i,s in enumerate(sizes):\n    lo=max(a,starts[i])\n    hi=min(b,starts[i]+s-1)\n    if lo<=hi: out.append([i+1,lo-starts[i],hi-lo+1])\nreturn [206,out], which still violates the stated contract.","family":"s3-http_ranges-part-number-range-map-part-number-domain","id":"FA-27806","implementations":{"attempt":{"sha256":"23f8cb1620030d0d3d1d0f040c0cb3904b7ef9ca81738a0cacd413660446518f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    sizes=x['parts']\n    total=sum(sizes)\n    starts=[]\n    acc=0\n    for s in sizes:\n        starts.append(acc)\n        acc+=s\n    q=x['query']\n    if q[0]=='part':\n        n=q[1]\n        if not n<=len(sizes) or sizes[n-1]==0: return [416,'bytes */%d'%total]\n        a=starts[n-1]\n        return [206,'bytes %d-%d/%d'%(a,a+sizes[n-1]-1,total)]\n    a,b=q[1],q[2]\n    if not 0<=a<=b<total: return [416,'bytes */%d'%total]\n    out=[]\n    for i,s in enumerate(sizes):\n        lo=max(a,starts[i])\n        hi=min(b,starts[i]+s-1)\n        if lo<=hi: out.append([i+1,lo-starts[i],hi-lo+1])\n    return [206,out]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('part-number-domain fixture 0', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',2]}))), json.loads(json.dumps([206,'bytes 5-7/12'])))\ncheck('part-number-domain fixture 1', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',3]}))), json.loads(json.dumps([206,'bytes 8-11/12'])))\ncheck('part-number-domain fixture 2', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',0]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('part-number-domain fixture 3', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',-1]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('part-number-domain fixture 4', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',4]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('part-number-domain fixture 5', json.loads(json.dumps(solve({'parts':[5,0,4],'query':['part',2]}))), json.loads(json.dumps([416,'bytes */9'])))\ncheck('part-number-domain fixture 6', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',3,9]}))), json.loads(json.dumps([206,[[1,3,2],[2,0,3],[3,0,2]]])))\ncheck('part-number-domain fixture 7', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',4,5]}))), json.loads(json.dumps([206,[[1,4,1],[2,0,1]]])))\ncheck('part-number-domain fixture 8', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',5,7]}))), json.loads(json.dumps([206,[[2,0,3]]])))\ncheck('part-number-domain fixture 9', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',0,12]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('part-number-domain fixture 10', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',0,11]}))), json.loads(json.dumps([206,[[1,0,5],[2,0,3],[3,0,4]]])))\ncheck('part-number-domain fixture 11', json.loads(json.dumps(solve({'parts':[5,0,4],'query':['range',4,5]}))), json.loads(json.dumps([206,[[1,4,1],[3,0,1]]])))\ncheck('part-number-domain fixture 12', json.loads(json.dumps(solve({'parts':[],'query':['part',1]}))), json.loads(json.dumps([416,'bytes */0'])))\ncheck('part-number-domain fixture 13', json.loads(json.dumps(solve({'parts':[N,N],'query':['part',2]}))), json.loads(json.dumps([206,\"bytes %d-%d/%d\"%(N,2*N-1,2*N)])))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"5af7859aaed053ebeb3acb67e1fea821f9e2949e0c2b1877e7d5eeb0e46d980c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    sizes=x['parts']\n    total=sum(sizes)\n    starts=[]\n    acc=0\n    for s in sizes:\n        starts.append(acc)\n        acc+=s\n    q=x['query']\n    if q[0]=='part':\n        n=q[1]\n        if not 0<=n<=len(sizes) or sizes[n-1]==0: return [416,'bytes */%d'%total]\n        a=starts[n-1]\n        return [206,'bytes %d-%d/%d'%(a,a+sizes[n-1]-1,total)]\n    a,b=q[1],q[2]\n    if not 0<=a<=b<total: return [416,'bytes */%d'%total]\n    out=[]\n    for i,s in enumerate(sizes):\n        lo=max(a,starts[i])\n        hi=min(b,starts[i]+s-1)\n        if lo<=hi: out.append([i+1,lo-starts[i],hi-lo+1])\n    return [206,out]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('part-number-domain fixture 0', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',2]}))), json.loads(json.dumps([206,'bytes 5-7/12'])))\ncheck('part-number-domain fixture 1', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',3]}))), json.loads(json.dumps([206,'bytes 8-11/12'])))\ncheck('part-number-domain fixture 2', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',0]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('part-number-domain fixture 3', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',-1]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('part-number-domain fixture 4', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',4]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('part-number-domain fixture 5', json.loads(json.dumps(solve({'parts':[5,0,4],'query':['part',2]}))), json.loads(json.dumps([416,'bytes */9'])))\ncheck('part-number-domain fixture 6', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',3,9]}))), json.loads(json.dumps([206,[[1,3,2],[2,0,3],[3,0,2]]])))\ncheck('part-number-domain fixture 7', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',4,5]}))), json.loads(json.dumps([206,[[1,4,1],[2,0,1]]])))\ncheck('part-number-domain fixture 8', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',5,7]}))), json.loads(json.dumps([206,[[2,0,3]]])))\ncheck('part-number-domain fixture 9', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',0,12]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('part-number-domain fixture 10', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',0,11]}))), json.loads(json.dumps([206,[[1,0,5],[2,0,3],[3,0,4]]])))\ncheck('part-number-domain fixture 11', json.loads(json.dumps(solve({'parts':[5,0,4],'query':['range',4,5]}))), json.loads(json.dumps([206,[[1,4,1],[3,0,1]]])))\ncheck('part-number-domain fixture 12', json.loads(json.dumps(solve({'parts':[],'query':['part',1]}))), json.loads(json.dumps([416,'bytes */0'])))\ncheck('part-number-domain fixture 13', json.loads(json.dumps(solve({'parts':[N,N],'query':['part',2]}))), json.loads(json.dumps([206,\"bytes %d-%d/%d\"%(N,2*N-1,2*N)])))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-http_ranges-part-number-range-map-part-number-domain","generated_at":"2026-09-29T14:41:28.344007+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Range responses combine representation identity, conditional requests, framing, and partial-object state.","root_cause":"The part-number-range-map-part-number-domain decision uses sizes=x['parts']\ntotal=sum(sizes)\nstarts=[]\nacc=0\nfor s in sizes:\n    starts.append(acc)\n    acc+=s\nq=x['query']\nif q[0]=='part':\n    n=q[1]\n    if not 0<=n<=len(sizes) or sizes[n-1]==0: return [416,'bytes */%d'%total]\n    a=starts[n-1]\n    return [206,'bytes %d-%d/%d'%(a,a+sizes[n-1]-1,total)]\na,b=q[1],q[2]\nif not 0<=a<=b<total: return [416,'bytes */%d'%total]\nout=[]\nfor i,s in enumerate(sizes):\n    lo=max(a,starts[i])\n    hi=min(b,starts[i]+s-1)\n    if lo<=hi: out.append([i+1,lo-starts[i],hi-lo+1])\nreturn [206,out].","sha256":"c9d68d5212ab7e00a0cfbbdf9e30e1cabdc74ae2d62b88671b29d3c10b9235ab","title":"An object store maps upload part numbers and byte ranges onto stored parts: part numbers are one-based and positive · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.646,"exit_code":1,"observations":[{"actual":[206,"bytes 5-7/12"],"check":"part-number-domain fixture 0","expected":[206,"bytes 5-7/12"],"passed":true},{"actual":[206,"bytes 8-11/12"],"check":"part-number-domain fixture 1","expected":[206,"bytes 8-11/12"],"passed":true},{"actual":[206,"bytes 8-11/12"],"check":"part-number-domain fixture 2","expected":[416,"bytes */12"],"passed":false},{"actual":[206,"bytes 5-7/12"],"check":"part-number-domain fixture 3","expected":[416,"bytes */12"],"passed":false},{"actual":[416,"bytes */12"],"check":"part-number-domain fixture 4","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */9"],"check":"part-number-domain fixture 5","expected":[416,"bytes */9"],"passed":true},{"actual":[206,[[1,3,2],[2,0,3],[3,0,2]]],"check":"part-number-domain fixture 6","expected":[206,[[1,3,2],[2,0,3],[3,0,2]]],"passed":true},{"actual":[206,[[1,4,1],[2,0,1]]],"check":"part-number-domain fixture 7","expected":[206,[[1,4,1],[2,0,1]]],"passed":true},{"actual":[206,[[2,0,3]]],"check":"part-number-domain fixture 8","expected":[206,[[2,0,3]]],"passed":true},{"actual":[416,"bytes */12"],"check":"part-number-domain fixture 9","expected":[416,"bytes */12"],"passed":true},{"actual":[206,[[1,0,5],[2,0,3],[3,0,4]]],"check":"part-number-domain fixture 10","expected":[206,[[1,0,5],[2,0,3],[3,0,4]]],"passed":true},{"actual":[206,[[1,4,1],[3,0,1]]],"check":"part-number-domain fixture 11","expected":[206,[[1,4,1],[3,0,1]]],"passed":true},{"actual":[416,"bytes */0"],"check":"part-number-domain fixture 12","expected":[416,"bytes */0"],"passed":true},{"actual":[206,"bytes 1-1/2"],"check":"part-number-domain fixture 13","expected":[206,"bytes 1-1/2"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"part-number-domain fixture 0\", \"actual\": [206, \"bytes 5-7/12\"], \"expected\": [206, \"bytes 5-7/12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 1\", \"actual\": [206, \"bytes 8-11/12\"], \"expected\": [206, \"bytes 8-11/12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 2\", \"actual\": [206, \"bytes 8-11/12\"], \"expected\": [416, \"bytes */12\"], \"passed\": false}, {\"check\": \"part-number-domain fixture 3\", \"actual\": [206, \"bytes 5-7/12\"], \"expected\": [416, \"bytes */12\"], \"passed\": false}, {\"check\": \"part-number-domain fixture 4\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 5\", \"actual\": [416, \"bytes */9\"], \"expected\": [416, \"bytes */9\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 6\", \"actual\": [206, [[1, 3, 2], [2, 0, 3], [3, 0, 2]]], \"expected\": [206, [[1, 3, 2], [2, 0, 3], [3, 0, 2]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 7\", \"actual\": [206, [[1, 4, 1], [2, 0, 1]]], \"expected\": [206, [[1, 4, 1], [2, 0, 1]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 8\", \"actual\": [206, [[2, 0, 3]]], \"expected\": [206, [[2, 0, 3]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 9\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 10\", \"actual\": [206, [[1, 0, 5], [2, 0, 3], [3, 0, 4]]], \"expected\": [206, [[1, 0, 5], [2, 0, 3], [3, 0, 4]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 11\", \"actual\": [206, [[1, 4, 1], [3, 0, 1]]], \"expected\": [206, [[1, 4, 1], [3, 0, 1]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 12\", \"actual\": [416, \"bytes */0\"], \"expected\": [416, \"bytes */0\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 13\", \"actual\": [206, \"bytes 1-1/2\"], \"expected\": [206, \"bytes 1-1/2\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.904,"exit_code":1,"observations":[{"actual":[206,"bytes 5-7/12"],"check":"part-number-domain fixture 0","expected":[206,"bytes 5-7/12"],"passed":true},{"actual":[206,"bytes 8-11/12"],"check":"part-number-domain fixture 1","expected":[206,"bytes 8-11/12"],"passed":true},{"actual":[206,"bytes 8-11/12"],"check":"part-number-domain fixture 2","expected":[416,"bytes */12"],"passed":false},{"actual":[416,"bytes */12"],"check":"part-number-domain fixture 3","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */12"],"check":"part-number-domain fixture 4","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */9"],"check":"part-number-domain fixture 5","expected":[416,"bytes */9"],"passed":true},{"actual":[206,[[1,3,2],[2,0,3],[3,0,2]]],"check":"part-number-domain fixture 6","expected":[206,[[1,3,2],[2,0,3],[3,0,2]]],"passed":true},{"actual":[206,[[1,4,1],[2,0,1]]],"check":"part-number-domain fixture 7","expected":[206,[[1,4,1],[2,0,1]]],"passed":true},{"actual":[206,[[2,0,3]]],"check":"part-number-domain fixture 8","expected":[206,[[2,0,3]]],"passed":true},{"actual":[416,"bytes */12"],"check":"part-number-domain fixture 9","expected":[416,"bytes */12"],"passed":true},{"actual":[206,[[1,0,5],[2,0,3],[3,0,4]]],"check":"part-number-domain fixture 10","expected":[206,[[1,0,5],[2,0,3],[3,0,4]]],"passed":true},{"actual":[206,[[1,4,1],[3,0,1]]],"check":"part-number-domain fixture 11","expected":[206,[[1,4,1],[3,0,1]]],"passed":true},{"actual":[416,"bytes */0"],"check":"part-number-domain fixture 12","expected":[416,"bytes */0"],"passed":true},{"actual":[206,"bytes 1-1/2"],"check":"part-number-domain fixture 13","expected":[206,"bytes 1-1/2"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"part-number-domain fixture 0\", \"actual\": [206, \"bytes 5-7/12\"], \"expected\": [206, \"bytes 5-7/12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 1\", \"actual\": [206, \"bytes 8-11/12\"], \"expected\": [206, \"bytes 8-11/12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 2\", \"actual\": [206, \"bytes 8-11/12\"], \"expected\": [416, \"bytes */12\"], \"passed\": false}, {\"check\": \"part-number-domain fixture 3\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 4\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 5\", \"actual\": [416, \"bytes */9\"], \"expected\": [416, \"bytes */9\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 6\", \"actual\": [206, [[1, 3, 2], [2, 0, 3], [3, 0, 2]]], \"expected\": [206, [[1, 3, 2], [2, 0, 3], [3, 0, 2]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 7\", \"actual\": [206, [[1, 4, 1], [2, 0, 1]]], \"expected\": [206, [[1, 4, 1], [2, 0, 1]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 8\", \"actual\": [206, [[2, 0, 3]]], \"expected\": [206, [[2, 0, 3]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 9\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 10\", \"actual\": [206, [[1, 0, 5], [2, 0, 3], [3, 0, 4]]], \"expected\": [206, [[1, 0, 5], [2, 0, 3], [3, 0, 4]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 11\", \"actual\": [206, [[1, 4, 1], [3, 0, 1]]], \"expected\": [206, [[1, 4, 1], [3, 0, 1]]], \"passed\": true}, {\"check\": \"part-number-domain fixture 12\", \"actual\": [416, \"bytes */0\"], \"expected\": [416, \"bytes */0\"], \"passed\": true}, {\"check\": \"part-number-domain fixture 13\", \"actual\": [206, \"bytes 1-1/2\"], \"expected\": [206, \"bytes 1-1/2\"], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}