{"abstract":"A cue starting exactly at the query time is not shown.","category":"Subtitle cue timing","checks":9,"contract":"cues [start,end] are sorted by start. Return the ascending indices of cues active at t (start <= t < end). The search bisects the starts and walks backwards while the running maximum end of the prefix exceeds t.","evaluation_group":"w2-subtitle-cue-timing-active-cue-lookup","failed_approach":"Adding zero to the query leaves the same left-bisect exclusion.","family":"w2-subtitle-cue-timing-active-cue-lookup-bisect-side","id":"FA-78291","implementations":{"attempt":{"sha256":"e6634de1e765d85b9854e5ad4873bf1b85cd27db456514ddbfcba0dc2e929e8e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport bisect\nN = 1\nobservations = []\ndef solve(cues, t):\n    starts=[c[0] for c in cues]\n    hi=bisect.bisect_left(starts,t+0)\n    maxend=[]\n    run=0\n    for c in cues:\n        run=max(run,c[1])\n        maxend.append(run)\n    res=[]\n    i=hi-1\n    while i>=0 and maxend[i]>t:\n        if cues[i][1]>t:\n            res.append(i)\n        i-=1\n    return sorted(res)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: bisect side', [[[0, 100], [100, 200]], 100], [1]), ('regression variant: bisect side', [[[100, 400], [300, 350], [500, 550]], 300], [0, 1]), ('partial repair probe: bisect side', [[[100, 400], [400, 500], [500, 550], [500, 600]], 100], [0]), ('partial repair variant: bisect side', [[[100, 150], [100, 200], [400, 450]], 100], [0, 1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('normal control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[0, 100], [100, 1100], [200, 300], [200, 500]], 50], [0]), ('normal control', [[[400, 500], [500, 1500]], 0], [])], [('regression: bisect side', [[[100, 400], [300, 400], [300, 400], [300, 350], [400, 500], [500, 800]], 300], [0, 1, 2, 3]), ('regression variant: bisect side', [[[0, 1000], [100, 1100], [200, 500], [200, 500]], 200], [0, 1, 2, 3]), ('partial repair probe: bisect side', [[[0, 1000], [200, 300], [400, 450]], 200], [0, 1]), ('partial repair variant: bisect side', [[[0, 300], [0, 50], [100, 200], [200, 500], [400, 500]], 100], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[100, 200], [200, 250]], 0], []), ('normal control', [[[0, 100], [0, 1000], [400, 500], [500, 600], [500, 1500], [500, 550]], 600], [1, 4]), ('normal control', [[[0, 300], [500, 550]], 50], [0])], [('regression: bisect side', [[[100, 400], [400, 500], [500, 550], [500, 600]], 100], [0]), ('regression variant: bisect side', [[[0, 300], [100, 1100], [200, 250], [500, 550]], 100], [0, 1]), ('partial repair probe: bisect side', [[[100, 1100], [200, 1200], [300, 1300], [400, 450], [400, 500], [400, 500]], 300], [0, 1, 2]), ('partial repair variant: bisect side', [[[0, 300], [100, 150], [100, 150], [100, 200], [400, 700], [500, 1500]], 0], [0]), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('normal control', [[[0, 100], [0, 1000], [300, 1300]], 500], [1, 2]), ('normal control', [[[0, 100], [200, 1200], [300, 400], [500, 800]], 600], [1, 3]), ('normal control', [[[200, 500], [200, 1200], [500, 600]], 400], [0, 1])], [('regression: bisect side', [[[0, 1000], [200, 300], [400, 450]], 200], [0, 1]), ('regression variant: bisect side', [[[100, 1100], [100, 1100], [400, 500], [400, 700], [400, 450], [500, 550]], 500], [0, 1, 3, 5]), ('partial repair probe: bisect side', [[[100, 400], [300, 350], [500, 550]], 300], [0, 1]), ('partial repair variant: bisect side', [[[0, 300], [100, 150], [200, 250]], 100], [0, 1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('normal control', [[[200, 500]], 500], []), ('normal control', [[[500, 550]], 50], []), ('normal control', [[[200, 1200], [200, 250]], 1499], [])], [('regression: bisect side', [[[100, 1100], [200, 1200], [300, 1300], [400, 450], [400, 500], [400, 500]], 300], [0, 1, 2]), ('regression variant: bisect side', [[[100, 150], [100, 200], [400, 450]], 100], [0, 1]), ('partial repair probe: bisect side', [[[0, 1000], [100, 1100], [200, 500], [200, 500]], 200], [0, 1, 2, 3]), ('partial repair variant: bisect side', [[[200, 500], [300, 350], [500, 600], [500, 600]], 200], [0]), ('boundary control', [[[0, 100]], 100], []), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[400, 450]], 150], []), ('normal control', [[[200, 300]], 150], []), ('normal control', [[[0, 1000], [0, 300], [100, 1100], [100, 150], [100, 150], [400, 500]], 200], [0, 1, 2])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"f0bd778c453de39a71d5c5e08ea9016bedc22abe4aa06c04b6e539a53fe21693","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport bisect\nN = 1\nobservations = []\ndef solve(cues, t):\n    starts=[c[0] for c in cues]\n    hi=bisect.bisect_left(starts,t)\n    maxend=[]\n    run=0\n    for c in cues:\n        run=max(run,c[1])\n        maxend.append(run)\n    res=[]\n    i=hi-1\n    while i>=0 and maxend[i]>t:\n        if cues[i][1]>t:\n            res.append(i)\n        i-=1\n    return sorted(res)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: bisect side', [[[0, 100], [100, 200]], 100], [1]), ('regression variant: bisect side', [[[100, 400], [300, 350], [500, 550]], 300], [0, 1]), ('partial repair probe: bisect side', [[[100, 400], [400, 500], [500, 550], [500, 600]], 100], [0]), ('partial repair variant: bisect side', [[[100, 150], [100, 200], [400, 450]], 100], [0, 1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('normal control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[0, 100], [100, 1100], [200, 300], [200, 500]], 50], [0]), ('normal control', [[[400, 500], [500, 1500]], 0], [])], [('regression: bisect side', [[[100, 400], [300, 400], [300, 400], [300, 350], [400, 500], [500, 800]], 300], [0, 1, 2, 3]), ('regression variant: bisect side', [[[0, 1000], [100, 1100], [200, 500], [200, 500]], 200], [0, 1, 2, 3]), ('partial repair probe: bisect side', [[[0, 1000], [200, 300], [400, 450]], 200], [0, 1]), ('partial repair variant: bisect side', [[[0, 300], [0, 50], [100, 200], [200, 500], [400, 500]], 100], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[100, 200], [200, 250]], 0], []), ('normal control', [[[0, 100], [0, 1000], [400, 500], [500, 600], [500, 1500], [500, 550]], 600], [1, 4]), ('normal control', [[[0, 300], [500, 550]], 50], [0])], [('regression: bisect side', [[[100, 400], [400, 500], [500, 550], [500, 600]], 100], [0]), ('regression variant: bisect side', [[[0, 300], [100, 1100], [200, 250], [500, 550]], 100], [0, 1]), ('partial repair probe: bisect side', [[[100, 1100], [200, 1200], [300, 1300], [400, 450], [400, 500], [400, 500]], 300], [0, 1, 2]), ('partial repair variant: bisect side', [[[0, 300], [100, 150], [100, 150], [100, 200], [400, 700], [500, 1500]], 0], [0]), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('normal control', [[[0, 100], [0, 1000], [300, 1300]], 500], [1, 2]), ('normal control', [[[0, 100], [200, 1200], [300, 400], [500, 800]], 600], [1, 3]), ('normal control', [[[200, 500], [200, 1200], [500, 600]], 400], [0, 1])], [('regression: bisect side', [[[0, 1000], [200, 300], [400, 450]], 200], [0, 1]), ('regression variant: bisect side', [[[100, 1100], [100, 1100], [400, 500], [400, 700], [400, 450], [500, 550]], 500], [0, 1, 3, 5]), ('partial repair probe: bisect side', [[[100, 400], [300, 350], [500, 550]], 300], [0, 1]), ('partial repair variant: bisect side', [[[0, 300], [100, 150], [200, 250]], 100], [0, 1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('normal control', [[[200, 500]], 500], []), ('normal control', [[[500, 550]], 50], []), ('normal control', [[[200, 1200], [200, 250]], 1499], [])], [('regression: bisect side', [[[100, 1100], [200, 1200], [300, 1300], [400, 450], [400, 500], [400, 500]], 300], [0, 1, 2]), ('regression variant: bisect side', [[[100, 150], [100, 200], [400, 450]], 100], [0, 1]), ('partial repair probe: bisect side', [[[0, 1000], [100, 1100], [200, 500], [200, 500]], 200], [0, 1, 2, 3]), ('partial repair variant: bisect side', [[[200, 500], [300, 350], [500, 600], [500, 600]], 200], [0]), ('boundary control', [[[0, 100]], 100], []), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[400, 450]], 150], []), ('normal control', [[[200, 300]], 150], []), ('normal control', [[[0, 1000], [0, 300], [100, 1100], [100, 150], [100, 150], [400, 500]], 200], [0, 1, 2])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"bdfe02a5a17e4c64a4e1443edd17086c9d5baf3719a424dd34d517b9c21d649a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport bisect\nN = 1\nobservations = []\ndef solve(cues, t):\n    starts=[c[0] for c in cues]\n    hi=bisect.bisect_right(starts,t)\n    maxend=[]\n    run=0\n    for c in cues:\n        run=max(run,c[1])\n        maxend.append(run)\n    res=[]\n    i=hi-1\n    while i>=0 and maxend[i]>t:\n        if cues[i][1]>t:\n            res.append(i)\n        i-=1\n    return sorted(res)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: bisect side', [[[0, 100], [100, 200]], 100], [1]), ('regression variant: bisect side', [[[100, 400], [300, 350], [500, 550]], 300], [0, 1]), ('partial repair probe: bisect side', [[[100, 400], [400, 500], [500, 550], [500, 600]], 100], [0]), ('partial repair variant: bisect side', [[[100, 150], [100, 200], [400, 450]], 100], [0, 1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('normal control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[0, 100], [100, 1100], [200, 300], [200, 500]], 50], [0]), ('normal control', [[[400, 500], [500, 1500]], 0], [])], [('regression: bisect side', [[[100, 400], [300, 400], [300, 400], [300, 350], [400, 500], [500, 800]], 300], [0, 1, 2, 3]), ('regression variant: bisect side', [[[0, 1000], [100, 1100], [200, 500], [200, 500]], 200], [0, 1, 2, 3]), ('partial repair probe: bisect side', [[[0, 1000], [200, 300], [400, 450]], 200], [0, 1]), ('partial repair variant: bisect side', [[[0, 300], [0, 50], [100, 200], [200, 500], [400, 500]], 100], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[100, 200], [200, 250]], 0], []), ('normal control', [[[0, 100], [0, 1000], [400, 500], [500, 600], [500, 1500], [500, 550]], 600], [1, 4]), ('normal control', [[[0, 300], [500, 550]], 50], [0])], [('regression: bisect side', [[[100, 400], [400, 500], [500, 550], [500, 600]], 100], [0]), ('regression variant: bisect side', [[[0, 300], [100, 1100], [200, 250], [500, 550]], 100], [0, 1]), ('partial repair probe: bisect side', [[[100, 1100], [200, 1200], [300, 1300], [400, 450], [400, 500], [400, 500]], 300], [0, 1, 2]), ('partial repair variant: bisect side', [[[0, 300], [100, 150], [100, 150], [100, 200], [400, 700], [500, 1500]], 0], [0]), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('normal control', [[[0, 100], [0, 1000], [300, 1300]], 500], [1, 2]), ('normal control', [[[0, 100], [200, 1200], [300, 400], [500, 800]], 600], [1, 3]), ('normal control', [[[200, 500], [200, 1200], [500, 600]], 400], [0, 1])], [('regression: bisect side', [[[0, 1000], [200, 300], [400, 450]], 200], [0, 1]), ('regression variant: bisect side', [[[100, 1100], [100, 1100], [400, 500], [400, 700], [400, 450], [500, 550]], 500], [0, 1, 3, 5]), ('partial repair probe: bisect side', [[[100, 400], [300, 350], [500, 550]], 300], [0, 1]), ('partial repair variant: bisect side', [[[0, 300], [100, 150], [200, 250]], 100], [0, 1]), ('boundary control', [[[0, 1000], [100, 200], [300, 400]], 350], [0, 2]), ('boundary control', [[[0, 100]], 100], []), ('normal control', [[[200, 500]], 500], []), ('normal control', [[[500, 550]], 50], []), ('normal control', [[[200, 1200], [200, 250]], 1499], [])], [('regression: bisect side', [[[100, 1100], [200, 1200], [300, 1300], [400, 450], [400, 500], [400, 500]], 300], [0, 1, 2]), ('regression variant: bisect side', [[[100, 150], [100, 200], [400, 450]], 100], [0, 1]), ('partial repair probe: bisect side', [[[0, 1000], [100, 1100], [200, 500], [200, 500]], 200], [0, 1, 2, 3]), ('partial repair variant: bisect side', [[[200, 500], [300, 350], [500, 600], [500, 600]], 200], [0]), ('boundary control', [[[0, 100]], 100], []), ('boundary control', [[[0, 50], [0, 500], [200, 250]], 300], [1]), ('normal control', [[[400, 450]], 150], []), ('normal control', [[[200, 300]], 150], []), ('normal control', [[[0, 1000], [0, 300], [100, 1100], [100, 150], [100, 150], [400, 500]], 200], [0, 1, 2])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"A deterministic bounded teaching model with a stipulated toy contract; it does not claim conformance to any subtitle standard. 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":"w2-subtitle-cue-timing-active-cue-lookup-bisect-side","generated_at":"2026-09-29T14:49:34.030480+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Subtitle timing defects shift, hide or overlap captions that viewers depend on for comprehension and accessibility.","repair":"Use bisect_right so cues starting at t are candidates.","root_cause":"bisect_left excludes cues whose start equals t.","sha256":"8ae071df801050fba1132dbdd4ea1519419b4fd0b439f3663d4d6ed0ae27ee94","title":"Active cue lookup with prefix maximum ends: bisect side · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.563,"exit_code":1,"observations":[{"actual":[],"check":"regression: bisect side","expected":[1],"passed":false},{"actual":[0],"check":"regression variant: bisect side","expected":[0,1],"passed":false},{"actual":[],"check":"partial repair probe: bisect side","expected":[0],"passed":false},{"actual":[],"check":"partial repair variant: bisect side","expected":[0,1],"passed":false},{"actual":[0,2],"check":"boundary control","expected":[0,2],"passed":true},{"actual":[],"check":"boundary control","expected":[],"passed":true},{"actual":[1],"check":"normal control","expected":[1],"passed":true},{"actual":[0],"check":"normal control","expected":[0],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: bisect side\", \"actual\": [], \"expected\": [1], \"passed\": false}, {\"check\": \"regression variant: bisect side\", \"actual\": [0], \"expected\": [0, 1], \"passed\": false}, {\"check\": \"partial repair probe: bisect side\", \"actual\": [], \"expected\": [0], \"passed\": false}, {\"check\": \"partial repair variant: bisect side\", \"actual\": [], \"expected\": [0, 1], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [0, 2], \"expected\": [0, 2], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.3,"exit_code":1,"observations":[{"actual":[],"check":"regression: bisect side","expected":[1],"passed":false},{"actual":[0],"check":"regression variant: bisect side","expected":[0,1],"passed":false},{"actual":[],"check":"partial repair probe: bisect side","expected":[0],"passed":false},{"actual":[],"check":"partial repair variant: bisect side","expected":[0,1],"passed":false},{"actual":[0,2],"check":"boundary control","expected":[0,2],"passed":true},{"actual":[],"check":"boundary control","expected":[],"passed":true},{"actual":[1],"check":"normal control","expected":[1],"passed":true},{"actual":[0],"check":"normal control","expected":[0],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: bisect side\", \"actual\": [], \"expected\": [1], \"passed\": false}, {\"check\": \"regression variant: bisect side\", \"actual\": [0], \"expected\": [0, 1], \"passed\": false}, {\"check\": \"partial repair probe: bisect side\", \"actual\": [], \"expected\": [0], \"passed\": false}, {\"check\": \"partial repair variant: bisect side\", \"actual\": [], \"expected\": [0, 1], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [0, 2], \"expected\": [0, 2], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.826,"exit_code":0,"observations":[{"actual":[1],"check":"regression: bisect side","expected":[1],"passed":true},{"actual":[0,1],"check":"regression variant: bisect side","expected":[0,1],"passed":true},{"actual":[0],"check":"partial repair probe: bisect side","expected":[0],"passed":true},{"actual":[0,1],"check":"partial repair variant: bisect side","expected":[0,1],"passed":true},{"actual":[0,2],"check":"boundary control","expected":[0,2],"passed":true},{"actual":[],"check":"boundary control","expected":[],"passed":true},{"actual":[1],"check":"normal control","expected":[1],"passed":true},{"actual":[0],"check":"normal control","expected":[0],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: bisect side\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"regression variant: bisect side\", \"actual\": [0, 1], \"expected\": [0, 1], \"passed\": true}, {\"check\": \"partial repair probe: bisect side\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"partial repair variant: bisect side\", \"actual\": [0, 1], \"expected\": [0, 1], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [0, 2], \"expected\": [0, 2], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}