{"abstract":"Zip drain consumes an extra right entry.","category":"Bounded deques","checks":6,"contract":"Consume paired entries from two bounded deques up to a limit, preserving each unmatched suffix. Return pairs, both remainders and pair count.","evaluation_group":"s3-bounded-deques-zip-drain","failed_approach":"The partial repair still applies the incorrect transition to an admitted boundary or multi-element case.","family":"s3-bounded-deques-zip-drain-right-remainder","id":"FA-46276","implementations":{"attempt":{"sha256":"94294de7cb6998dfa153066c55ee7aeed685fa8db036f8f9e83674fb39c9c526","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,b,limit=x\n    count=min(len(a),len(b),limit)\n    pairs=[[a[i],b[i]] for i in range(count)]\n    left=a[count:]\n    right=b[count:] if count==0 else b[count+1:]\n    return [pairs,left,right,count]\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],3]), {1: [[[1, 4], [2, 5]], [3], [], 2], 2: [[[2, 5], [3, 6]], [4], [], 2], 3: [[[3, 6], [4, 7]], [5], [], 2], 4: [[[4, 7], [5, 8]], [6], [], 2], 5: [[[5, 8], [6, 9]], [7], [], 2]}[N])\ncheck('1', solve([[N],[N+1,N+2],3]), {1: [[[1, 2]], [], [3], 1], 2: [[[2, 3]], [], [4], 1], 3: [[[3, 4]], [], [5], 1], 4: [[[4, 5]], [], [6], 1], 5: [[[5, 6]], [], [7], 1]}[N])\ncheck('2', solve([[N,N+1],[N+2,N+3],1]), {1: [[[1, 3]], [2], [4], 1], 2: [[[2, 4]], [3], [5], 1], 3: [[[3, 5]], [4], [6], 1], 4: [[[4, 6]], [5], [7], 1], 5: [[[5, 7]], [6], [8], 1]}[N])\ncheck('3', solve([[],[N],2]), {1: [[], [], [1], 0], 2: [[], [], [2], 0], 3: [[], [], [3], 0], 4: [[], [], [4], 0], 5: [[], [], [5], 0]}[N])\ncheck('4', solve([[N],[],2]), {1: [[], [1], [], 0], 2: [[], [2], [], 0], 3: [[], [3], [], 0], 4: [[], [4], [], 0], 5: [[], [5], [], 0]}[N])\ncheck('5', solve([[N,N+1],[N+2,N+3],0]), {1: [[], [1, 2], [3, 4], 0], 2: [[], [2, 3], [4, 5], 0], 3: [[], [3, 4], [5, 6], 0], 4: [[], [4, 5], [6, 7], 0], 5: [[], [5, 6], [7, 8], 0]}[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":"ad33495d3bf7f0e723413e0413470357d00683bade78a82360620a802d9b042f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,b,limit=x\n    count=min(len(a),len(b),limit)\n    pairs=[[a[i],b[i]] for i in range(count)]\n    left=a[count:]\n    right=b[count+1:]\n    return [pairs,left,right,count]\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],3]), {1: [[[1, 4], [2, 5]], [3], [], 2], 2: [[[2, 5], [3, 6]], [4], [], 2], 3: [[[3, 6], [4, 7]], [5], [], 2], 4: [[[4, 7], [5, 8]], [6], [], 2], 5: [[[5, 8], [6, 9]], [7], [], 2]}[N])\ncheck('1', solve([[N],[N+1,N+2],3]), {1: [[[1, 2]], [], [3], 1], 2: [[[2, 3]], [], [4], 1], 3: [[[3, 4]], [], [5], 1], 4: [[[4, 5]], [], [6], 1], 5: [[[5, 6]], [], [7], 1]}[N])\ncheck('2', solve([[N,N+1],[N+2,N+3],1]), {1: [[[1, 3]], [2], [4], 1], 2: [[[2, 4]], [3], [5], 1], 3: [[[3, 5]], [4], [6], 1], 4: [[[4, 6]], [5], [7], 1], 5: [[[5, 7]], [6], [8], 1]}[N])\ncheck('3', solve([[],[N],2]), {1: [[], [], [1], 0], 2: [[], [], [2], 0], 3: [[], [], [3], 0], 4: [[], [], [4], 0], 5: [[], [], [5], 0]}[N])\ncheck('4', solve([[N],[],2]), {1: [[], [1], [], 0], 2: [[], [2], [], 0], 3: [[], [3], [], 0], 4: [[], [4], [], 0], 5: [[], [5], [], 0]}[N])\ncheck('5', solve([[N,N+1],[N+2,N+3],0]), {1: [[], [1, 2], [3, 4], 0], 2: [[], [2, 3], [4, 5], 0], 3: [[], [3, 4], [5, 6], 0], 4: [[], [4, 5], [6, 7], 0], 5: [[], [5, 6], [7, 8], 0]}[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":"eb7c7c21783fed8c59e134e974a1ee28f5c6a5b7a37e363dc380e10e8b58b10c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    a,b,limit=x\n    count=min(len(a),len(b),limit)\n    pairs=[[a[i],b[i]] for i in range(count)]\n    left=a[count:]\n    right=b[count:]\n    return [pairs,left,right,count]\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],3]), {1: [[[1, 4], [2, 5]], [3], [], 2], 2: [[[2, 5], [3, 6]], [4], [], 2], 3: [[[3, 6], [4, 7]], [5], [], 2], 4: [[[4, 7], [5, 8]], [6], [], 2], 5: [[[5, 8], [6, 9]], [7], [], 2]}[N])\ncheck('1', solve([[N],[N+1,N+2],3]), {1: [[[1, 2]], [], [3], 1], 2: [[[2, 3]], [], [4], 1], 3: [[[3, 4]], [], [5], 1], 4: [[[4, 5]], [], [6], 1], 5: [[[5, 6]], [], [7], 1]}[N])\ncheck('2', solve([[N,N+1],[N+2,N+3],1]), {1: [[[1, 3]], [2], [4], 1], 2: [[[2, 4]], [3], [5], 1], 3: [[[3, 5]], [4], [6], 1], 4: [[[4, 6]], [5], [7], 1], 5: [[[5, 7]], [6], [8], 1]}[N])\ncheck('3', solve([[],[N],2]), {1: [[], [], [1], 0], 2: [[], [], [2], 0], 3: [[], [], [3], 0], 4: [[], [], [4], 0], 5: [[], [], [5], 0]}[N])\ncheck('4', solve([[N],[],2]), {1: [[], [1], [], 0], 2: [[], [2], [], 0], 3: [[], [3], [], 0], 4: [[], [4], [], 0], 5: [[], [5], [], 0]}[N])\ncheck('5', solve([[N,N+1],[N+2,N+3],0]), {1: [[], [1, 2], [3, 4], 0], 2: [[], [2, 3], [4, 5], 0], 3: [[], [3, 4], [5, 6], 0], 4: [[], [4, 5], [6, 7], 0], 5: [[], [5, 6], [7, 8], 0]}[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-zip-drain-right-remainder","generated_at":"2026-09-29T14:44:30.536456+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 right remainder invariant in zip-drain.","root_cause":"Zip drain consumes an extra right entry.","sha256":"b79cee5c6b7b532cc633dbfc53b5fed5e3c637ad67e32a5a176b0098b11b8b47","title":"Zip drain consumes an extra right entry · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.933,"exit_code":1,"observations":[{"actual":[[[1,4],[2,5]],[3],[],2],"check":"0","expected":[[[1,4],[2,5]],[3],[],2],"passed":true},{"actual":[[[1,2]],[],[],1],"check":"1","expected":[[[1,2]],[],[3],1],"passed":false},{"actual":[[[1,3]],[2],[],1],"check":"2","expected":[[[1,3]],[2],[4],1],"passed":false},{"actual":[[],[],[1],0],"check":"3","expected":[[],[],[1],0],"passed":true},{"actual":[[],[1],[],0],"check":"4","expected":[[],[1],[],0],"passed":true},{"actual":[[],[1,2],[3,4],0],"check":"5","expected":[[],[1,2],[3,4],0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[[1, 4], [2, 5]], [3], [], 2], \"expected\": [[[1, 4], [2, 5]], [3], [], 2], \"passed\": true}, {\"check\": \"1\", \"actual\": [[[1, 2]], [], [], 1], \"expected\": [[[1, 2]], [], [3], 1], \"passed\": false}, {\"check\": \"2\", \"actual\": [[[1, 3]], [2], [], 1], \"expected\": [[[1, 3]], [2], [4], 1], \"passed\": false}, {\"check\": \"3\", \"actual\": [[], [], [1], 0], \"expected\": [[], [], [1], 0], \"passed\": true}, {\"check\": \"4\", \"actual\": [[], [1], [], 0], \"expected\": [[], [1], [], 0], \"passed\": true}, {\"check\": \"5\", \"actual\": [[], [1, 2], [3, 4], 0], \"expected\": [[], [1, 2], [3, 4], 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.056,"exit_code":1,"observations":[{"actual":[[[1,4],[2,5]],[3],[],2],"check":"0","expected":[[[1,4],[2,5]],[3],[],2],"passed":true},{"actual":[[[1,2]],[],[],1],"check":"1","expected":[[[1,2]],[],[3],1],"passed":false},{"actual":[[[1,3]],[2],[],1],"check":"2","expected":[[[1,3]],[2],[4],1],"passed":false},{"actual":[[],[],[],0],"check":"3","expected":[[],[],[1],0],"passed":false},{"actual":[[],[1],[],0],"check":"4","expected":[[],[1],[],0],"passed":true},{"actual":[[],[1,2],[4],0],"check":"5","expected":[[],[1,2],[3,4],0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[[1, 4], [2, 5]], [3], [], 2], \"expected\": [[[1, 4], [2, 5]], [3], [], 2], \"passed\": true}, {\"check\": \"1\", \"actual\": [[[1, 2]], [], [], 1], \"expected\": [[[1, 2]], [], [3], 1], \"passed\": false}, {\"check\": \"2\", \"actual\": [[[1, 3]], [2], [], 1], \"expected\": [[[1, 3]], [2], [4], 1], \"passed\": false}, {\"check\": \"3\", \"actual\": [[], [], [], 0], \"expected\": [[], [], [1], 0], \"passed\": false}, {\"check\": \"4\", \"actual\": [[], [1], [], 0], \"expected\": [[], [1], [], 0], \"passed\": true}, {\"check\": \"5\", \"actual\": [[], [1, 2], [4], 0], \"expected\": [[], [1, 2], [3, 4], 0], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.399,"exit_code":0,"observations":[{"actual":[[[1,4],[2,5]],[3],[],2],"check":"0","expected":[[[1,4],[2,5]],[3],[],2],"passed":true},{"actual":[[[1,2]],[],[3],1],"check":"1","expected":[[[1,2]],[],[3],1],"passed":true},{"actual":[[[1,3]],[2],[4],1],"check":"2","expected":[[[1,3]],[2],[4],1],"passed":true},{"actual":[[],[],[1],0],"check":"3","expected":[[],[],[1],0],"passed":true},{"actual":[[],[1],[],0],"check":"4","expected":[[],[1],[],0],"passed":true},{"actual":[[],[1,2],[3,4],0],"check":"5","expected":[[],[1,2],[3,4],0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[[1, 4], [2, 5]], [3], [], 2], \"expected\": [[[1, 4], [2, 5]], [3], [], 2], \"passed\": true}, {\"check\": \"1\", \"actual\": [[[1, 2]], [], [3], 1], \"expected\": [[[1, 2]], [], [3], 1], \"passed\": true}, {\"check\": \"2\", \"actual\": [[[1, 3]], [2], [4], 1], \"expected\": [[[1, 3]], [2], [4], 1], \"passed\": true}, {\"check\": \"3\", \"actual\": [[], [], [1], 0], \"expected\": [[], [], [1], 0], \"passed\": true}, {\"check\": \"4\", \"actual\": [[], [1], [], 0], \"expected\": [[], [1], [], 0], \"passed\": true}, {\"check\": \"5\", \"actual\": [[], [1, 2], [3, 4], 0], \"expected\": [[], [1, 2], [3, 4], 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}