FA-78156 / Subtitle cue timing / Open access
Shot-change snapping of cue boundaries: end placement · case 01
Snapped cues remain on screen across the shot change.
ROOT CAUSE
The end is snapped onto the cut itself, ignoring the required gap.
VERIFIED REPAIR
Place the end gap ms before the cut.
Unsuccessful approach: Adding the gap puts the end after the cut.
Case contract
For each cue, the start snaps to the nearest shot change within window ms (|shot - start| <= window; ties go to the earlier shot). The end snaps so that it sits gap ms before the nearest shot change within window of end+gap. If snapping leaves end <= start, the original cue is kept unchanged.
Why this case matters
Subtitle timing defects shift, hide or overlap captions that viewers depend on for comprehension and accessibility.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(cues, shots, window, gap):
def near(t):
best=None
for sc in shots:
d=abs(sc-t)
if d<=window and (best is None or d<abs(best-t)):
best=sc
return best
out=[]
for s0,e0 in cues:
s,e=s0,e0
a=near(s)
if a is not None:
s=a
b=near(e+gap)
if b is not None:
e=b
if e<=s:
s,e=s0,e0
out.append([s,e])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: end placement', [[[1251, 1261], [0, 851]], [0, 1000, 3040], 250, 80], [[1251, 1261], [0, 920]]), ('regression variant: end placement', [[[50, 950]], [0, 1200], 250, 42], [[0, 1158]]), ('partial repair probe: end placement', [[[50, 1150]], [0, 1200, 2000, 2150], 250, 80], [[0, 1120]]), ('partial repair variant: end placement', [[[2990, 3020], [3040, 4140], [3040, 4040]], [0, 2000, 3040], 100, 42], [[2990, 3020], [3040, 4140], [3040, 4040]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('normal control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[50, 80], [4050, 5050]], [0, 1100, 2150, 3000, 4000], 250, 0], [[50, 80], [4000, 5050]]), ('normal control', [[[2200, 2700]], [2150], 200, 80], [[2150, 2700]])], [('regression: end placement', [[[50, 1150]], [0, 1200, 2000, 2150], 250, 80], [[0, 1120]]), ('regression variant: end placement', [[[1301, 1331], [50, 1050]], [0, 1100], 200, 42], [[1301, 1331], [0, 1058]]), ('partial repair probe: end placement', [[[1801, 2841], [1000, 1010]], [1000, 1200, 2000, 2150], 200, 42], [[2000, 2841], [1000, 1010]]), ('partial repair variant: end placement', [[[1150, 2050], [849, 859], [1350, 2390]], [1100, 3000], 250, 80], [[1100, 2050], [849, 1020], [1100, 2390]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[750, 1650]], [1000, 1200, 2150, 3000], 250, 0], [[1000, 1650]]), ('normal control', [[[1100, 2100], [2990, 3000], [900, 1800]], [1100, 3040], 200, 0], [[1100, 2100], [2990, 3000], [1100, 1800]]), ('normal control', [[[1050, 2150]], [1000, 4000], 200, 80], [[1000, 2150]])], [('regression: end placement', [[[1751, 2651], [851, 1851]], [1100, 2000, 2150, 3040], 250, 80], [[2000, 2651], [1100, 1920]]), ('regression variant: end placement', [[[1150, 2050], [849, 859], [1350, 2390]], [1100, 3000], 250, 80], [[1100, 2050], [849, 1020], [1100, 2390]]), ('partial repair probe: end placement', [[[1000, 2000], [3901, 4401]], [1100, 2000, 2150, 4000], 100, 42], [[1100, 1958], [4000, 4401]]), ('partial repair variant: end placement', [[[3000, 3010], [2800, 3700], [2799, 3799]], [1200, 3000], 200, 42], [[3000, 3010], [3000, 3700], [2799, 3799]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('normal control', [[[2950, 2980]], [1200, 2150, 3000], 250, 0], [[2950, 2980]]), ('normal control', [[[1401, 2401]], [1000, 1200], 200, 42], [[1401, 2401]]), ('normal control', [[[1101, 1111], [950, 960], [950, 1850]], [1000, 4000], 100, 0], [[1101, 1111], [950, 960], [1000, 1850]])], [('regression: end placement', [[[1000, 2000], [3901, 4401]], [1100, 2000, 2150, 4000], 100, 42], [[1100, 1958], [4000, 4401]]), ('regression variant: end placement', [[[3141, 4041], [1200, 1230], [1900, 3000]], [1100, 2000, 3040, 4000], 100, 42], [[3141, 3958], [1100, 1230], [2000, 2998]]), ('partial repair probe: end placement', [[[3040, 3070], [2790, 3890], [849, 859]], [1100, 3040], 250, 80], [[3040, 3070], [3040, 3890], [849, 1020]]), ('partial repair variant: end placement', [[[3000, 3010], [2800, 3700], [2799, 3799]], [1200, 3000], 200, 42], [[3000, 3010], [3000, 3700], [2799, 3799]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('normal control', [[[101, 131], [1950, 2450], [2101, 3201]], [0, 2000, 4000], 100, 0], [[101, 131], [2000, 2450], [2101, 3201]]), ('normal control', [[[4201, 5101], [1150, 1650], [2200, 3240]], [1100, 2000, 4000], 200, 0], [[4201, 5101], [1100, 1650], [2000, 3240]]), ('normal control', [[[1950, 2990]], [2000], 250, 80], [[2000, 2990]])], [('regression: end placement', [[[3040, 3070], [2790, 3890], [849, 859]], [1100, 3040], 250, 80], [[3040, 3070], [3040, 3890], [849, 1020]]), ('regression variant: end placement', [[[1351, 2451], [1000, 1030], [1050, 1550]], [0, 1000, 1100], 250, 80], [[1351, 2451], [1000, 1020], [1000, 1550]]), ('partial repair probe: end placement', [[[3000, 3900], [900, 930], [3000, 3030]], [0, 1100, 1200, 3000], 200, 80], [[3000, 3900], [900, 930], [3000, 3030]]), ('partial repair variant: end placement', [[[3141, 4041], [1200, 1230], [1900, 3000]], [1100, 2000, 3040, 4000], 100, 42], [[3141, 3958], [1100, 1230], [2000, 2998]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[2050, 3050]], [0, 2000, 2150], 100, 42], [[2000, 3050]]), ('normal control', [[[2790, 3830], [2990, 3990], [2251, 2281]], [2000, 3040], 250, 42], [[3040, 3830], [3040, 3990], [2251, 2281]]), ('normal control', [[[1150, 2250], [1200, 1230], [3900, 5000]], [0, 1100, 4000], 100, 42], [[1100, 2250], [1100, 1230], [4000, 5000]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: end placement | [[1251, 1261], [0, 1000]] | [[1251, 1261], [0, 920]] | Failed |
| regression variant: end placement | [[0, 1200]] | [[0, 1158]] | Failed |
| partial repair probe: end placement | [[0, 1200]] | [[0, 1120]] | Failed |
| partial repair variant: end placement | [[2990, 3020], [3040, 4140], [3040, 4040]] | [[2990, 3020], [3040, 4140], [3040, 4040]] | Passed |
| boundary control | [[1000, 1500]] | [[1000, 1500]] | Passed |
| boundary control | [[1200, 1800]] | [[1200, 1800]] | Passed |
| normal control | [[1000, 1010]] | [[1000, 1010]] | Passed |
| normal control | [[50, 80], [4000, 5050]] | [[50, 80], [4000, 5050]] | Passed |
| normal control | [[2150, 2700]] | [[2150, 2700]] | Passed |
SHA-256 / d63189e89e23e5245a0afbe6cb91a7d7198cfecf694f6945adbfd40bdaf61997
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(cues, shots, window, gap):
def near(t):
best=None
for sc in shots:
d=abs(sc-t)
if d<=window and (best is None or d<abs(best-t)):
best=sc
return best
out=[]
for s0,e0 in cues:
s,e=s0,e0
a=near(s)
if a is not None:
s=a
b=near(e+gap)
if b is not None:
e=b+gap
if e<=s:
s,e=s0,e0
out.append([s,e])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: end placement', [[[1251, 1261], [0, 851]], [0, 1000, 3040], 250, 80], [[1251, 1261], [0, 920]]), ('regression variant: end placement', [[[50, 950]], [0, 1200], 250, 42], [[0, 1158]]), ('partial repair probe: end placement', [[[50, 1150]], [0, 1200, 2000, 2150], 250, 80], [[0, 1120]]), ('partial repair variant: end placement', [[[2990, 3020], [3040, 4140], [3040, 4040]], [0, 2000, 3040], 100, 42], [[2990, 3020], [3040, 4140], [3040, 4040]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('normal control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[50, 80], [4050, 5050]], [0, 1100, 2150, 3000, 4000], 250, 0], [[50, 80], [4000, 5050]]), ('normal control', [[[2200, 2700]], [2150], 200, 80], [[2150, 2700]])], [('regression: end placement', [[[50, 1150]], [0, 1200, 2000, 2150], 250, 80], [[0, 1120]]), ('regression variant: end placement', [[[1301, 1331], [50, 1050]], [0, 1100], 200, 42], [[1301, 1331], [0, 1058]]), ('partial repair probe: end placement', [[[1801, 2841], [1000, 1010]], [1000, 1200, 2000, 2150], 200, 42], [[2000, 2841], [1000, 1010]]), ('partial repair variant: end placement', [[[1150, 2050], [849, 859], [1350, 2390]], [1100, 3000], 250, 80], [[1100, 2050], [849, 1020], [1100, 2390]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[750, 1650]], [1000, 1200, 2150, 3000], 250, 0], [[1000, 1650]]), ('normal control', [[[1100, 2100], [2990, 3000], [900, 1800]], [1100, 3040], 200, 0], [[1100, 2100], [2990, 3000], [1100, 1800]]), ('normal control', [[[1050, 2150]], [1000, 4000], 200, 80], [[1000, 2150]])], [('regression: end placement', [[[1751, 2651], [851, 1851]], [1100, 2000, 2150, 3040], 250, 80], [[2000, 2651], [1100, 1920]]), ('regression variant: end placement', [[[1150, 2050], [849, 859], [1350, 2390]], [1100, 3000], 250, 80], [[1100, 2050], [849, 1020], [1100, 2390]]), ('partial repair probe: end placement', [[[1000, 2000], [3901, 4401]], [1100, 2000, 2150, 4000], 100, 42], [[1100, 1958], [4000, 4401]]), ('partial repair variant: end placement', [[[3000, 3010], [2800, 3700], [2799, 3799]], [1200, 3000], 200, 42], [[3000, 3010], [3000, 3700], [2799, 3799]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('normal control', [[[2950, 2980]], [1200, 2150, 3000], 250, 0], [[2950, 2980]]), ('normal control', [[[1401, 2401]], [1000, 1200], 200, 42], [[1401, 2401]]), ('normal control', [[[1101, 1111], [950, 960], [950, 1850]], [1000, 4000], 100, 0], [[1101, 1111], [950, 960], [1000, 1850]])], [('regression: end placement', [[[1000, 2000], [3901, 4401]], [1100, 2000, 2150, 4000], 100, 42], [[1100, 1958], [4000, 4401]]), ('regression variant: end placement', [[[3141, 4041], [1200, 1230], [1900, 3000]], [1100, 2000, 3040, 4000], 100, 42], [[3141, 3958], [1100, 1230], [2000, 2998]]), ('partial repair probe: end placement', [[[3040, 3070], [2790, 3890], [849, 859]], [1100, 3040], 250, 80], [[3040, 3070], [3040, 3890], [849, 1020]]), ('partial repair variant: end placement', [[[3000, 3010], [2800, 3700], [2799, 3799]], [1200, 3000], 200, 42], [[3000, 3010], [3000, 3700], [2799, 3799]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('normal control', [[[101, 131], [1950, 2450], [2101, 3201]], [0, 2000, 4000], 100, 0], [[101, 131], [2000, 2450], [2101, 3201]]), ('normal control', [[[4201, 5101], [1150, 1650], [2200, 3240]], [1100, 2000, 4000], 200, 0], [[4201, 5101], [1100, 1650], [2000, 3240]]), ('normal control', [[[1950, 2990]], [2000], 250, 80], [[2000, 2990]])], [('regression: end placement', [[[3040, 3070], [2790, 3890], [849, 859]], [1100, 3040], 250, 80], [[3040, 3070], [3040, 3890], [849, 1020]]), ('regression variant: end placement', [[[1351, 2451], [1000, 1030], [1050, 1550]], [0, 1000, 1100], 250, 80], [[1351, 2451], [1000, 1020], [1000, 1550]]), ('partial repair probe: end placement', [[[3000, 3900], [900, 930], [3000, 3030]], [0, 1100, 1200, 3000], 200, 80], [[3000, 3900], [900, 930], [3000, 3030]]), ('partial repair variant: end placement', [[[3141, 4041], [1200, 1230], [1900, 3000]], [1100, 2000, 3040, 4000], 100, 42], [[3141, 3958], [1100, 1230], [2000, 2998]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[2050, 3050]], [0, 2000, 2150], 100, 42], [[2000, 3050]]), ('normal control', [[[2790, 3830], [2990, 3990], [2251, 2281]], [2000, 3040], 250, 42], [[3040, 3830], [3040, 3990], [2251, 2281]]), ('normal control', [[[1150, 2250], [1200, 1230], [3900, 5000]], [0, 1100, 4000], 100, 42], [[1100, 2250], [1100, 1230], [4000, 5000]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: end placement | [[1251, 1261], [0, 1080]] | [[1251, 1261], [0, 920]] | Failed |
| regression variant: end placement | [[0, 1242]] | [[0, 1158]] | Failed |
| partial repair probe: end placement | [[0, 1280]] | [[0, 1120]] | Failed |
| partial repair variant: end placement | [[3040, 3082], [3040, 4140], [3040, 4040]] | [[2990, 3020], [3040, 4140], [3040, 4040]] | Failed |
| boundary control | [[1000, 1500]] | [[1000, 1500]] | Passed |
| boundary control | [[1200, 1800]] | [[1200, 1800]] | Passed |
| normal control | [[1000, 1010]] | [[1000, 1010]] | Passed |
| normal control | [[50, 80], [4000, 5050]] | [[50, 80], [4000, 5050]] | Passed |
| normal control | [[2150, 2700]] | [[2150, 2700]] | Passed |
SHA-256 / eae198e95cac6cb2e5947617822e14fb95785195fb6d9b31ab21773c2a1e1aaa
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(cues, shots, window, gap):
def near(t):
best=None
for sc in shots:
d=abs(sc-t)
if d<=window and (best is None or d<abs(best-t)):
best=sc
return best
out=[]
for s0,e0 in cues:
s,e=s0,e0
a=near(s)
if a is not None:
s=a
b=near(e+gap)
if b is not None:
e=b-gap
if e<=s:
s,e=s0,e0
out.append([s,e])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: end placement', [[[1251, 1261], [0, 851]], [0, 1000, 3040], 250, 80], [[1251, 1261], [0, 920]]), ('regression variant: end placement', [[[50, 950]], [0, 1200], 250, 42], [[0, 1158]]), ('partial repair probe: end placement', [[[50, 1150]], [0, 1200, 2000, 2150], 250, 80], [[0, 1120]]), ('partial repair variant: end placement', [[[2990, 3020], [3040, 4140], [3040, 4040]], [0, 2000, 3040], 100, 42], [[2990, 3020], [3040, 4140], [3040, 4040]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('normal control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[50, 80], [4050, 5050]], [0, 1100, 2150, 3000, 4000], 250, 0], [[50, 80], [4000, 5050]]), ('normal control', [[[2200, 2700]], [2150], 200, 80], [[2150, 2700]])], [('regression: end placement', [[[50, 1150]], [0, 1200, 2000, 2150], 250, 80], [[0, 1120]]), ('regression variant: end placement', [[[1301, 1331], [50, 1050]], [0, 1100], 200, 42], [[1301, 1331], [0, 1058]]), ('partial repair probe: end placement', [[[1801, 2841], [1000, 1010]], [1000, 1200, 2000, 2150], 200, 42], [[2000, 2841], [1000, 1010]]), ('partial repair variant: end placement', [[[1150, 2050], [849, 859], [1350, 2390]], [1100, 3000], 250, 80], [[1100, 2050], [849, 1020], [1100, 2390]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[750, 1650]], [1000, 1200, 2150, 3000], 250, 0], [[1000, 1650]]), ('normal control', [[[1100, 2100], [2990, 3000], [900, 1800]], [1100, 3040], 200, 0], [[1100, 2100], [2990, 3000], [1100, 1800]]), ('normal control', [[[1050, 2150]], [1000, 4000], 200, 80], [[1000, 2150]])], [('regression: end placement', [[[1751, 2651], [851, 1851]], [1100, 2000, 2150, 3040], 250, 80], [[2000, 2651], [1100, 1920]]), ('regression variant: end placement', [[[1150, 2050], [849, 859], [1350, 2390]], [1100, 3000], 250, 80], [[1100, 2050], [849, 1020], [1100, 2390]]), ('partial repair probe: end placement', [[[1000, 2000], [3901, 4401]], [1100, 2000, 2150, 4000], 100, 42], [[1100, 1958], [4000, 4401]]), ('partial repair variant: end placement', [[[3000, 3010], [2800, 3700], [2799, 3799]], [1200, 3000], 200, 42], [[3000, 3010], [3000, 3700], [2799, 3799]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('normal control', [[[2950, 2980]], [1200, 2150, 3000], 250, 0], [[2950, 2980]]), ('normal control', [[[1401, 2401]], [1000, 1200], 200, 42], [[1401, 2401]]), ('normal control', [[[1101, 1111], [950, 960], [950, 1850]], [1000, 4000], 100, 0], [[1101, 1111], [950, 960], [1000, 1850]])], [('regression: end placement', [[[1000, 2000], [3901, 4401]], [1100, 2000, 2150, 4000], 100, 42], [[1100, 1958], [4000, 4401]]), ('regression variant: end placement', [[[3141, 4041], [1200, 1230], [1900, 3000]], [1100, 2000, 3040, 4000], 100, 42], [[3141, 3958], [1100, 1230], [2000, 2998]]), ('partial repair probe: end placement', [[[3040, 3070], [2790, 3890], [849, 859]], [1100, 3040], 250, 80], [[3040, 3070], [3040, 3890], [849, 1020]]), ('partial repair variant: end placement', [[[3000, 3010], [2800, 3700], [2799, 3799]], [1200, 3000], 200, 42], [[3000, 3010], [3000, 3700], [2799, 3799]]), ('boundary control', [[[900, 1500]], [1000], 100, 0], [[1000, 1500]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('normal control', [[[101, 131], [1950, 2450], [2101, 3201]], [0, 2000, 4000], 100, 0], [[101, 131], [2000, 2450], [2101, 3201]]), ('normal control', [[[4201, 5101], [1150, 1650], [2200, 3240]], [1100, 2000, 4000], 200, 0], [[4201, 5101], [1100, 1650], [2000, 3240]]), ('normal control', [[[1950, 2990]], [2000], 250, 80], [[2000, 2990]])], [('regression: end placement', [[[3040, 3070], [2790, 3890], [849, 859]], [1100, 3040], 250, 80], [[3040, 3070], [3040, 3890], [849, 1020]]), ('regression variant: end placement', [[[1351, 2451], [1000, 1030], [1050, 1550]], [0, 1000, 1100], 250, 80], [[1351, 2451], [1000, 1020], [1000, 1550]]), ('partial repair probe: end placement', [[[3000, 3900], [900, 930], [3000, 3030]], [0, 1100, 1200, 3000], 200, 80], [[3000, 3900], [900, 930], [3000, 3030]]), ('partial repair variant: end placement', [[[3141, 4041], [1200, 1230], [1900, 3000]], [1100, 2000, 3040, 4000], 100, 42], [[3141, 3958], [1100, 1230], [2000, 2998]]), ('boundary control', [[[1150, 1800]], [1000, 1200, 2000], 100, 80], [[1200, 1800]]), ('boundary control', [[[1000, 1010]], [1000, 1100], 100, 0], [[1000, 1010]]), ('normal control', [[[2050, 3050]], [0, 2000, 2150], 100, 42], [[2000, 3050]]), ('normal control', [[[2790, 3830], [2990, 3990], [2251, 2281]], [2000, 3040], 250, 42], [[3040, 3830], [3040, 3990], [2251, 2281]]), ('normal control', [[[1150, 2250], [1200, 1230], [3900, 5000]], [0, 1100, 4000], 100, 42], [[1100, 2250], [1100, 1230], [4000, 5000]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: end placement | [[1251, 1261], [0, 920]] | [[1251, 1261], [0, 920]] | Passed |
| regression variant: end placement | [[0, 1158]] | [[0, 1158]] | Passed |
| partial repair probe: end placement | [[0, 1120]] | [[0, 1120]] | Passed |
| partial repair variant: end placement | [[2990, 3020], [3040, 4140], [3040, 4040]] | [[2990, 3020], [3040, 4140], [3040, 4040]] | Passed |
| boundary control | [[1000, 1500]] | [[1000, 1500]] | Passed |
| boundary control | [[1200, 1800]] | [[1200, 1800]] | Passed |
| normal control | [[1000, 1010]] | [[1000, 1010]] | Passed |
| normal control | [[50, 80], [4000, 5050]] | [[50, 80], [4000, 5050]] | Passed |
| normal control | [[2150, 2700]] | [[2150, 2700]] | Passed |
SHA-256 / 0331960ae85ca2a4abe2b3825502fc39644f499f486fb250e6b0eda0a575cabc
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:49:32.701824+00:00.
Case digest / d85dc7ebb02498e8052f66303ec2fb9bbb33c6f8e351cfed9930841ea53a13e0