{"abstract":"A cut nested inside a larger cut shortens the removed range.","category":"Subtitle cue timing","checks":9,"contract":"Cuts [a,b) are removed from the programme (they may overlap or be unsorted and are merged first). A time after a cut shifts left by the removed length; a time inside a cut maps to the cut point. Cues [start,end,text] are mapped and dropped when the mapped end is not after the mapped start.","evaluation_group":"w2-subtitle-cue-timing-cut-list-conform","failed_approach":"Adding the second cut length double counts the overlapping part.","family":"w2-subtitle-cue-timing-cut-list-conform-merged-cut-extent","id":"FA-78331","implementations":{"attempt":{"sha256":"84c559ae935cf29730416bb01f51236b637bc6b1a5f76f9791d9b2092c9ee7c5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cues, cuts):\n    merged=[]\n    for a,b in sorted(cuts):\n        if merged and a<=merged[-1][1]:\n            merged[-1][1]=merged[-1][1]+b-a\n        else:\n            merged.append([a,b])\n    def mapt(t):\n        shift=0\n        for a,b in merged:\n            if t>=b:\n                shift+=b-a\n            elif t>a:\n                return a-shift\n        return t-shift\n    out=[]\n    for s,e,txt in cues:\n        ns,ne=mapt(s),mapt(e)\n        if ne>ns:\n            out.append([ns,ne,txt])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: merged cut extent', [[[3200, 5200, 'c0'], [1200, 1300, 'c1']], [[500, 2000], [2000, 2100], [1500, 1600]]], [[1600, 3600, 'c0']]), ('regression variant: merged cut extent', [[[0, 300, 'c0'], [0, 100, 'c1'], [4000, 6000, 'c2'], [4000, 4100, 'c3']], [[1000, 1100], [0, 1500], [3000, 3500]]], [[2000, 4000, 'c2'], [2000, 2100, 'c3']]), ('partial repair probe: merged cut extent', [[[2500, 4500, 'c0'], [4000, 6000, 'c1'], [900, 2900, 'c2'], [200, 2200, 'c3']], [[500, 600], [500, 1000]]], [[2000, 4000, 'c0'], [3500, 5500, 'c1'], [500, 2400, 'c2'], [200, 1700, 'c3']]), ('partial repair variant: merged cut extent', [[[900, 1000, 'c0'], [600, 2600, 'c1'], [4000, 4100, 'c2'], [900, 2900, 'c3']], [[1000, 1500], [2000, 2100], [2000, 2500]]], [[900, 1000, 'c0'], [600, 1600, 'c1'], [3000, 3100, 'c2'], [900, 1900, 'c3']]), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('normal control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[600, 2600, 'c0'], [2500, 3300, 'c1'], [0, 2000, 'c2']], [[1000, 1100]]], [[600, 2500, 'c0'], [2400, 3200, 'c1'], [0, 1900, 'c2']]), ('normal control', [[[0, 800, 'c0'], [4000, 4300, 'c1'], [0, 800, 'c2']], [[3000, 3100], [3000, 4500], [0, 1500]]], [])], [('regression: merged cut extent', [[[1600, 2400, 'c0'], [4000, 4300, 'c1'], [1200, 3200, 'c2'], [2500, 2800, 'c3']], [[1000, 1500], [500, 600], [0, 1000]]], [[100, 900, 'c0'], [2500, 2800, 'c1'], [0, 1700, 'c2'], [1000, 1300, 'c3']]), ('regression variant: merged cut extent', [[[3200, 3300, 'c0']], [[500, 600], [0, 1500], [0, 100]]], [[1700, 1800, 'c0']]), ('partial repair probe: merged cut extent', [[[2500, 4500, 'c0'], [4000, 6000, 'c1'], [900, 2900, 'c2'], [200, 2200, 'c3']], [[500, 600], [500, 1000]]], [[2000, 4000, 'c0'], [3500, 5500, 'c1'], [500, 2400, 'c2'], [200, 1700, 'c3']]), ('partial repair variant: merged cut extent', [[[4000, 4300, 'c0'], [3200, 3500, 'c1']], [[1000, 2500], [1500, 2500], [1500, 2000]]], [[2500, 2800, 'c0'], [1700, 2000, 'c1']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[3200, 3300, 'c0'], [1200, 2000, 'c1'], [0, 2000, 'c2'], [3200, 3300, 'c3']], [[1000, 1500]]], [[2700, 2800, 'c0'], [1000, 1500, 'c1'], [0, 1500, 'c2'], [2700, 2800, 'c3']]), ('normal control', [[[900, 1700, 'c0'], [2500, 3300, 'c1'], [1200, 2000, 'c2']], [[1000, 2500]]], [[900, 1000, 'c0'], [1000, 1800, 'c1']]), ('normal control', [[[0, 2000, 'c0'], [0, 300, 'c1']], []], [[0, 2000, 'c0'], [0, 300, 'c1']])], [('regression: merged cut extent', [[[600, 1400, 'c0'], [1200, 3200, 'c1']], [[0, 1500], [500, 1500], [1000, 1100]]], [[0, 1700, 'c1']]), ('regression variant: merged cut extent', [[[600, 700, 'c0'], [3200, 5200, 'c1']], [[500, 2000], [1000, 1500], [2000, 3000]]], [[700, 2700, 'c1']]), ('partial repair probe: merged cut extent', [[[1600, 1900, 'c0'], [2500, 3300, 'c1'], [1600, 1900, 'c2'], [4000, 6000, 'c3']], [[500, 2000], [0, 1000]]], [[500, 1300, 'c1'], [2000, 4000, 'c3']]), ('partial repair variant: merged cut extent', [[[4000, 4300, 'c0'], [3200, 3500, 'c1']], [[1000, 2500], [1500, 2500], [1500, 2000]]], [[2500, 2800, 'c0'], [1700, 2000, 'c1']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('normal control', [[[900, 1200, 'c0'], [2500, 3300, 'c1']], [[2000, 2500]]], [[900, 1200, 'c0'], [2000, 2800, 'c1']]), ('normal control', [[[2500, 2800, 'c0'], [600, 1400, 'c1']], []], [[2500, 2800, 'c0'], [600, 1400, 'c1']]), ('normal control', [[[0, 800, 'c0'], [200, 1000, 'c1'], [600, 1400, 'c2'], [1600, 3600, 'c3']], [[0, 100]]], [[0, 700, 'c0'], [100, 900, 'c1'], [500, 1300, 'c2'], [1500, 3500, 'c3']])], [('regression: merged cut extent', [[[600, 900, 'c0'], [600, 900, 'c1']], [[2000, 2500], [0, 1500], [500, 600]]], []), ('regression variant: merged cut extent', [[[200, 500, 'c0'], [2500, 2800, 'c1'], [600, 700, 'c2']], [[500, 2000], [1500, 1600]]], [[200, 500, 'c0'], [1000, 1300, 'c1']]), ('partial repair probe: merged cut extent', [[[1200, 2000, 'c0'], [4000, 4300, 'c1'], [200, 2200, 'c2'], [3200, 4000, 'c3']], [[1000, 2000], [0, 1500], [1500, 2500]]], [[1500, 1800, 'c1'], [700, 1500, 'c3']]), ('partial repair variant: merged cut extent', [[[1600, 3600, 'c0'], [2500, 4500, 'c1']], [[1000, 2000], [1500, 2000]]], [[1000, 2600, 'c0'], [1500, 3500, 'c1']]), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('normal control', [[[4000, 6000, 'c0'], [200, 1000, 'c1']], [[0, 500], [500, 600]]], [[3400, 5400, 'c0'], [0, 400, 'c1']]), ('normal control', [[[2500, 3300, 'c0']], []], [[2500, 3300, 'c0']]), ('normal control', [[[4000, 6000, 'c0'], [1600, 1700, 'c1']], [[500, 2000]]], [[2500, 4500, 'c0']])], [('regression: merged cut extent', [[[1600, 3600, 'c0'], [900, 2900, 'c1'], [4000, 6000, 'c2'], [900, 1200, 'c3']], [[1000, 1100], [500, 1500]]], [[600, 2600, 'c0'], [500, 1900, 'c1'], [3000, 5000, 'c2']]), ('regression variant: merged cut extent', [[[200, 2200, 'c0']], [[1000, 1100], [500, 2000]]], [[200, 700, 'c0']]), ('partial repair probe: merged cut extent', [[[2500, 3300, 'c0'], [200, 500, 'c1']], [[1500, 1600], [0, 1000], [1500, 3000]]], [[500, 800, 'c0']]), ('partial repair variant: merged cut extent', [[[1200, 1500, 'c0'], [3200, 4000, 'c1']], [[0, 1000], [0, 100]]], [[200, 500, 'c0'], [2200, 3000, 'c1']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[600, 2600, 'c0'], [200, 2200, 'c1'], [4000, 4300, 'c2']], []], [[600, 2600, 'c0'], [200, 2200, 'c1'], [4000, 4300, 'c2']]), ('normal control', [[[2500, 3300, 'c0'], [600, 1400, 'c1'], [1600, 3600, 'c2'], [600, 700, 'c3']], [[3000, 3500], [2000, 3000], [1000, 2000]]], [[600, 1000, 'c1'], [1000, 1100, 'c2'], [600, 700, 'c3']]), ('normal control', [[[900, 2900, 'c0'], [3200, 3500, 'c1'], [2500, 2800, 'c2']], [[1500, 3000], [3000, 4000]]], [[900, 1500, 'c0']])]]\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":"0bb64910707fbd64c942e046d47ebd6ed71374a89d8e4f5d02eb30694841f483","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cues, cuts):\n    merged=[]\n    for a,b in sorted(cuts):\n        if merged and a<=merged[-1][1]:\n            merged[-1][1]=b\n        else:\n            merged.append([a,b])\n    def mapt(t):\n        shift=0\n        for a,b in merged:\n            if t>=b:\n                shift+=b-a\n            elif t>a:\n                return a-shift\n        return t-shift\n    out=[]\n    for s,e,txt in cues:\n        ns,ne=mapt(s),mapt(e)\n        if ne>ns:\n            out.append([ns,ne,txt])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: merged cut extent', [[[3200, 5200, 'c0'], [1200, 1300, 'c1']], [[500, 2000], [2000, 2100], [1500, 1600]]], [[1600, 3600, 'c0']]), ('regression variant: merged cut extent', [[[0, 300, 'c0'], [0, 100, 'c1'], [4000, 6000, 'c2'], [4000, 4100, 'c3']], [[1000, 1100], [0, 1500], [3000, 3500]]], [[2000, 4000, 'c2'], [2000, 2100, 'c3']]), ('partial repair probe: merged cut extent', [[[2500, 4500, 'c0'], [4000, 6000, 'c1'], [900, 2900, 'c2'], [200, 2200, 'c3']], [[500, 600], [500, 1000]]], [[2000, 4000, 'c0'], [3500, 5500, 'c1'], [500, 2400, 'c2'], [200, 1700, 'c3']]), ('partial repair variant: merged cut extent', [[[900, 1000, 'c0'], [600, 2600, 'c1'], [4000, 4100, 'c2'], [900, 2900, 'c3']], [[1000, 1500], [2000, 2100], [2000, 2500]]], [[900, 1000, 'c0'], [600, 1600, 'c1'], [3000, 3100, 'c2'], [900, 1900, 'c3']]), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('normal control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[600, 2600, 'c0'], [2500, 3300, 'c1'], [0, 2000, 'c2']], [[1000, 1100]]], [[600, 2500, 'c0'], [2400, 3200, 'c1'], [0, 1900, 'c2']]), ('normal control', [[[0, 800, 'c0'], [4000, 4300, 'c1'], [0, 800, 'c2']], [[3000, 3100], [3000, 4500], [0, 1500]]], [])], [('regression: merged cut extent', [[[1600, 2400, 'c0'], [4000, 4300, 'c1'], [1200, 3200, 'c2'], [2500, 2800, 'c3']], [[1000, 1500], [500, 600], [0, 1000]]], [[100, 900, 'c0'], [2500, 2800, 'c1'], [0, 1700, 'c2'], [1000, 1300, 'c3']]), ('regression variant: merged cut extent', [[[3200, 3300, 'c0']], [[500, 600], [0, 1500], [0, 100]]], [[1700, 1800, 'c0']]), ('partial repair probe: merged cut extent', [[[2500, 4500, 'c0'], [4000, 6000, 'c1'], [900, 2900, 'c2'], [200, 2200, 'c3']], [[500, 600], [500, 1000]]], [[2000, 4000, 'c0'], [3500, 5500, 'c1'], [500, 2400, 'c2'], [200, 1700, 'c3']]), ('partial repair variant: merged cut extent', [[[4000, 4300, 'c0'], [3200, 3500, 'c1']], [[1000, 2500], [1500, 2500], [1500, 2000]]], [[2500, 2800, 'c0'], [1700, 2000, 'c1']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[3200, 3300, 'c0'], [1200, 2000, 'c1'], [0, 2000, 'c2'], [3200, 3300, 'c3']], [[1000, 1500]]], [[2700, 2800, 'c0'], [1000, 1500, 'c1'], [0, 1500, 'c2'], [2700, 2800, 'c3']]), ('normal control', [[[900, 1700, 'c0'], [2500, 3300, 'c1'], [1200, 2000, 'c2']], [[1000, 2500]]], [[900, 1000, 'c0'], [1000, 1800, 'c1']]), ('normal control', [[[0, 2000, 'c0'], [0, 300, 'c1']], []], [[0, 2000, 'c0'], [0, 300, 'c1']])], [('regression: merged cut extent', [[[600, 1400, 'c0'], [1200, 3200, 'c1']], [[0, 1500], [500, 1500], [1000, 1100]]], [[0, 1700, 'c1']]), ('regression variant: merged cut extent', [[[600, 700, 'c0'], [3200, 5200, 'c1']], [[500, 2000], [1000, 1500], [2000, 3000]]], [[700, 2700, 'c1']]), ('partial repair probe: merged cut extent', [[[1600, 1900, 'c0'], [2500, 3300, 'c1'], [1600, 1900, 'c2'], [4000, 6000, 'c3']], [[500, 2000], [0, 1000]]], [[500, 1300, 'c1'], [2000, 4000, 'c3']]), ('partial repair variant: merged cut extent', [[[4000, 4300, 'c0'], [3200, 3500, 'c1']], [[1000, 2500], [1500, 2500], [1500, 2000]]], [[2500, 2800, 'c0'], [1700, 2000, 'c1']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('normal control', [[[900, 1200, 'c0'], [2500, 3300, 'c1']], [[2000, 2500]]], [[900, 1200, 'c0'], [2000, 2800, 'c1']]), ('normal control', [[[2500, 2800, 'c0'], [600, 1400, 'c1']], []], [[2500, 2800, 'c0'], [600, 1400, 'c1']]), ('normal control', [[[0, 800, 'c0'], [200, 1000, 'c1'], [600, 1400, 'c2'], [1600, 3600, 'c3']], [[0, 100]]], [[0, 700, 'c0'], [100, 900, 'c1'], [500, 1300, 'c2'], [1500, 3500, 'c3']])], [('regression: merged cut extent', [[[600, 900, 'c0'], [600, 900, 'c1']], [[2000, 2500], [0, 1500], [500, 600]]], []), ('regression variant: merged cut extent', [[[200, 500, 'c0'], [2500, 2800, 'c1'], [600, 700, 'c2']], [[500, 2000], [1500, 1600]]], [[200, 500, 'c0'], [1000, 1300, 'c1']]), ('partial repair probe: merged cut extent', [[[1200, 2000, 'c0'], [4000, 4300, 'c1'], [200, 2200, 'c2'], [3200, 4000, 'c3']], [[1000, 2000], [0, 1500], [1500, 2500]]], [[1500, 1800, 'c1'], [700, 1500, 'c3']]), ('partial repair variant: merged cut extent', [[[1600, 3600, 'c0'], [2500, 4500, 'c1']], [[1000, 2000], [1500, 2000]]], [[1000, 2600, 'c0'], [1500, 3500, 'c1']]), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('normal control', [[[4000, 6000, 'c0'], [200, 1000, 'c1']], [[0, 500], [500, 600]]], [[3400, 5400, 'c0'], [0, 400, 'c1']]), ('normal control', [[[2500, 3300, 'c0']], []], [[2500, 3300, 'c0']]), ('normal control', [[[4000, 6000, 'c0'], [1600, 1700, 'c1']], [[500, 2000]]], [[2500, 4500, 'c0']])], [('regression: merged cut extent', [[[1600, 3600, 'c0'], [900, 2900, 'c1'], [4000, 6000, 'c2'], [900, 1200, 'c3']], [[1000, 1100], [500, 1500]]], [[600, 2600, 'c0'], [500, 1900, 'c1'], [3000, 5000, 'c2']]), ('regression variant: merged cut extent', [[[200, 2200, 'c0']], [[1000, 1100], [500, 2000]]], [[200, 700, 'c0']]), ('partial repair probe: merged cut extent', [[[2500, 3300, 'c0'], [200, 500, 'c1']], [[1500, 1600], [0, 1000], [1500, 3000]]], [[500, 800, 'c0']]), ('partial repair variant: merged cut extent', [[[1200, 1500, 'c0'], [3200, 4000, 'c1']], [[0, 1000], [0, 100]]], [[200, 500, 'c0'], [2200, 3000, 'c1']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[600, 2600, 'c0'], [200, 2200, 'c1'], [4000, 4300, 'c2']], []], [[600, 2600, 'c0'], [200, 2200, 'c1'], [4000, 4300, 'c2']]), ('normal control', [[[2500, 3300, 'c0'], [600, 1400, 'c1'], [1600, 3600, 'c2'], [600, 700, 'c3']], [[3000, 3500], [2000, 3000], [1000, 2000]]], [[600, 1000, 'c1'], [1000, 1100, 'c2'], [600, 700, 'c3']]), ('normal control', [[[900, 2900, 'c0'], [3200, 3500, 'c1'], [2500, 2800, 'c2']], [[1500, 3000], [3000, 4000]]], [[900, 1500, 'c0']])]]\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":"4469365a61eb45a305b1244550c58f265fd6171395b89db8be2438a4c3842983","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cues, cuts):\n    merged=[]\n    for a,b in sorted(cuts):\n        if merged and a<=merged[-1][1]:\n            merged[-1][1]=max(merged[-1][1],b)\n        else:\n            merged.append([a,b])\n    def mapt(t):\n        shift=0\n        for a,b in merged:\n            if t>=b:\n                shift+=b-a\n            elif t>a:\n                return a-shift\n        return t-shift\n    out=[]\n    for s,e,txt in cues:\n        ns,ne=mapt(s),mapt(e)\n        if ne>ns:\n            out.append([ns,ne,txt])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: merged cut extent', [[[3200, 5200, 'c0'], [1200, 1300, 'c1']], [[500, 2000], [2000, 2100], [1500, 1600]]], [[1600, 3600, 'c0']]), ('regression variant: merged cut extent', [[[0, 300, 'c0'], [0, 100, 'c1'], [4000, 6000, 'c2'], [4000, 4100, 'c3']], [[1000, 1100], [0, 1500], [3000, 3500]]], [[2000, 4000, 'c2'], [2000, 2100, 'c3']]), ('partial repair probe: merged cut extent', [[[2500, 4500, 'c0'], [4000, 6000, 'c1'], [900, 2900, 'c2'], [200, 2200, 'c3']], [[500, 600], [500, 1000]]], [[2000, 4000, 'c0'], [3500, 5500, 'c1'], [500, 2400, 'c2'], [200, 1700, 'c3']]), ('partial repair variant: merged cut extent', [[[900, 1000, 'c0'], [600, 2600, 'c1'], [4000, 4100, 'c2'], [900, 2900, 'c3']], [[1000, 1500], [2000, 2100], [2000, 2500]]], [[900, 1000, 'c0'], [600, 1600, 'c1'], [3000, 3100, 'c2'], [900, 1900, 'c3']]), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('normal control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[600, 2600, 'c0'], [2500, 3300, 'c1'], [0, 2000, 'c2']], [[1000, 1100]]], [[600, 2500, 'c0'], [2400, 3200, 'c1'], [0, 1900, 'c2']]), ('normal control', [[[0, 800, 'c0'], [4000, 4300, 'c1'], [0, 800, 'c2']], [[3000, 3100], [3000, 4500], [0, 1500]]], [])], [('regression: merged cut extent', [[[1600, 2400, 'c0'], [4000, 4300, 'c1'], [1200, 3200, 'c2'], [2500, 2800, 'c3']], [[1000, 1500], [500, 600], [0, 1000]]], [[100, 900, 'c0'], [2500, 2800, 'c1'], [0, 1700, 'c2'], [1000, 1300, 'c3']]), ('regression variant: merged cut extent', [[[3200, 3300, 'c0']], [[500, 600], [0, 1500], [0, 100]]], [[1700, 1800, 'c0']]), ('partial repair probe: merged cut extent', [[[2500, 4500, 'c0'], [4000, 6000, 'c1'], [900, 2900, 'c2'], [200, 2200, 'c3']], [[500, 600], [500, 1000]]], [[2000, 4000, 'c0'], [3500, 5500, 'c1'], [500, 2400, 'c2'], [200, 1700, 'c3']]), ('partial repair variant: merged cut extent', [[[4000, 4300, 'c0'], [3200, 3500, 'c1']], [[1000, 2500], [1500, 2500], [1500, 2000]]], [[2500, 2800, 'c0'], [1700, 2000, 'c1']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[3200, 3300, 'c0'], [1200, 2000, 'c1'], [0, 2000, 'c2'], [3200, 3300, 'c3']], [[1000, 1500]]], [[2700, 2800, 'c0'], [1000, 1500, 'c1'], [0, 1500, 'c2'], [2700, 2800, 'c3']]), ('normal control', [[[900, 1700, 'c0'], [2500, 3300, 'c1'], [1200, 2000, 'c2']], [[1000, 2500]]], [[900, 1000, 'c0'], [1000, 1800, 'c1']]), ('normal control', [[[0, 2000, 'c0'], [0, 300, 'c1']], []], [[0, 2000, 'c0'], [0, 300, 'c1']])], [('regression: merged cut extent', [[[600, 1400, 'c0'], [1200, 3200, 'c1']], [[0, 1500], [500, 1500], [1000, 1100]]], [[0, 1700, 'c1']]), ('regression variant: merged cut extent', [[[600, 700, 'c0'], [3200, 5200, 'c1']], [[500, 2000], [1000, 1500], [2000, 3000]]], [[700, 2700, 'c1']]), ('partial repair probe: merged cut extent', [[[1600, 1900, 'c0'], [2500, 3300, 'c1'], [1600, 1900, 'c2'], [4000, 6000, 'c3']], [[500, 2000], [0, 1000]]], [[500, 1300, 'c1'], [2000, 4000, 'c3']]), ('partial repair variant: merged cut extent', [[[4000, 4300, 'c0'], [3200, 3500, 'c1']], [[1000, 2500], [1500, 2500], [1500, 2000]]], [[2500, 2800, 'c0'], [1700, 2000, 'c1']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('normal control', [[[900, 1200, 'c0'], [2500, 3300, 'c1']], [[2000, 2500]]], [[900, 1200, 'c0'], [2000, 2800, 'c1']]), ('normal control', [[[2500, 2800, 'c0'], [600, 1400, 'c1']], []], [[2500, 2800, 'c0'], [600, 1400, 'c1']]), ('normal control', [[[0, 800, 'c0'], [200, 1000, 'c1'], [600, 1400, 'c2'], [1600, 3600, 'c3']], [[0, 100]]], [[0, 700, 'c0'], [100, 900, 'c1'], [500, 1300, 'c2'], [1500, 3500, 'c3']])], [('regression: merged cut extent', [[[600, 900, 'c0'], [600, 900, 'c1']], [[2000, 2500], [0, 1500], [500, 600]]], []), ('regression variant: merged cut extent', [[[200, 500, 'c0'], [2500, 2800, 'c1'], [600, 700, 'c2']], [[500, 2000], [1500, 1600]]], [[200, 500, 'c0'], [1000, 1300, 'c1']]), ('partial repair probe: merged cut extent', [[[1200, 2000, 'c0'], [4000, 4300, 'c1'], [200, 2200, 'c2'], [3200, 4000, 'c3']], [[1000, 2000], [0, 1500], [1500, 2500]]], [[1500, 1800, 'c1'], [700, 1500, 'c3']]), ('partial repair variant: merged cut extent', [[[1600, 3600, 'c0'], [2500, 4500, 'c1']], [[1000, 2000], [1500, 2000]]], [[1000, 2600, 'c0'], [1500, 3500, 'c1']]), ('boundary control', [[[1200, 1800, 'a']], [[1000, 1500]]], [[1000, 1300, 'a']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('normal control', [[[4000, 6000, 'c0'], [200, 1000, 'c1']], [[0, 500], [500, 600]]], [[3400, 5400, 'c0'], [0, 400, 'c1']]), ('normal control', [[[2500, 3300, 'c0']], []], [[2500, 3300, 'c0']]), ('normal control', [[[4000, 6000, 'c0'], [1600, 1700, 'c1']], [[500, 2000]]], [[2500, 4500, 'c0']])], [('regression: merged cut extent', [[[1600, 3600, 'c0'], [900, 2900, 'c1'], [4000, 6000, 'c2'], [900, 1200, 'c3']], [[1000, 1100], [500, 1500]]], [[600, 2600, 'c0'], [500, 1900, 'c1'], [3000, 5000, 'c2']]), ('regression variant: merged cut extent', [[[200, 2200, 'c0']], [[1000, 1100], [500, 2000]]], [[200, 700, 'c0']]), ('partial repair probe: merged cut extent', [[[2500, 3300, 'c0'], [200, 500, 'c1']], [[1500, 1600], [0, 1000], [1500, 3000]]], [[500, 800, 'c0']]), ('partial repair variant: merged cut extent', [[[1200, 1500, 'c0'], [3200, 4000, 'c1']], [[0, 1000], [0, 100]]], [[200, 500, 'c0'], [2200, 3000, 'c1']]), ('boundary control', [[[3000, 3500, 'a']], [[0, 500], [1000, 2000]]], [[1500, 2000, 'a']]), ('boundary control', [[[1100, 1400, 'a']], [[1000, 1500]]], []), ('normal control', [[[600, 2600, 'c0'], [200, 2200, 'c1'], [4000, 4300, 'c2']], []], [[600, 2600, 'c0'], [200, 2200, 'c1'], [4000, 4300, 'c2']]), ('normal control', [[[2500, 3300, 'c0'], [600, 1400, 'c1'], [1600, 3600, 'c2'], [600, 700, 'c3']], [[3000, 3500], [2000, 3000], [1000, 2000]]], [[600, 1000, 'c1'], [1000, 1100, 'c2'], [600, 700, 'c3']]), ('normal control', [[[900, 2900, 'c0'], [3200, 3500, 'c1'], [2500, 2800, 'c2']], [[1500, 3000], [3000, 4000]]], [[900, 1500, 'c0']])]]\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-cut-list-conform-merged-cut-extent","generated_at":"2026-09-29T14:49:34.127393+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 larger of the two ends when merging.","root_cause":"Merging overwrites the end with the later cut end even when it is smaller.","sha256":"a0b215f4617ec2099cc8a2066aa214c2291ba22f33edfd4c73e9b5584c427141","title":"Subtitle conform to an edit cut list: merged cut extent · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.943,"exit_code":1,"observations":[{"actual":[[1500,3500,"c0"]],"check":"regression: merged cut extent","expected":[[1600,3600,"c0"]],"passed":false},{"actual":[[1900,3900,"c2"],[1900,2000,"c3"]],"check":"regression variant: merged cut extent","expected":[[2000,4000,"c2"],[2000,2100,"c3"]],"passed":false},{"actual":[[1900,3900,"c0"],[3400,5400,"c1"],[500,2300,"c2"],[200,1600,"c3"]],"check":"partial repair probe: merged cut extent","expected":[[2000,4000,"c0"],[3500,5500,"c1"],[500,2400,"c2"],[200,1700,"c3"]],"passed":false},{"actual":[[900,1000,"c0"],[600,1500,"c1"],[2900,3000,"c2"],[900,1800,"c3"]],"check":"partial repair variant: merged cut extent","expected":[[900,1000,"c0"],[600,1600,"c1"],[3000,3100,"c2"],[900,1900,"c3"]],"passed":false},{"actual":[[1000,1300,"a"]],"check":"boundary control","expected":[[1000,1300,"a"]],"passed":true},{"actual":[[1500,2000,"a"]],"check":"boundary control","expected":[[1500,2000,"a"]],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true},{"actual":[[600,2500,"c0"],[2400,3200,"c1"],[0,1900,"c2"]],"check":"normal control","expected":[[600,2500,"c0"],[2400,3200,"c1"],[0,1900,"c2"]],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: merged cut extent\", \"actual\": [[1500, 3500, \"c0\"]], \"expected\": [[1600, 3600, \"c0\"]], \"passed\": false}, {\"check\": \"regression variant: merged cut extent\", \"actual\": [[1900, 3900, \"c2\"], [1900, 2000, \"c3\"]], \"expected\": [[2000, 4000, \"c2\"], [2000, 2100, \"c3\"]], \"passed\": false}, {\"check\": \"partial repair probe: merged cut extent\", \"actual\": [[1900, 3900, \"c0\"], [3400, 5400, \"c1\"], [500, 2300, \"c2\"], [200, 1600, \"c3\"]], \"expected\": [[2000, 4000, \"c0\"], [3500, 5500, \"c1\"], [500, 2400, \"c2\"], [200, 1700, \"c3\"]], \"passed\": false}, {\"check\": \"partial repair variant: merged cut extent\", \"actual\": [[900, 1000, \"c0\"], [600, 1500, \"c1\"], [2900, 3000, \"c2\"], [900, 1800, \"c3\"]], \"expected\": [[900, 1000, \"c0\"], [600, 1600, \"c1\"], [3000, 3100, \"c2\"], [900, 1900, \"c3\"]], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [[1000, 1300, \"a\"]], \"expected\": [[1000, 1300, \"a\"]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[1500, 2000, \"a\"]], \"expected\": [[1500, 2000, \"a\"]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[600, 2500, \"c0\"], [2400, 3200, \"c1\"], [0, 1900, \"c2\"]], \"expected\": [[600, 2500, \"c0\"], [2400, 3200, \"c1\"], [0, 1900, \"c2\"]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.932,"exit_code":1,"observations":[{"actual":[[2000,4000,"c0"]],"check":"regression: merged cut extent","expected":[[1600,3600,"c0"]],"passed":false},{"actual":[[2400,4400,"c2"],[2400,2500,"c3"]],"check":"regression variant: merged cut extent","expected":[[2000,4000,"c2"],[2000,2100,"c3"]],"passed":false},{"actual":[[2000,4000,"c0"],[3500,5500,"c1"],[500,2400,"c2"],[200,1700,"c3"]],"check":"partial repair probe: merged cut extent","expected":[[2000,4000,"c0"],[3500,5500,"c1"],[500,2400,"c2"],[200,1700,"c3"]],"passed":true},{"actual":[[900,1000,"c0"],[600,1600,"c1"],[3000,3100,"c2"],[900,1900,"c3"]],"check":"partial repair variant: merged cut extent","expected":[[900,1000,"c0"],[600,1600,"c1"],[3000,3100,"c2"],[900,1900,"c3"]],"passed":true},{"actual":[[1000,1300,"a"]],"check":"boundary control","expected":[[1000,1300,"a"]],"passed":true},{"actual":[[1500,2000,"a"]],"check":"boundary control","expected":[[1500,2000,"a"]],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true},{"actual":[[600,2500,"c0"],[2400,3200,"c1"],[0,1900,"c2"]],"check":"normal control","expected":[[600,2500,"c0"],[2400,3200,"c1"],[0,1900,"c2"]],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: merged cut extent\", \"actual\": [[2000, 4000, \"c0\"]], \"expected\": [[1600, 3600, \"c0\"]], \"passed\": false}, {\"check\": \"regression variant: merged cut extent\", \"actual\": [[2400, 4400, \"c2\"], [2400, 2500, \"c3\"]], \"expected\": [[2000, 4000, \"c2\"], [2000, 2100, \"c3\"]], \"passed\": false}, {\"check\": \"partial repair probe: merged cut extent\", \"actual\": [[2000, 4000, \"c0\"], [3500, 5500, \"c1\"], [500, 2400, \"c2\"], [200, 1700, \"c3\"]], \"expected\": [[2000, 4000, \"c0\"], [3500, 5500, \"c1\"], [500, 2400, \"c2\"], [200, 1700, \"c3\"]], \"passed\": true}, {\"check\": \"partial repair variant: merged cut extent\", \"actual\": [[900, 1000, \"c0\"], [600, 1600, \"c1\"], [3000, 3100, \"c2\"], [900, 1900, \"c3\"]], \"expected\": [[900, 1000, \"c0\"], [600, 1600, \"c1\"], [3000, 3100, \"c2\"], [900, 1900, \"c3\"]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[1000, 1300, \"a\"]], \"expected\": [[1000, 1300, \"a\"]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[1500, 2000, \"a\"]], \"expected\": [[1500, 2000, \"a\"]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[600, 2500, \"c0\"], [2400, 3200, \"c1\"], [0, 1900, \"c2\"]], \"expected\": [[600, 2500, \"c0\"], [2400, 3200, \"c1\"], [0, 1900, \"c2\"]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.694,"exit_code":0,"observations":[{"actual":[[1600,3600,"c0"]],"check":"regression: merged cut extent","expected":[[1600,3600,"c0"]],"passed":true},{"actual":[[2000,4000,"c2"],[2000,2100,"c3"]],"check":"regression variant: merged cut extent","expected":[[2000,4000,"c2"],[2000,2100,"c3"]],"passed":true},{"actual":[[2000,4000,"c0"],[3500,5500,"c1"],[500,2400,"c2"],[200,1700,"c3"]],"check":"partial repair probe: merged cut extent","expected":[[2000,4000,"c0"],[3500,5500,"c1"],[500,2400,"c2"],[200,1700,"c3"]],"passed":true},{"actual":[[900,1000,"c0"],[600,1600,"c1"],[3000,3100,"c2"],[900,1900,"c3"]],"check":"partial repair variant: merged cut extent","expected":[[900,1000,"c0"],[600,1600,"c1"],[3000,3100,"c2"],[900,1900,"c3"]],"passed":true},{"actual":[[1000,1300,"a"]],"check":"boundary control","expected":[[1000,1300,"a"]],"passed":true},{"actual":[[1500,2000,"a"]],"check":"boundary control","expected":[[1500,2000,"a"]],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true},{"actual":[[600,2500,"c0"],[2400,3200,"c1"],[0,1900,"c2"]],"check":"normal control","expected":[[600,2500,"c0"],[2400,3200,"c1"],[0,1900,"c2"]],"passed":true},{"actual":[],"check":"normal control","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: merged cut extent\", \"actual\": [[1600, 3600, \"c0\"]], \"expected\": [[1600, 3600, \"c0\"]], \"passed\": true}, {\"check\": \"regression variant: merged cut extent\", \"actual\": [[2000, 4000, \"c2\"], [2000, 2100, \"c3\"]], \"expected\": [[2000, 4000, \"c2\"], [2000, 2100, \"c3\"]], \"passed\": true}, {\"check\": \"partial repair probe: merged cut extent\", \"actual\": [[2000, 4000, \"c0\"], [3500, 5500, \"c1\"], [500, 2400, \"c2\"], [200, 1700, \"c3\"]], \"expected\": [[2000, 4000, \"c0\"], [3500, 5500, \"c1\"], [500, 2400, \"c2\"], [200, 1700, \"c3\"]], \"passed\": true}, {\"check\": \"partial repair variant: merged cut extent\", \"actual\": [[900, 1000, \"c0\"], [600, 1600, \"c1\"], [3000, 3100, \"c2\"], [900, 1900, \"c3\"]], \"expected\": [[900, 1000, \"c0\"], [600, 1600, \"c1\"], [3000, 3100, \"c2\"], [900, 1900, \"c3\"]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[1000, 1300, \"a\"]], \"expected\": [[1000, 1300, \"a\"]], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [[1500, 2000, \"a\"]], \"expected\": [[1500, 2000, \"a\"]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [[600, 2500, \"c0\"], [2400, 3200, \"c1\"], [0, 1900, \"c2\"]], \"expected\": [[600, 2500, \"c0\"], [2400, 3200, \"c1\"], [0, 1900, \"c2\"]], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}