{"abstract":"Chained cues touch the next cue with no separating gap.","category":"Subtitle cue timing","checks":9,"contract":"For sorted cues [start,end], compare each cue with the next start. If gap = next_start - end is below min_gap, the end is trimmed to next_start - min_gap but never below start+1. If min_gap <= gap < chain, the end is extended to next_start - min_gap. Larger gaps are untouched.","evaluation_group":"w2-subtitle-cue-timing-gap-chaining","failed_approach":"Subtracting the chain threshold moves the end backwards instead of closing the gap.","family":"w2-subtitle-cue-timing-gap-chaining-chain-target","id":"FA-77981","implementations":{"attempt":{"sha256":"9f4811f6fb70d3d370a5b4a6de44f5cb27277581879ad21551b4cd2f2a92147c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cues, min_gap, chain):\n    out=[list(c) for c in cues]\n    for i in range(len(out)-1):\n        cur=out[i]\n        nxt_start=out[i+1][0]\n        gap=nxt_start-cur[1]\n        if gap<min_gap:\n            cur[1]=max(cur[0]+1,nxt_start-min_gap)\n        elif gap<chain:\n            cur[1]=nxt_start-chain\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: chain target', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('regression variant: chain target', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('partial repair probe: chain target', [[[0, 1000], [1030, 2030], [2131, 4131], [4882, 5882]], 100, 750], [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]]), ('partial repair variant: chain target', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[0, 400], [1400, 2400]], 80, 750], [[0, 400], [1400, 2400]]), ('normal control', [[[0, 1000], [1301, 1401]], 100, 300], [[0, 1000], [1301, 1401]])], [('regression: chain target', [[[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], 83, 500], [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]]), ('regression variant: chain target', [[[1000, 3000], [3005, 5005], [5084, 5484], [5565, 5965]], 80, 300], [[1000, 2925], [3005, 5004], [5084, 5485], [5565, 5965]]), ('partial repair probe: chain target', [[[1000, 2000], [2005, 2405], [2486, 2886], [3266, 5266], [5567, 6567]], 80, 300], [[1000, 1925], [2005, 2406], [2486, 2886], [3266, 5266], [5567, 6567]]), ('partial repair variant: chain target', [[[0, 1000], [2000, 2400], [2899, 2999]], 120, 500], [[0, 1000], [2000, 2779], [2899, 2999]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 2000], [2030, 2430]], 83, 300], [[1000, 1947], [2030, 2430]]), ('normal control', [[[0, 400], [1270, 1370], [2240, 2340]], 120, 750], [[0, 400], [1270, 1370], [2240, 2340]]), ('normal control', [[[1000, 3000], [4000, 6000], [6030, 6430], [6230, 8230], [8030, 10030]], 80, 750], [[1000, 3000], [4000, 5950], [6030, 6150], [6230, 7950], [8030, 10030]])], [('regression: chain target', [[[0, 1000], [1030, 2030], [2131, 4131], [4882, 5882]], 100, 750], [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]]), ('regression variant: chain target', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('partial repair probe: chain target', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('partial repair variant: chain target', [[[0, 2000], [2083, 4083], [4113, 4513], [4896, 4996], [5295, 6295]], 83, 300], [[0, 2000], [2083, 4030], [4113, 4513], [4896, 5212], [5295, 6295]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('normal control', [[[1000, 3000], [3383, 4383], [4333, 6333]], 83, 300], [[1000, 3000], [3383, 4250], [4333, 6333]]), ('normal control', [[[0, 100], [182, 582]], 83, 300], [[0, 99], [182, 582]]), ('normal control', [[[0, 2000], [2000, 4000], [3950, 4950]], 100, 750], [[0, 1900], [2000, 3850], [3950, 4950]])], [('regression: chain target', [[[1000, 2000], [2005, 2405], [2486, 2886], [3266, 5266], [5567, 6567]], 80, 300], [[1000, 1925], [2005, 2406], [2486, 2886], [3266, 5266], [5567, 6567]]), ('regression variant: chain target', [[[0, 2000], [2499, 3499], [3598, 3698]], 100, 500], [[0, 2399], [2499, 3498], [3598, 3698]]), ('partial repair probe: chain target', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('partial repair variant: chain target', [[[1000, 1400], [1899, 2299], [2099, 2499]], 80, 500], [[1000, 1819], [1899, 2019], [2099, 2499]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 1000], [1833, 2833]], 83, 750], [[0, 1000], [1833, 2833]]), ('normal control', [[[1000, 3000], [3000, 3100], [4100, 6100], [6050, 8050], [8801, 10801]], 80, 750], [[1000, 2920], [3000, 3100], [4100, 5970], [6050, 8050], [8801, 10801]]), ('normal control', [[[0, 2000], [2000, 2100], [2130, 2530], [2560, 2660], [2610, 3010]], 120, 750], [[0, 1880], [2000, 2010], [2130, 2440], [2560, 2561], [2610, 3010]])], [('regression: chain target', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('regression variant: chain target', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('partial repair probe: chain target', [[[1000, 3000], [3005, 5005], [5084, 5484], [5565, 5965]], 80, 300], [[1000, 2925], [3005, 5004], [5084, 5485], [5565, 5965]]), ('partial repair variant: chain target', [[[1000, 3000], [3005, 4005], [4105, 5105], [5606, 6006]], 100, 500], [[1000, 2905], [3005, 4005], [4105, 5105], [5606, 6006]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 1400], [1482, 1582]], 83, 300], [[1000, 1399], [1482, 1582]]), ('normal control', [[[1000, 1400], [1400, 3400], [3350, 3750]], 100, 500], [[1000, 1300], [1400, 3250], [3350, 3750]]), ('normal control', [[[0, 2000], [1950, 3950], [3900, 4300]], 100, 500], [[0, 1850], [1950, 3800], [3900, 4300]])]]\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":"e08291fd01acea7acd286e3674c1ac263b2d695a99a539bfba6144dc192bfd66","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cues, min_gap, chain):\n    out=[list(c) for c in cues]\n    for i in range(len(out)-1):\n        cur=out[i]\n        nxt_start=out[i+1][0]\n        gap=nxt_start-cur[1]\n        if gap<min_gap:\n            cur[1]=max(cur[0]+1,nxt_start-min_gap)\n        elif gap<chain:\n            cur[1]=nxt_start\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: chain target', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('regression variant: chain target', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('partial repair probe: chain target', [[[0, 1000], [1030, 2030], [2131, 4131], [4882, 5882]], 100, 750], [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]]), ('partial repair variant: chain target', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[0, 400], [1400, 2400]], 80, 750], [[0, 400], [1400, 2400]]), ('normal control', [[[0, 1000], [1301, 1401]], 100, 300], [[0, 1000], [1301, 1401]])], [('regression: chain target', [[[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], 83, 500], [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]]), ('regression variant: chain target', [[[1000, 3000], [3005, 5005], [5084, 5484], [5565, 5965]], 80, 300], [[1000, 2925], [3005, 5004], [5084, 5485], [5565, 5965]]), ('partial repair probe: chain target', [[[1000, 2000], [2005, 2405], [2486, 2886], [3266, 5266], [5567, 6567]], 80, 300], [[1000, 1925], [2005, 2406], [2486, 2886], [3266, 5266], [5567, 6567]]), ('partial repair variant: chain target', [[[0, 1000], [2000, 2400], [2899, 2999]], 120, 500], [[0, 1000], [2000, 2779], [2899, 2999]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 2000], [2030, 2430]], 83, 300], [[1000, 1947], [2030, 2430]]), ('normal control', [[[0, 400], [1270, 1370], [2240, 2340]], 120, 750], [[0, 400], [1270, 1370], [2240, 2340]]), ('normal control', [[[1000, 3000], [4000, 6000], [6030, 6430], [6230, 8230], [8030, 10030]], 80, 750], [[1000, 3000], [4000, 5950], [6030, 6150], [6230, 7950], [8030, 10030]])], [('regression: chain target', [[[0, 1000], [1030, 2030], [2131, 4131], [4882, 5882]], 100, 750], [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]]), ('regression variant: chain target', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('partial repair probe: chain target', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('partial repair variant: chain target', [[[0, 2000], [2083, 4083], [4113, 4513], [4896, 4996], [5295, 6295]], 83, 300], [[0, 2000], [2083, 4030], [4113, 4513], [4896, 5212], [5295, 6295]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('normal control', [[[1000, 3000], [3383, 4383], [4333, 6333]], 83, 300], [[1000, 3000], [3383, 4250], [4333, 6333]]), ('normal control', [[[0, 100], [182, 582]], 83, 300], [[0, 99], [182, 582]]), ('normal control', [[[0, 2000], [2000, 4000], [3950, 4950]], 100, 750], [[0, 1900], [2000, 3850], [3950, 4950]])], [('regression: chain target', [[[1000, 2000], [2005, 2405], [2486, 2886], [3266, 5266], [5567, 6567]], 80, 300], [[1000, 1925], [2005, 2406], [2486, 2886], [3266, 5266], [5567, 6567]]), ('regression variant: chain target', [[[0, 2000], [2499, 3499], [3598, 3698]], 100, 500], [[0, 2399], [2499, 3498], [3598, 3698]]), ('partial repair probe: chain target', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('partial repair variant: chain target', [[[1000, 1400], [1899, 2299], [2099, 2499]], 80, 500], [[1000, 1819], [1899, 2019], [2099, 2499]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 1000], [1833, 2833]], 83, 750], [[0, 1000], [1833, 2833]]), ('normal control', [[[1000, 3000], [3000, 3100], [4100, 6100], [6050, 8050], [8801, 10801]], 80, 750], [[1000, 2920], [3000, 3100], [4100, 5970], [6050, 8050], [8801, 10801]]), ('normal control', [[[0, 2000], [2000, 2100], [2130, 2530], [2560, 2660], [2610, 3010]], 120, 750], [[0, 1880], [2000, 2010], [2130, 2440], [2560, 2561], [2610, 3010]])], [('regression: chain target', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('regression variant: chain target', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('partial repair probe: chain target', [[[1000, 3000], [3005, 5005], [5084, 5484], [5565, 5965]], 80, 300], [[1000, 2925], [3005, 5004], [5084, 5485], [5565, 5965]]), ('partial repair variant: chain target', [[[1000, 3000], [3005, 4005], [4105, 5105], [5606, 6006]], 100, 500], [[1000, 2905], [3005, 4005], [4105, 5105], [5606, 6006]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 1400], [1482, 1582]], 83, 300], [[1000, 1399], [1482, 1582]]), ('normal control', [[[1000, 1400], [1400, 3400], [3350, 3750]], 100, 500], [[1000, 1300], [1400, 3250], [3350, 3750]]), ('normal control', [[[0, 2000], [1950, 3950], [3900, 4300]], 100, 500], [[0, 1850], [1950, 3800], [3900, 4300]])]]\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":"18e27293dc18d3c91da2663b4b6ae3943fc7450b90fef108fd97cce06b57f0e1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cues, min_gap, chain):\n    out=[list(c) for c in cues]\n    for i in range(len(out)-1):\n        cur=out[i]\n        nxt_start=out[i+1][0]\n        gap=nxt_start-cur[1]\n        if gap<min_gap:\n            cur[1]=max(cur[0]+1,nxt_start-min_gap)\n        elif gap<chain:\n            cur[1]=nxt_start-min_gap\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: chain target', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('regression variant: chain target', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('partial repair probe: chain target', [[[0, 1000], [1030, 2030], [2131, 4131], [4882, 5882]], 100, 750], [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]]), ('partial repair variant: chain target', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[0, 400], [1400, 2400]], 80, 750], [[0, 400], [1400, 2400]]), ('normal control', [[[0, 1000], [1301, 1401]], 100, 300], [[0, 1000], [1301, 1401]])], [('regression: chain target', [[[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], 83, 500], [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]]), ('regression variant: chain target', [[[1000, 3000], [3005, 5005], [5084, 5484], [5565, 5965]], 80, 300], [[1000, 2925], [3005, 5004], [5084, 5485], [5565, 5965]]), ('partial repair probe: chain target', [[[1000, 2000], [2005, 2405], [2486, 2886], [3266, 5266], [5567, 6567]], 80, 300], [[1000, 1925], [2005, 2406], [2486, 2886], [3266, 5266], [5567, 6567]]), ('partial repair variant: chain target', [[[0, 1000], [2000, 2400], [2899, 2999]], 120, 500], [[0, 1000], [2000, 2779], [2899, 2999]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 2000], [2030, 2430]], 83, 300], [[1000, 1947], [2030, 2430]]), ('normal control', [[[0, 400], [1270, 1370], [2240, 2340]], 120, 750], [[0, 400], [1270, 1370], [2240, 2340]]), ('normal control', [[[1000, 3000], [4000, 6000], [6030, 6430], [6230, 8230], [8030, 10030]], 80, 750], [[1000, 3000], [4000, 5950], [6030, 6150], [6230, 7950], [8030, 10030]])], [('regression: chain target', [[[0, 1000], [1030, 2030], [2131, 4131], [4882, 5882]], 100, 750], [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]]), ('regression variant: chain target', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('partial repair probe: chain target', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('partial repair variant: chain target', [[[0, 2000], [2083, 4083], [4113, 4513], [4896, 4996], [5295, 6295]], 83, 300], [[0, 2000], [2083, 4030], [4113, 4513], [4896, 5212], [5295, 6295]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('normal control', [[[1000, 3000], [3383, 4383], [4333, 6333]], 83, 300], [[1000, 3000], [3383, 4250], [4333, 6333]]), ('normal control', [[[0, 100], [182, 582]], 83, 300], [[0, 99], [182, 582]]), ('normal control', [[[0, 2000], [2000, 4000], [3950, 4950]], 100, 750], [[0, 1900], [2000, 3850], [3950, 4950]])], [('regression: chain target', [[[1000, 2000], [2005, 2405], [2486, 2886], [3266, 5266], [5567, 6567]], 80, 300], [[1000, 1925], [2005, 2406], [2486, 2886], [3266, 5266], [5567, 6567]]), ('regression variant: chain target', [[[0, 2000], [2499, 3499], [3598, 3698]], 100, 500], [[0, 2399], [2499, 3498], [3598, 3698]]), ('partial repair probe: chain target', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('partial repair variant: chain target', [[[1000, 1400], [1899, 2299], [2099, 2499]], 80, 500], [[1000, 1819], [1899, 2019], [2099, 2499]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 1000], [1833, 2833]], 83, 750], [[0, 1000], [1833, 2833]]), ('normal control', [[[1000, 3000], [3000, 3100], [4100, 6100], [6050, 8050], [8801, 10801]], 80, 750], [[1000, 2920], [3000, 3100], [4100, 5970], [6050, 8050], [8801, 10801]]), ('normal control', [[[0, 2000], [2000, 2100], [2130, 2530], [2560, 2660], [2610, 3010]], 120, 750], [[0, 1880], [2000, 2010], [2130, 2440], [2560, 2561], [2610, 3010]])], [('regression: chain target', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('regression variant: chain target', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('partial repair probe: chain target', [[[1000, 3000], [3005, 5005], [5084, 5484], [5565, 5965]], 80, 300], [[1000, 2925], [3005, 5004], [5084, 5485], [5565, 5965]]), ('partial repair variant: chain target', [[[1000, 3000], [3005, 4005], [4105, 5105], [5606, 6006]], 100, 500], [[1000, 2905], [3005, 4005], [4105, 5105], [5606, 6006]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 1400], [1482, 1582]], 83, 300], [[1000, 1399], [1482, 1582]]), ('normal control', [[[1000, 1400], [1400, 3400], [3350, 3750]], 100, 500], [[1000, 1300], [1400, 3250], [3350, 3750]]), ('normal control', [[[0, 2000], [1950, 3950], [3900, 4300]], 100, 500], [[0, 1850], [1950, 3800], [3900, 4300]])]]\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-gap-chaining-chain-target","generated_at":"2026-09-29T14:49:30.775706+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":"Extend the end to next_start - min_gap.","root_cause":"Chaining extends the end all the way to the next start.","sha256":"18811f8c164e18d739b9137f780a72590ed694e62d58a2e3bbb6ed6a795f25f0","title":"Minimum gap and chaining between cues: chain target · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.398,"exit_code":1,"observations":[{"actual":[[0,900],[1400,2000]],"check":"regression: chain target","expected":[[0,1300],[1400,2000]],"passed":false},{"actual":[[1000,2947],[3030,4363],[5113,6113],[6864,6881],[6964,8964]],"check":"regression variant: chain target","expected":[[1000,2947],[3030,5030],[5113,6113],[6864,6881],[6964,8964]],"passed":false},{"actual":[[0,930],[1030,1381],[2131,4131],[4882,5882]],"check":"partial repair probe: chain target","expected":[[0,930],[1030,2031],[2131,4131],[4882,5882]],"passed":false},{"actual":[[0,2000],[2830,3161],[3911,4911],[5741,6141],[6891,8891]],"check":"partial repair variant: chain target","expected":[[0,2000],[2830,3831],[3911,4911],[5741,6141],[6891,8891]],"passed":false},{"actual":[[0,950],[1050,2000]],"check":"boundary control","expected":[[0,950],[1050,2000]],"passed":true},{"actual":[[0,1000],[1500,2000]],"check":"boundary control","expected":[[0,1000],[1500,2000]],"passed":true},{"actual":[[0,800],[900,2000]],"check":"normal control","expected":[[0,800],[900,2000]],"passed":true},{"actual":[[0,400],[1400,2400]],"check":"normal control","expected":[[0,400],[1400,2400]],"passed":true},{"actual":[[0,1000],[1301,1401]],"check":"normal control","expected":[[0,1000],[1301,1401]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: chain target\", \"actual\": [[0, 900], [1400, 2000]], \"expected\": [[0, 1300], [1400, 2000]], \"passed\": false}, {\"check\": \"regression variant: chain target\", \"actual\": [[1000, 2947], [3030, 4363], [5113, 6113], [6864, 6881], [6964, 8964]], \"expected\": [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]], \"passed\": false}, {\"check\": \"partial repair probe: chain target\", \"actual\": [[0, 930], [1030, 1381], [2131, 4131], [4882, 5882]], \"expected\": [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]], \"passed\": false}, {\"check\": \"partial repair variant: chain target\", \"actual\": [[0, 2000], [2830, 3161], [3911, 4911], [5741, 6141], [6891, 8891]], \"expected\": [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [[0, 950], [1050, 2000]], \"expected\": [[0, 950], [1050, 2000]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[0, 1000], [1500, 2000]], \"expected\": [[0, 1000], [1500, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 800], [900, 2000]], \"expected\": [[0, 800], [900, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 400], [1400, 2400]], \"expected\": [[0, 400], [1400, 2400]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 1000], [1301, 1401]], \"expected\": [[0, 1000], [1301, 1401]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.981,"exit_code":1,"observations":[{"actual":[[0,1400],[1400,2000]],"check":"regression: chain target","expected":[[0,1300],[1400,2000]],"passed":false},{"actual":[[1000,2947],[3030,5113],[5113,6113],[6864,6881],[6964,8964]],"check":"regression variant: chain target","expected":[[1000,2947],[3030,5030],[5113,6113],[6864,6881],[6964,8964]],"passed":false},{"actual":[[0,930],[1030,2131],[2131,4131],[4882,5882]],"check":"partial repair probe: chain target","expected":[[0,930],[1030,2031],[2131,4131],[4882,5882]],"passed":false},{"actual":[[0,2000],[2830,3911],[3911,4911],[5741,6141],[6891,8891]],"check":"partial repair variant: chain target","expected":[[0,2000],[2830,3831],[3911,4911],[5741,6141],[6891,8891]],"passed":false},{"actual":[[0,950],[1050,2000]],"check":"boundary control","expected":[[0,950],[1050,2000]],"passed":true},{"actual":[[0,1000],[1500,2000]],"check":"boundary control","expected":[[0,1000],[1500,2000]],"passed":true},{"actual":[[0,800],[900,2000]],"check":"normal control","expected":[[0,800],[900,2000]],"passed":true},{"actual":[[0,400],[1400,2400]],"check":"normal control","expected":[[0,400],[1400,2400]],"passed":true},{"actual":[[0,1000],[1301,1401]],"check":"normal control","expected":[[0,1000],[1301,1401]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: chain target\", \"actual\": [[0, 1400], [1400, 2000]], \"expected\": [[0, 1300], [1400, 2000]], \"passed\": false}, {\"check\": \"regression variant: chain target\", \"actual\": [[1000, 2947], [3030, 5113], [5113, 6113], [6864, 6881], [6964, 8964]], \"expected\": [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]], \"passed\": false}, {\"check\": \"partial repair probe: chain target\", \"actual\": [[0, 930], [1030, 2131], [2131, 4131], [4882, 5882]], \"expected\": [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]], \"passed\": false}, {\"check\": \"partial repair variant: chain target\", \"actual\": [[0, 2000], [2830, 3911], [3911, 4911], [5741, 6141], [6891, 8891]], \"expected\": [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [[0, 950], [1050, 2000]], \"expected\": [[0, 950], [1050, 2000]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[0, 1000], [1500, 2000]], \"expected\": [[0, 1000], [1500, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 800], [900, 2000]], \"expected\": [[0, 800], [900, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 400], [1400, 2400]], \"expected\": [[0, 400], [1400, 2400]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 1000], [1301, 1401]], \"expected\": [[0, 1000], [1301, 1401]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.085,"exit_code":0,"observations":[{"actual":[[0,1300],[1400,2000]],"check":"regression: chain target","expected":[[0,1300],[1400,2000]],"passed":true},{"actual":[[1000,2947],[3030,5030],[5113,6113],[6864,6881],[6964,8964]],"check":"regression variant: chain target","expected":[[1000,2947],[3030,5030],[5113,6113],[6864,6881],[6964,8964]],"passed":true},{"actual":[[0,930],[1030,2031],[2131,4131],[4882,5882]],"check":"partial repair probe: chain target","expected":[[0,930],[1030,2031],[2131,4131],[4882,5882]],"passed":true},{"actual":[[0,2000],[2830,3831],[3911,4911],[5741,6141],[6891,8891]],"check":"partial repair variant: chain target","expected":[[0,2000],[2830,3831],[3911,4911],[5741,6141],[6891,8891]],"passed":true},{"actual":[[0,950],[1050,2000]],"check":"boundary control","expected":[[0,950],[1050,2000]],"passed":true},{"actual":[[0,1000],[1500,2000]],"check":"boundary control","expected":[[0,1000],[1500,2000]],"passed":true},{"actual":[[0,800],[900,2000]],"check":"normal control","expected":[[0,800],[900,2000]],"passed":true},{"actual":[[0,400],[1400,2400]],"check":"normal control","expected":[[0,400],[1400,2400]],"passed":true},{"actual":[[0,1000],[1301,1401]],"check":"normal control","expected":[[0,1000],[1301,1401]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: chain target\", \"actual\": [[0, 1300], [1400, 2000]], \"expected\": [[0, 1300], [1400, 2000]], \"passed\": true}, {\"check\": \"regression variant: chain target\", \"actual\": [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]], \"expected\": [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]], \"passed\": true}, {\"check\": \"partial repair probe: chain target\", \"actual\": [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]], \"expected\": [[0, 930], [1030, 2031], [2131, 4131], [4882, 5882]], \"passed\": true}, {\"check\": \"partial repair variant: chain target\", \"actual\": [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]], \"expected\": [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[0, 950], [1050, 2000]], \"expected\": [[0, 950], [1050, 2000]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[0, 1000], [1500, 2000]], \"expected\": [[0, 1000], [1500, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 800], [900, 2000]], \"expected\": [[0, 800], [900, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 400], [1400, 2400]], \"expected\": [[0, 400], [1400, 2400]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 1000], [1301, 1401]], \"expected\": [[0, 1000], [1301, 1401]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}