{"abstract":"Deque scatter drain skips a zero segment instead of stopping.","category":"Bounded deques","checks":7,"contract":"Drain a bounded deque into caller-provided segment capacities, respecting a total delivery limit. Stop at the first zero-length segment, exhausted input or exhausted limit. Preserve undispatched suffix and report consumed count and unused total budget.","evaluation_group":"s3-bounded-deques-segmented-drain","failed_approach":"The partial repair still applies the incorrect transition to an admitted boundary or multi-element case.","family":"s3-bounded-deques-segmented-drain-zero-segment","id":"FA-47246","implementations":{"attempt":{"sha256":"d7f8dacca89ec2df3d24644847152427a1c54afd4b3f865f12532d9af84d0843","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,capacities,limit=x\n    segments=[]\n    position=0\n    for room in capacities:\n        count=min(room,len(a)-position,limit-position)\n        if count<=0:\n            if room==0: continue\n            break\n        segment=a[position:position+count]\n        segments.append(segment)\n        position+=count\n    remaining=a[position:]\n    return [segments,remaining,position,len(segments),limit-position]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([[N,N+1,N+2,N+3,N+4],[2,2,2],4]), {1: [[[1, 2], [3, 4]], [5], 4, 2, 0], 2: [[[2, 3], [4, 5]], [6], 4, 2, 0], 3: [[[3, 4], [5, 6]], [7], 4, 2, 0], 4: [[[4, 5], [6, 7]], [8], 4, 2, 0], 5: [[[5, 6], [7, 8]], [9], 4, 2, 0]}[N])\ncheck('1', solve([[N,N+1,N+2],[1,0,2],3]), {1: [[[1]], [2, 3], 1, 1, 2], 2: [[[2]], [3, 4], 1, 1, 2], 3: [[[3]], [4, 5], 1, 1, 2], 4: [[[4]], [5, 6], 1, 1, 2], 5: [[[5]], [6, 7], 1, 1, 2]}[N])\ncheck('2', solve([[N,N+1],[4,2],6]), {1: [[[1, 2]], [], 2, 1, 4], 2: [[[2, 3]], [], 2, 1, 4], 3: [[[3, 4]], [], 2, 1, 4], 4: [[[4, 5]], [], 2, 1, 4], 5: [[[5, 6]], [], 2, 1, 4]}[N])\ncheck('3', solve([[],[2],3]), {1: [[], [], 0, 0, 3], 2: [[], [], 0, 0, 3], 3: [[], [], 0, 0, 3], 4: [[], [], 0, 0, 3], 5: [[], [], 0, 0, 3]}[N])\ncheck('4', solve([[N,N+1],[1,2],0]), {1: [[], [1, 2], 0, 0, 0], 2: [[], [2, 3], 0, 0, 0], 3: [[], [3, 4], 0, 0, 0], 4: [[], [4, 5], 0, 0, 0], 5: [[], [5, 6], 0, 0, 0]}[N])\ncheck('5', solve([[N,N+1,N+2,N+3],[1,2,1],4]), {1: [[[1], [2, 3], [4]], [], 4, 3, 0], 2: [[[2], [3, 4], [5]], [], 4, 3, 0], 3: [[[3], [4, 5], [6]], [], 4, 3, 0], 4: [[[4], [5, 6], [7]], [], 4, 3, 0], 5: [[[5], [6, 7], [8]], [], 4, 3, 0]}[N])\ncheck('6', solve([[N,N+1],[1,1],3]), {1: [[[1], [2]], [], 2, 2, 1], 2: [[[2], [3]], [], 2, 2, 1], 3: [[[3], [4]], [], 2, 2, 1], 4: [[[4], [5]], [], 2, 2, 1], 5: [[[5], [6]], [], 2, 2, 1]}[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":"2e794aa6dd7258e3b22970b616da47f89bfa721e464ddd3a0033bd857a2769b9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,capacities,limit=x\n    segments=[]\n    position=0\n    for room in capacities:\n        count=min(room,len(a)-position,limit-position)\n        if count<=0:continue\n        segment=a[position:position+count]\n        segments.append(segment)\n        position+=count\n    remaining=a[position:]\n    return [segments,remaining,position,len(segments),limit-position]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([[N,N+1,N+2,N+3,N+4],[2,2,2],4]), {1: [[[1, 2], [3, 4]], [5], 4, 2, 0], 2: [[[2, 3], [4, 5]], [6], 4, 2, 0], 3: [[[3, 4], [5, 6]], [7], 4, 2, 0], 4: [[[4, 5], [6, 7]], [8], 4, 2, 0], 5: [[[5, 6], [7, 8]], [9], 4, 2, 0]}[N])\ncheck('1', solve([[N,N+1,N+2],[1,0,2],3]), {1: [[[1]], [2, 3], 1, 1, 2], 2: [[[2]], [3, 4], 1, 1, 2], 3: [[[3]], [4, 5], 1, 1, 2], 4: [[[4]], [5, 6], 1, 1, 2], 5: [[[5]], [6, 7], 1, 1, 2]}[N])\ncheck('2', solve([[N,N+1],[4,2],6]), {1: [[[1, 2]], [], 2, 1, 4], 2: [[[2, 3]], [], 2, 1, 4], 3: [[[3, 4]], [], 2, 1, 4], 4: [[[4, 5]], [], 2, 1, 4], 5: [[[5, 6]], [], 2, 1, 4]}[N])\ncheck('3', solve([[],[2],3]), {1: [[], [], 0, 0, 3], 2: [[], [], 0, 0, 3], 3: [[], [], 0, 0, 3], 4: [[], [], 0, 0, 3], 5: [[], [], 0, 0, 3]}[N])\ncheck('4', solve([[N,N+1],[1,2],0]), {1: [[], [1, 2], 0, 0, 0], 2: [[], [2, 3], 0, 0, 0], 3: [[], [3, 4], 0, 0, 0], 4: [[], [4, 5], 0, 0, 0], 5: [[], [5, 6], 0, 0, 0]}[N])\ncheck('5', solve([[N,N+1,N+2,N+3],[1,2,1],4]), {1: [[[1], [2, 3], [4]], [], 4, 3, 0], 2: [[[2], [3, 4], [5]], [], 4, 3, 0], 3: [[[3], [4, 5], [6]], [], 4, 3, 0], 4: [[[4], [5, 6], [7]], [], 4, 3, 0], 5: [[[5], [6, 7], [8]], [], 4, 3, 0]}[N])\ncheck('6', solve([[N,N+1],[1,1],3]), {1: [[[1], [2]], [], 2, 2, 1], 2: [[[2], [3]], [], 2, 2, 1], 3: [[[3], [4]], [], 2, 2, 1], 4: [[[4], [5]], [], 2, 2, 1], 5: [[[5], [6]], [], 2, 2, 1]}[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"},"fixed":{"sha256":"65f1b933eadc060bf6da4f1dcc29c02366d11963d7e09e0f459ee62b87696f14","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,capacities,limit=x\n    segments=[]\n    position=0\n    for room in capacities:\n        count=min(room,len(a)-position,limit-position)\n        if count<=0:break\n        segment=a[position:position+count]\n        segments.append(segment)\n        position+=count\n    remaining=a[position:]\n    return [segments,remaining,position,len(segments),limit-position]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([[N,N+1,N+2,N+3,N+4],[2,2,2],4]), {1: [[[1, 2], [3, 4]], [5], 4, 2, 0], 2: [[[2, 3], [4, 5]], [6], 4, 2, 0], 3: [[[3, 4], [5, 6]], [7], 4, 2, 0], 4: [[[4, 5], [6, 7]], [8], 4, 2, 0], 5: [[[5, 6], [7, 8]], [9], 4, 2, 0]}[N])\ncheck('1', solve([[N,N+1,N+2],[1,0,2],3]), {1: [[[1]], [2, 3], 1, 1, 2], 2: [[[2]], [3, 4], 1, 1, 2], 3: [[[3]], [4, 5], 1, 1, 2], 4: [[[4]], [5, 6], 1, 1, 2], 5: [[[5]], [6, 7], 1, 1, 2]}[N])\ncheck('2', solve([[N,N+1],[4,2],6]), {1: [[[1, 2]], [], 2, 1, 4], 2: [[[2, 3]], [], 2, 1, 4], 3: [[[3, 4]], [], 2, 1, 4], 4: [[[4, 5]], [], 2, 1, 4], 5: [[[5, 6]], [], 2, 1, 4]}[N])\ncheck('3', solve([[],[2],3]), {1: [[], [], 0, 0, 3], 2: [[], [], 0, 0, 3], 3: [[], [], 0, 0, 3], 4: [[], [], 0, 0, 3], 5: [[], [], 0, 0, 3]}[N])\ncheck('4', solve([[N,N+1],[1,2],0]), {1: [[], [1, 2], 0, 0, 0], 2: [[], [2, 3], 0, 0, 0], 3: [[], [3, 4], 0, 0, 0], 4: [[], [4, 5], 0, 0, 0], 5: [[], [5, 6], 0, 0, 0]}[N])\ncheck('5', solve([[N,N+1,N+2,N+3],[1,2,1],4]), {1: [[[1], [2, 3], [4]], [], 4, 3, 0], 2: [[[2], [3, 4], [5]], [], 4, 3, 0], 3: [[[3], [4, 5], [6]], [], 4, 3, 0], 4: [[[4], [5, 6], [7]], [], 4, 3, 0], 5: [[[5], [6, 7], [8]], [], 4, 3, 0]}[N])\ncheck('6', solve([[N,N+1],[1,1],3]), {1: [[[1], [2]], [], 2, 2, 1], 2: [[[2], [3]], [], 2, 2, 1], 3: [[[3], [4]], [], 2, 2, 1], 4: [[[4], [5]], [], 2, 2, 1], 5: [[[5], [6]], [], 2, 2, 1]}[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":"Offline finite deterministic model; no claim of production implementation or concurrent memory-model 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-bounded-deques-segmented-drain-zero-segment","generated_at":"2026-09-29T14:44:39.726331+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Controlled bounded deque implementation model with explicit storage and lifecycle observations.","repair":"Restore the documented zero segment invariant in segmented-drain.","root_cause":"Deque scatter drain skips a zero segment instead of stopping.","sha256":"1bf78bac2c05c286a5a1ee047f80e6f83f24f4e7b0aeb9bd711356a9ae018dbc","title":"Deque scatter drain skips a zero segment instead of stopping · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.266,"exit_code":1,"observations":[{"actual":[[[1,2],[3,4]],[5],4,2,0],"check":"0","expected":[[[1,2],[3,4]],[5],4,2,0],"passed":true},{"actual":[[[1],[2,3]],[],3,2,0],"check":"1","expected":[[[1]],[2,3],1,1,2],"passed":false},{"actual":[[[1,2]],[],2,1,4],"check":"2","expected":[[[1,2]],[],2,1,4],"passed":true},{"actual":[[],[],0,0,3],"check":"3","expected":[[],[],0,0,3],"passed":true},{"actual":[[],[1,2],0,0,0],"check":"4","expected":[[],[1,2],0,0,0],"passed":true},{"actual":[[[1],[2,3],[4]],[],4,3,0],"check":"5","expected":[[[1],[2,3],[4]],[],4,3,0],"passed":true},{"actual":[[[1],[2]],[],2,2,1],"check":"6","expected":[[[1],[2]],[],2,2,1],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[[1, 2], [3, 4]], [5], 4, 2, 0], \"expected\": [[[1, 2], [3, 4]], [5], 4, 2, 0], \"passed\": true}, {\"check\": \"1\", \"actual\": [[[1], [2, 3]], [], 3, 2, 0], \"expected\": [[[1]], [2, 3], 1, 1, 2], \"passed\": false}, {\"check\": \"2\", \"actual\": [[[1, 2]], [], 2, 1, 4], \"expected\": [[[1, 2]], [], 2, 1, 4], \"passed\": true}, {\"check\": \"3\", \"actual\": [[], [], 0, 0, 3], \"expected\": [[], [], 0, 0, 3], \"passed\": true}, {\"check\": \"4\", \"actual\": [[], [1, 2], 0, 0, 0], \"expected\": [[], [1, 2], 0, 0, 0], \"passed\": true}, {\"check\": \"5\", \"actual\": [[[1], [2, 3], [4]], [], 4, 3, 0], \"expected\": [[[1], [2, 3], [4]], [], 4, 3, 0], \"passed\": true}, {\"check\": \"6\", \"actual\": [[[1], [2]], [], 2, 2, 1], \"expected\": [[[1], [2]], [], 2, 2, 1], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.59,"exit_code":1,"observations":[{"actual":[[[1,2],[3,4]],[5],4,2,0],"check":"0","expected":[[[1,2],[3,4]],[5],4,2,0],"passed":true},{"actual":[[[1],[2,3]],[],3,2,0],"check":"1","expected":[[[1]],[2,3],1,1,2],"passed":false},{"actual":[[[1,2]],[],2,1,4],"check":"2","expected":[[[1,2]],[],2,1,4],"passed":true},{"actual":[[],[],0,0,3],"check":"3","expected":[[],[],0,0,3],"passed":true},{"actual":[[],[1,2],0,0,0],"check":"4","expected":[[],[1,2],0,0,0],"passed":true},{"actual":[[[1],[2,3],[4]],[],4,3,0],"check":"5","expected":[[[1],[2,3],[4]],[],4,3,0],"passed":true},{"actual":[[[1],[2]],[],2,2,1],"check":"6","expected":[[[1],[2]],[],2,2,1],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[[1, 2], [3, 4]], [5], 4, 2, 0], \"expected\": [[[1, 2], [3, 4]], [5], 4, 2, 0], \"passed\": true}, {\"check\": \"1\", \"actual\": [[[1], [2, 3]], [], 3, 2, 0], \"expected\": [[[1]], [2, 3], 1, 1, 2], \"passed\": false}, {\"check\": \"2\", \"actual\": [[[1, 2]], [], 2, 1, 4], \"expected\": [[[1, 2]], [], 2, 1, 4], \"passed\": true}, {\"check\": \"3\", \"actual\": [[], [], 0, 0, 3], \"expected\": [[], [], 0, 0, 3], \"passed\": true}, {\"check\": \"4\", \"actual\": [[], [1, 2], 0, 0, 0], \"expected\": [[], [1, 2], 0, 0, 0], \"passed\": true}, {\"check\": \"5\", \"actual\": [[[1], [2, 3], [4]], [], 4, 3, 0], \"expected\": [[[1], [2, 3], [4]], [], 4, 3, 0], \"passed\": true}, {\"check\": \"6\", \"actual\": [[[1], [2]], [], 2, 2, 1], \"expected\": [[[1], [2]], [], 2, 2, 1], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.04,"exit_code":0,"observations":[{"actual":[[[1,2],[3,4]],[5],4,2,0],"check":"0","expected":[[[1,2],[3,4]],[5],4,2,0],"passed":true},{"actual":[[[1]],[2,3],1,1,2],"check":"1","expected":[[[1]],[2,3],1,1,2],"passed":true},{"actual":[[[1,2]],[],2,1,4],"check":"2","expected":[[[1,2]],[],2,1,4],"passed":true},{"actual":[[],[],0,0,3],"check":"3","expected":[[],[],0,0,3],"passed":true},{"actual":[[],[1,2],0,0,0],"check":"4","expected":[[],[1,2],0,0,0],"passed":true},{"actual":[[[1],[2,3],[4]],[],4,3,0],"check":"5","expected":[[[1],[2,3],[4]],[],4,3,0],"passed":true},{"actual":[[[1],[2]],[],2,2,1],"check":"6","expected":[[[1],[2]],[],2,2,1],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[[1, 2], [3, 4]], [5], 4, 2, 0], \"expected\": [[[1, 2], [3, 4]], [5], 4, 2, 0], \"passed\": true}, {\"check\": \"1\", \"actual\": [[[1]], [2, 3], 1, 1, 2], \"expected\": [[[1]], [2, 3], 1, 1, 2], \"passed\": true}, {\"check\": \"2\", \"actual\": [[[1, 2]], [], 2, 1, 4], \"expected\": [[[1, 2]], [], 2, 1, 4], \"passed\": true}, {\"check\": \"3\", \"actual\": [[], [], 0, 0, 3], \"expected\": [[], [], 0, 0, 3], \"passed\": true}, {\"check\": \"4\", \"actual\": [[], [1, 2], 0, 0, 0], \"expected\": [[], [1, 2], 0, 0, 0], \"passed\": true}, {\"check\": \"5\", \"actual\": [[[1], [2, 3], [4]], [], 4, 3, 0], \"expected\": [[[1], [2, 3], [4]], [], 4, 3, 0], \"passed\": true}, {\"check\": \"6\", \"actual\": [[[1], [2]], [], 2, 2, 1], \"expected\": [[[1], [2]], [], 2, 2, 1], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}