{"abstract":"A short cue followed immediately by another ends before it starts.","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":"Bounding the end by the start itself still produces zero-length cues.","family":"w2-subtitle-cue-timing-gap-chaining-trim-floor","id":"FA-77971","implementations":{"attempt":{"sha256":"1d40347eef7f48bf5c79c45a3920015412a555e8807bf695c651dbd882db6de4","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],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: trim floor', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('regression variant: trim floor', [[[1000, 1100], [1001, 1401], [1351, 1451], [1456, 3456], [4456, 5456]], 80, 300], [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]]), ('partial repair probe: trim floor', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('partial repair variant: trim floor', [[[0, 100], [100, 500], [799, 1199]], 120, 300], [[0, 1], [100, 679], [799, 1199]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('normal control', [[[0, 400], [1400, 2400]], 80, 750], [[0, 400], [1400, 2400]]), ('normal control', [[[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], 83, 500], [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]])], [('regression: trim floor', [[[1000, 2000], [2501, 2901], [3901, 4001], [3902, 5902], [6902, 7002]], 83, 500], [[1000, 2000], [2501, 2901], [3901, 3902], [3902, 5902], [6902, 7002]]), ('regression variant: trim floor', [[[1000, 1400], [1480, 1580], [1481, 1881]], 80, 500], [[1000, 1400], [1480, 1481], [1481, 1881]]), ('partial repair probe: trim floor', [[[1000, 1100], [1001, 1101], [1402, 3402], [3484, 3584], [3589, 5589]], 83, 300], [[1000, 1001], [1001, 1101], [1402, 3401], [3484, 3506], [3589, 5589]]), ('partial repair variant: trim floor', [[[1000, 1100], [1001, 2001]], 80, 750], [[1000, 1001], [1001, 2001]]), ('boundary control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('normal control', [[[0, 1000], [1005, 1105]], 100, 750], [[0, 905], [1005, 1105]]), ('normal control', [[[1000, 1400], [2151, 4151]], 80, 750], [[1000, 1400], [2151, 4151]]), ('normal control', [[[0, 400], [479, 879]], 80, 750], [[0, 399], [479, 879]])], [('regression: trim floor', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('regression variant: trim floor', [[[0, 2000], [2000, 2100], [2130, 2530], [2560, 2660], [2610, 3010]], 120, 750], [[0, 1880], [2000, 2010], [2130, 2440], [2560, 2561], [2610, 3010]]), ('partial repair probe: trim floor', [[[0, 100], [1100, 1500], [2080, 3080], [3579, 3679], [3629, 5629]], 80, 500], [[0, 100], [1100, 1500], [2080, 3499], [3579, 3580], [3629, 5629]]), ('partial repair variant: trim floor', [[[1000, 1100], [1219, 1319], [1269, 1369]], 120, 750], [[1000, 1099], [1219, 1220], [1269, 1369]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('normal control', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('normal control', [[[1000, 3000], [4000, 6000], [6030, 6430], [6230, 8230], [8030, 10030]], 80, 750], [[1000, 3000], [4000, 5950], [6030, 6150], [6230, 7950], [8030, 10030]]), ('normal control', [[[0, 2000], [1800, 2200]], 100, 300], [[0, 1700], [1800, 2200]])], [('regression: trim floor', [[[1000, 1100], [1001, 1101], [1402, 3402], [3484, 3584], [3589, 5589]], 83, 300], [[1000, 1001], [1001, 1101], [1402, 3401], [3484, 3506], [3589, 5589]]), ('regression variant: trim floor', [[[1000, 1100], [1105, 3105], [3204, 3304], [3254, 4254], [5005, 5105]], 100, 750], [[1000, 1005], [1105, 3104], [3204, 3205], [3254, 4254], [5005, 5105]]), ('partial repair probe: trim floor', [[[1000, 1100], [1001, 1401], [1351, 1451], [1456, 3456], [4456, 5456]], 80, 300], [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]]), ('partial repair variant: trim floor', [[[1000, 3000], [3080, 5080], [5580, 7580], [7380, 7480], [7430, 8430]], 80, 500], [[1000, 3000], [3080, 5080], [5580, 7300], [7380, 7381], [7430, 8430]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('normal control', [[[0, 1000], [800, 1800], [2800, 3800]], 83, 750], [[0, 717], [800, 1800], [2800, 3800]]), ('normal control', [[[1000, 1400], [1899, 2299], [2099, 2499]], 80, 500], [[1000, 1819], [1899, 2019], [2099, 2499]])], [('regression: trim floor', [[[0, 100], [1100, 1500], [2080, 3080], [3579, 3679], [3629, 5629]], 80, 500], [[0, 100], [1100, 1500], [2080, 3499], [3579, 3580], [3629, 5629]]), ('regression variant: trim floor', [[[0, 100], [100, 500], [799, 1199]], 120, 300], [[0, 1], [100, 679], [799, 1199]]), ('partial repair probe: trim floor', [[[1000, 1400], [1480, 1580], [1481, 1881]], 80, 500], [[1000, 1400], [1480, 1481], [1481, 1881]]), ('partial repair variant: trim floor', [[[0, 1000], [1300, 1700], [1700, 2100], [2221, 2321], [2321, 2421]], 120, 300], [[0, 1000], [1300, 1580], [1700, 2101], [2221, 2222], [2321, 2421]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 1400], [2151, 4151], [3951, 5951], [5751, 6751], [6870, 6970]], 120, 750], [[1000, 1400], [2151, 3831], [3951, 5631], [5751, 6750], [6870, 6970]]), ('normal control', [[[1000, 1100], [1180, 2180]], 80, 500], [[1000, 1100], [1180, 2180]]), ('normal control', [[[0, 1000], [1833, 2833]], 83, 750], [[0, 1000], [1833, 2833]])]]\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":"94472d7e52a218b11ab6d4e99b4dd73f5ec800e7d6ec668e7f4963e1204b1e3b","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]=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: trim floor', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('regression variant: trim floor', [[[1000, 1100], [1001, 1401], [1351, 1451], [1456, 3456], [4456, 5456]], 80, 300], [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]]), ('partial repair probe: trim floor', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('partial repair variant: trim floor', [[[0, 100], [100, 500], [799, 1199]], 120, 300], [[0, 1], [100, 679], [799, 1199]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('normal control', [[[0, 400], [1400, 2400]], 80, 750], [[0, 400], [1400, 2400]]), ('normal control', [[[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], 83, 500], [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]])], [('regression: trim floor', [[[1000, 2000], [2501, 2901], [3901, 4001], [3902, 5902], [6902, 7002]], 83, 500], [[1000, 2000], [2501, 2901], [3901, 3902], [3902, 5902], [6902, 7002]]), ('regression variant: trim floor', [[[1000, 1400], [1480, 1580], [1481, 1881]], 80, 500], [[1000, 1400], [1480, 1481], [1481, 1881]]), ('partial repair probe: trim floor', [[[1000, 1100], [1001, 1101], [1402, 3402], [3484, 3584], [3589, 5589]], 83, 300], [[1000, 1001], [1001, 1101], [1402, 3401], [3484, 3506], [3589, 5589]]), ('partial repair variant: trim floor', [[[1000, 1100], [1001, 2001]], 80, 750], [[1000, 1001], [1001, 2001]]), ('boundary control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('normal control', [[[0, 1000], [1005, 1105]], 100, 750], [[0, 905], [1005, 1105]]), ('normal control', [[[1000, 1400], [2151, 4151]], 80, 750], [[1000, 1400], [2151, 4151]]), ('normal control', [[[0, 400], [479, 879]], 80, 750], [[0, 399], [479, 879]])], [('regression: trim floor', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('regression variant: trim floor', [[[0, 2000], [2000, 2100], [2130, 2530], [2560, 2660], [2610, 3010]], 120, 750], [[0, 1880], [2000, 2010], [2130, 2440], [2560, 2561], [2610, 3010]]), ('partial repair probe: trim floor', [[[0, 100], [1100, 1500], [2080, 3080], [3579, 3679], [3629, 5629]], 80, 500], [[0, 100], [1100, 1500], [2080, 3499], [3579, 3580], [3629, 5629]]), ('partial repair variant: trim floor', [[[1000, 1100], [1219, 1319], [1269, 1369]], 120, 750], [[1000, 1099], [1219, 1220], [1269, 1369]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('normal control', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('normal control', [[[1000, 3000], [4000, 6000], [6030, 6430], [6230, 8230], [8030, 10030]], 80, 750], [[1000, 3000], [4000, 5950], [6030, 6150], [6230, 7950], [8030, 10030]]), ('normal control', [[[0, 2000], [1800, 2200]], 100, 300], [[0, 1700], [1800, 2200]])], [('regression: trim floor', [[[1000, 1100], [1001, 1101], [1402, 3402], [3484, 3584], [3589, 5589]], 83, 300], [[1000, 1001], [1001, 1101], [1402, 3401], [3484, 3506], [3589, 5589]]), ('regression variant: trim floor', [[[1000, 1100], [1105, 3105], [3204, 3304], [3254, 4254], [5005, 5105]], 100, 750], [[1000, 1005], [1105, 3104], [3204, 3205], [3254, 4254], [5005, 5105]]), ('partial repair probe: trim floor', [[[1000, 1100], [1001, 1401], [1351, 1451], [1456, 3456], [4456, 5456]], 80, 300], [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]]), ('partial repair variant: trim floor', [[[1000, 3000], [3080, 5080], [5580, 7580], [7380, 7480], [7430, 8430]], 80, 500], [[1000, 3000], [3080, 5080], [5580, 7300], [7380, 7381], [7430, 8430]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('normal control', [[[0, 1000], [800, 1800], [2800, 3800]], 83, 750], [[0, 717], [800, 1800], [2800, 3800]]), ('normal control', [[[1000, 1400], [1899, 2299], [2099, 2499]], 80, 500], [[1000, 1819], [1899, 2019], [2099, 2499]])], [('regression: trim floor', [[[0, 100], [1100, 1500], [2080, 3080], [3579, 3679], [3629, 5629]], 80, 500], [[0, 100], [1100, 1500], [2080, 3499], [3579, 3580], [3629, 5629]]), ('regression variant: trim floor', [[[0, 100], [100, 500], [799, 1199]], 120, 300], [[0, 1], [100, 679], [799, 1199]]), ('partial repair probe: trim floor', [[[1000, 1400], [1480, 1580], [1481, 1881]], 80, 500], [[1000, 1400], [1480, 1481], [1481, 1881]]), ('partial repair variant: trim floor', [[[0, 1000], [1300, 1700], [1700, 2100], [2221, 2321], [2321, 2421]], 120, 300], [[0, 1000], [1300, 1580], [1700, 2101], [2221, 2222], [2321, 2421]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 1400], [2151, 4151], [3951, 5951], [5751, 6751], [6870, 6970]], 120, 750], [[1000, 1400], [2151, 3831], [3951, 5631], [5751, 6750], [6870, 6970]]), ('normal control', [[[1000, 1100], [1180, 2180]], 80, 500], [[1000, 1100], [1180, 2180]]), ('normal control', [[[0, 1000], [1833, 2833]], 83, 750], [[0, 1000], [1833, 2833]])]]\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":"bdf8ab534fa68f62462b08bc53f02bb710fe9f5fb2ed9495dac581a44e85c860","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: trim floor', [[[1000, 1400], [1499, 1899], [2398, 2498], [2399, 2799], [2900, 3900]], 100, 500], [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]]), ('regression variant: trim floor', [[[1000, 1100], [1001, 1401], [1351, 1451], [1456, 3456], [4456, 5456]], 80, 300], [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]]), ('partial repair probe: trim floor', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('partial repair variant: trim floor', [[[0, 100], [100, 500], [799, 1199]], 120, 300], [[0, 1], [100, 679], [799, 1199]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('normal control', [[[0, 400], [1400, 2400]], 80, 750], [[0, 400], [1400, 2400]]), ('normal control', [[[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], 83, 500], [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]])], [('regression: trim floor', [[[1000, 2000], [2501, 2901], [3901, 4001], [3902, 5902], [6902, 7002]], 83, 500], [[1000, 2000], [2501, 2901], [3901, 3902], [3902, 5902], [6902, 7002]]), ('regression variant: trim floor', [[[1000, 1400], [1480, 1580], [1481, 1881]], 80, 500], [[1000, 1400], [1480, 1481], [1481, 1881]]), ('partial repair probe: trim floor', [[[1000, 1100], [1001, 1101], [1402, 3402], [3484, 3584], [3589, 5589]], 83, 300], [[1000, 1001], [1001, 1101], [1402, 3401], [3484, 3506], [3589, 5589]]), ('partial repair variant: trim floor', [[[1000, 1100], [1001, 2001]], 80, 750], [[1000, 1001], [1001, 2001]]), ('boundary control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('normal control', [[[0, 1000], [1005, 1105]], 100, 750], [[0, 905], [1005, 1105]]), ('normal control', [[[1000, 1400], [2151, 4151]], 80, 750], [[1000, 1400], [2151, 4151]]), ('normal control', [[[0, 400], [479, 879]], 80, 750], [[0, 399], [479, 879]])], [('regression: trim floor', [[[0, 400], [983, 1083], [1165, 1265], [1166, 2166], [2250, 2350]], 83, 500], [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]]), ('regression variant: trim floor', [[[0, 2000], [2000, 2100], [2130, 2530], [2560, 2660], [2610, 3010]], 120, 750], [[0, 1880], [2000, 2010], [2130, 2440], [2560, 2561], [2610, 3010]]), ('partial repair probe: trim floor', [[[0, 100], [1100, 1500], [2080, 3080], [3579, 3679], [3629, 5629]], 80, 500], [[0, 100], [1100, 1500], [2080, 3499], [3579, 3580], [3629, 5629]]), ('partial repair variant: trim floor', [[[1000, 1100], [1219, 1319], [1269, 1369]], 120, 750], [[1000, 1099], [1219, 1220], [1269, 1369]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('boundary control', [[[0, 1000], [1400, 2000]], 100, 500], [[0, 1300], [1400, 2000]]), ('normal control', [[[1000, 3000], [3030, 5030], [5113, 6113], [6864, 6964], [6964, 8964]], 83, 750], [[1000, 2947], [3030, 5030], [5113, 6113], [6864, 6881], [6964, 8964]]), ('normal control', [[[1000, 3000], [4000, 6000], [6030, 6430], [6230, 8230], [8030, 10030]], 80, 750], [[1000, 3000], [4000, 5950], [6030, 6150], [6230, 7950], [8030, 10030]]), ('normal control', [[[0, 2000], [1800, 2200]], 100, 300], [[0, 1700], [1800, 2200]])], [('regression: trim floor', [[[1000, 1100], [1001, 1101], [1402, 3402], [3484, 3584], [3589, 5589]], 83, 300], [[1000, 1001], [1001, 1101], [1402, 3401], [3484, 3506], [3589, 5589]]), ('regression variant: trim floor', [[[1000, 1100], [1105, 3105], [3204, 3304], [3254, 4254], [5005, 5105]], 100, 750], [[1000, 1005], [1105, 3104], [3204, 3205], [3254, 4254], [5005, 5105]]), ('partial repair probe: trim floor', [[[1000, 1100], [1001, 1401], [1351, 1451], [1456, 3456], [4456, 5456]], 80, 300], [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]]), ('partial repair variant: trim floor', [[[1000, 3000], [3080, 5080], [5580, 7580], [7380, 7480], [7430, 8430]], 80, 500], [[1000, 3000], [3080, 5080], [5580, 7300], [7380, 7381], [7430, 8430]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('boundary control', [[[0, 1000], [1500, 2000]], 100, 500], [[0, 1000], [1500, 2000]]), ('normal control', [[[0, 2000], [2830, 3830], [3911, 4911], [5741, 6141], [6891, 8891]], 80, 750], [[0, 2000], [2830, 3831], [3911, 4911], [5741, 6141], [6891, 8891]]), ('normal control', [[[0, 1000], [800, 1800], [2800, 3800]], 83, 750], [[0, 717], [800, 1800], [2800, 3800]]), ('normal control', [[[1000, 1400], [1899, 2299], [2099, 2499]], 80, 500], [[1000, 1819], [1899, 2019], [2099, 2499]])], [('regression: trim floor', [[[0, 100], [1100, 1500], [2080, 3080], [3579, 3679], [3629, 5629]], 80, 500], [[0, 100], [1100, 1500], [2080, 3499], [3579, 3580], [3629, 5629]]), ('regression variant: trim floor', [[[0, 100], [100, 500], [799, 1199]], 120, 300], [[0, 1], [100, 679], [799, 1199]]), ('partial repair probe: trim floor', [[[1000, 1400], [1480, 1580], [1481, 1881]], 80, 500], [[1000, 1400], [1480, 1481], [1481, 1881]]), ('partial repair variant: trim floor', [[[0, 1000], [1300, 1700], [1700, 2100], [2221, 2321], [2321, 2421]], 120, 300], [[0, 1000], [1300, 1580], [1700, 2101], [2221, 2222], [2321, 2421]]), ('boundary control', [[[0, 1000], [1050, 2000]], 100, 500], [[0, 950], [1050, 2000]]), ('boundary control', [[[0, 1000], [900, 2000]], 100, 500], [[0, 800], [900, 2000]]), ('normal control', [[[1000, 1400], [2151, 4151], [3951, 5951], [5751, 6751], [6870, 6970]], 120, 750], [[1000, 1400], [2151, 3831], [3951, 5631], [5751, 6750], [6870, 6970]]), ('normal control', [[[1000, 1100], [1180, 2180]], 80, 500], [[1000, 1100], [1180, 2180]]), ('normal control', [[[0, 1000], [1833, 2833]], 83, 750], [[0, 1000], [1833, 2833]])]]\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-trim-floor","generated_at":"2026-09-29T14:49:30.759737+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":"Keep the trimmed end at least one millisecond after the start.","root_cause":"The trimmed end is not bounded below by the cue start.","sha256":"ffddac3cdbd116b2369797b07773733c9576618f7300d916a00a05728f82e21b","title":"Minimum gap and chaining between cues: trim floor · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.812,"exit_code":1,"observations":[{"actual":[[1000,1399],[1499,2298],[2398,2398],[2399,2800],[2900,3900]],"check":"regression: trim floor","expected":[[1000,1399],[1499,2298],[2398,2399],[2399,2800],[2900,3900]],"passed":false},{"actual":[[1000,1000],[1001,1271],[1351,1376],[1456,3456],[4456,5456]],"check":"regression variant: trim floor","expected":[[1000,1001],[1001,1271],[1351,1376],[1456,3456],[4456,5456]],"passed":false},{"actual":[[0,400],[983,1082],[1165,1165],[1166,2167],[2250,2350]],"check":"partial repair probe: trim floor","expected":[[0,400],[983,1082],[1165,1166],[1166,2167],[2250,2350]],"passed":false},{"actual":[[0,0],[100,679],[799,1199]],"check":"partial repair variant: trim floor","expected":[[0,1],[100,679],[799,1199]],"passed":false},{"actual":[[0,950],[1050,2000]],"check":"boundary control","expected":[[0,950],[1050,2000]],"passed":true},{"actual":[[0,800],[900,2000]],"check":"boundary control","expected":[[0,800],[900,2000]],"passed":true},{"actual":[[0,1300],[1400,2000]],"check":"normal control","expected":[[0,1300],[1400,2000]],"passed":true},{"actual":[[0,400],[1400,2400]],"check":"normal control","expected":[[0,400],[1400,2400]],"passed":true},{"actual":[[0,100],[183,2183],[3183,3283],[3784,5784]],"check":"normal control","expected":[[0,100],[183,2183],[3183,3283],[3784,5784]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trim floor\", \"actual\": [[1000, 1399], [1499, 2298], [2398, 2398], [2399, 2800], [2900, 3900]], \"expected\": [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]], \"passed\": false}, {\"check\": \"regression variant: trim floor\", \"actual\": [[1000, 1000], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]], \"expected\": [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]], \"passed\": false}, {\"check\": \"partial repair probe: trim floor\", \"actual\": [[0, 400], [983, 1082], [1165, 1165], [1166, 2167], [2250, 2350]], \"expected\": [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]], \"passed\": false}, {\"check\": \"partial repair variant: trim floor\", \"actual\": [[0, 0], [100, 679], [799, 1199]], \"expected\": [[0, 1], [100, 679], [799, 1199]], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [[0, 950], [1050, 2000]], \"expected\": [[0, 950], [1050, 2000]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[0, 800], [900, 2000]], \"expected\": [[0, 800], [900, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 1300], [1400, 2000]], \"expected\": [[0, 1300], [1400, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 400], [1400, 2400]], \"expected\": [[0, 400], [1400, 2400]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], \"expected\": [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.654,"exit_code":1,"observations":[{"actual":[[1000,1399],[1499,2298],[2398,2299],[2399,2800],[2900,3900]],"check":"regression: trim floor","expected":[[1000,1399],[1499,2298],[2398,2399],[2399,2800],[2900,3900]],"passed":false},{"actual":[[1000,921],[1001,1271],[1351,1376],[1456,3456],[4456,5456]],"check":"regression variant: trim floor","expected":[[1000,1001],[1001,1271],[1351,1376],[1456,3456],[4456,5456]],"passed":false},{"actual":[[0,400],[983,1082],[1165,1083],[1166,2167],[2250,2350]],"check":"partial repair probe: trim floor","expected":[[0,400],[983,1082],[1165,1166],[1166,2167],[2250,2350]],"passed":false},{"actual":[[0,-20],[100,679],[799,1199]],"check":"partial repair variant: trim floor","expected":[[0,1],[100,679],[799,1199]],"passed":false},{"actual":[[0,950],[1050,2000]],"check":"boundary control","expected":[[0,950],[1050,2000]],"passed":true},{"actual":[[0,800],[900,2000]],"check":"boundary control","expected":[[0,800],[900,2000]],"passed":true},{"actual":[[0,1300],[1400,2000]],"check":"normal control","expected":[[0,1300],[1400,2000]],"passed":true},{"actual":[[0,400],[1400,2400]],"check":"normal control","expected":[[0,400],[1400,2400]],"passed":true},{"actual":[[0,100],[183,2183],[3183,3283],[3784,5784]],"check":"normal control","expected":[[0,100],[183,2183],[3183,3283],[3784,5784]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trim floor\", \"actual\": [[1000, 1399], [1499, 2298], [2398, 2299], [2399, 2800], [2900, 3900]], \"expected\": [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]], \"passed\": false}, {\"check\": \"regression variant: trim floor\", \"actual\": [[1000, 921], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]], \"expected\": [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]], \"passed\": false}, {\"check\": \"partial repair probe: trim floor\", \"actual\": [[0, 400], [983, 1082], [1165, 1083], [1166, 2167], [2250, 2350]], \"expected\": [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]], \"passed\": false}, {\"check\": \"partial repair variant: trim floor\", \"actual\": [[0, -20], [100, 679], [799, 1199]], \"expected\": [[0, 1], [100, 679], [799, 1199]], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [[0, 950], [1050, 2000]], \"expected\": [[0, 950], [1050, 2000]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[0, 800], [900, 2000]], \"expected\": [[0, 800], [900, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 1300], [1400, 2000]], \"expected\": [[0, 1300], [1400, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 400], [1400, 2400]], \"expected\": [[0, 400], [1400, 2400]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], \"expected\": [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.211,"exit_code":0,"observations":[{"actual":[[1000,1399],[1499,2298],[2398,2399],[2399,2800],[2900,3900]],"check":"regression: trim floor","expected":[[1000,1399],[1499,2298],[2398,2399],[2399,2800],[2900,3900]],"passed":true},{"actual":[[1000,1001],[1001,1271],[1351,1376],[1456,3456],[4456,5456]],"check":"regression variant: trim floor","expected":[[1000,1001],[1001,1271],[1351,1376],[1456,3456],[4456,5456]],"passed":true},{"actual":[[0,400],[983,1082],[1165,1166],[1166,2167],[2250,2350]],"check":"partial repair probe: trim floor","expected":[[0,400],[983,1082],[1165,1166],[1166,2167],[2250,2350]],"passed":true},{"actual":[[0,1],[100,679],[799,1199]],"check":"partial repair variant: trim floor","expected":[[0,1],[100,679],[799,1199]],"passed":true},{"actual":[[0,950],[1050,2000]],"check":"boundary control","expected":[[0,950],[1050,2000]],"passed":true},{"actual":[[0,800],[900,2000]],"check":"boundary control","expected":[[0,800],[900,2000]],"passed":true},{"actual":[[0,1300],[1400,2000]],"check":"normal control","expected":[[0,1300],[1400,2000]],"passed":true},{"actual":[[0,400],[1400,2400]],"check":"normal control","expected":[[0,400],[1400,2400]],"passed":true},{"actual":[[0,100],[183,2183],[3183,3283],[3784,5784]],"check":"normal control","expected":[[0,100],[183,2183],[3183,3283],[3784,5784]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trim floor\", \"actual\": [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]], \"expected\": [[1000, 1399], [1499, 2298], [2398, 2399], [2399, 2800], [2900, 3900]], \"passed\": true}, {\"check\": \"regression variant: trim floor\", \"actual\": [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]], \"expected\": [[1000, 1001], [1001, 1271], [1351, 1376], [1456, 3456], [4456, 5456]], \"passed\": true}, {\"check\": \"partial repair probe: trim floor\", \"actual\": [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]], \"expected\": [[0, 400], [983, 1082], [1165, 1166], [1166, 2167], [2250, 2350]], \"passed\": true}, {\"check\": \"partial repair variant: trim floor\", \"actual\": [[0, 1], [100, 679], [799, 1199]], \"expected\": [[0, 1], [100, 679], [799, 1199]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[0, 950], [1050, 2000]], \"expected\": [[0, 950], [1050, 2000]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[0, 800], [900, 2000]], \"expected\": [[0, 800], [900, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 1300], [1400, 2000]], \"expected\": [[0, 1300], [1400, 2000]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 400], [1400, 2400]], \"expected\": [[0, 400], [1400, 2400]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], \"expected\": [[0, 100], [183, 2183], [3183, 3283], [3784, 5784]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}