FAILURE MAP
← Case archive

FA-78491 / Broadcast timecode arithmetic / Open access

EDL speed-change record out: reverse speed magnitude · case 01

Reverse motion effects get negative record durations.

Verified by executionVariant 1 · 9 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The signed speed is used as the divisor.

VERIFIED REPAIR

Use the magnitude of the speed for the duration.

Unsuccessful approach: Treating reverse events as normal speed ignores the reverse effect rate.

Case contract

event [src_in, src_out, rec_in, speed_percent] with non-drop labels at fps; src_out is exclusive and may cross midnight. Record duration = source frames * 100 / |speed| rounded half up (reverse speeds use the magnitude; speed 0 returns None). Return [record_out label (exclusive, wrapped at 24 h), record duration].

Why this case matters

Timecode arithmetic errors misplace edits, commercial breaks and captions against the broadcast clock.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(event, fps):
    def fr(t):
        h,m,s,f=map(int,t.split(':'))
        return ((h*60+m)*60+s)*fps+f
    def tc(n):
        n%=86400*fps
        return '%02d:%02d:%02d:%02d'%(n//(3600*fps),n//(60*fps)%60,n//fps%60,n%fps)
    src_in,src_out,rec_in,speed=event
    if speed==0:
        return None
    sp=speed
    dur=(fr(src_out)-fr(src_in))%(86400*fps)
    rec=(dur*200+sp)//(2*sp)
    return [tc(fr(rec_in)+rec),rec]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: reverse speed magnitude', [['00:29:01:12', '10:00:59:01', '23:00:59:01', -100], 24], ['08:32:56:14', 823621]), ('regression variant: reverse speed magnitude', [['01:00:59:24', '00:00:01:00', '00:59:59:01', -50], 25], ['22:58:01:03', 4137052]), ('partial repair probe: reverse speed magnitude', [['10:59:30:12', '00:01:01:00', '23:00:30:01', -200], 24], ['05:31:15:07', 562686]), ('partial repair variant: reverse speed magnitude', [['23:29:01:23', '00:01:59:23', '00:29:30:23', -50], 24], ['01:35:26:23', 94944]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('normal control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['00:01:59:01', '23:00:00:00', '23:00:01:12', 33], 25], ['20:35:49:21', 6263709]), ('normal control', [['23:01:00:00', '01:01:00:23', '01:00:30:12', 75], 24], ['03:40:31:19', 230431])], [('regression: reverse speed magnitude', [['00:00:01:12', '23:00:30:01', '00:01:59:00', -100], 25], ['23:02:27:14', 2070714]), ('regression variant: reverse speed magnitude', [['10:59:30:12', '00:01:01:00', '23:00:30:01', -200], 24], ['05:31:15:07', 562686]), ('partial repair probe: reverse speed magnitude', [['00:01:59:23', '00:01:30:23', '23:59:00:12', -50], 24], ['23:58:02:12', 4145808]), ('partial repair variant: reverse speed magnitude', [['00:29:59:24', '01:00:59:01', '00:00:00:01', -50], 25], ['01:01:58:05', 92954]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['01:00:59:00', '00:01:30:01', '23:29:01:12', 250], 24], ['08:41:13:22', 795178]), ('normal control', [['23:01:01:01', '01:59:01:29', '23:59:01:01', 250], 30], ['01:10:13:12', 128171]), ('normal control', [['23:01:01:00', '00:00:30:23', '01:01:30:01', 100], 24], ['02:01:00:00', 85679])], [('regression: reverse speed magnitude', [['10:59:00:23', '00:00:30:00', '23:00:30:00', -50], 24], ['01:03:28:02', 2250674]), ('regression variant: reverse speed magnitude', [['00:01:59:23', '00:01:30:23', '23:59:00:12', -50], 24], ['23:58:02:12', 4145808]), ('partial repair probe: reverse speed magnitude', [['23:29:59:15', '10:00:01:29', '23:29:00:00', -50], 30], ['20:29:04:28', 2268148]), ('partial repair variant: reverse speed magnitude', [['01:00:00:00', '23:00:00:23', '23:01:59:23', -50], 24], ['19:02:01:21', 3801646]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('normal control', [['23:29:00:00', '23:59:00:23', '00:59:00:01', 0], 24], None), ('normal control', [['23:59:30:01', '00:00:01:01', '00:59:01:00', 75], 24], ['00:59:42:08', 992]), ('normal control', [['10:00:30:01', '23:00:00:01', '23:29:01:01', 100], 30], ['12:28:31:01', 1403100])], [('regression: reverse speed magnitude', [['00:01:00:00', '10:29:00:12', '23:59:01:12', -100], 25], ['10:27:01:24', 942012]), ('regression variant: reverse speed magnitude', [['23:29:59:15', '10:00:01:29', '23:29:00:00', -50], 30], ['20:29:04:28', 2268148]), ('partial repair probe: reverse speed magnitude', [['23:29:01:00', '23:59:00:23', '23:29:59:01', -200], 24], ['23:44:59:01', 21600]), ('partial repair variant: reverse speed magnitude', [['00:00:59:12', '23:29:00:23', '00:29:00:01', -50], 24], ['23:25:02:23', 4055110]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('normal control', [['00:29:59:01', '01:59:30:24', '00:01:59:12', 200], 25], ['00:46:45:11', 67149]), ('normal control', [['01:01:30:01', '10:59:01:01', '23:59:59:01', 100], 25], ['09:57:30:01', 896275]), ('normal control', [['00:29:59:12', '00:59:01:12', '01:29:00:12', 75], 24], ['02:07:43:04', 55744])], [('regression: reverse speed magnitude', [['10:29:30:23', '23:59:59:00', '00:59:30:01', -200], 24], ['07:44:44:02', 583537]), ('regression variant: reverse speed magnitude', [['23:29:01:00', '23:59:00:23', '23:29:59:01', -200], 24], ['23:44:59:01', 21600]), ('partial repair probe: reverse speed magnitude', [['00:01:59:00', '23:00:59:01', '00:00:59:23', -50], 24], ['21:59:00:01', 3971522]), ('partial repair variant: reverse speed magnitude', [['10:29:59:24', '10:00:00:12', '23:29:59:01', -200], 25], ['11:14:59:08', 1057507]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['00:29:00:12', '23:29:59:12', '00:59:01:00', 33], 25], ['22:43:48:22', 6277197]), ('normal control', [['00:29:59:01', '23:00:01:01', '01:59:01:12', 200], 25], ['13:14:02:12', 1012525]), ('normal control', [['10:59:59:24', '01:29:59:01', '23:59:30:12', 75], 25], ['19:19:29:06', 1739969])]]
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 fixtureActualExpectedOutcome
regression: reverse speed magnitude['13:29:01:12', -823621]['08:32:56:14', 823621]Failed
regression variant: reverse speed magnitude['03:01:56:24', -4137052]['22:58:01:03', 4137052]Failed
partial repair probe: reverse speed magnitude['16:29:44:19', -562686]['05:31:15:07', 562686]Failed
partial repair variant: reverse speed magnitude['23:23:34:23', -94944]['01:35:26:23', 94944]Failed
boundary control['10:00:02:00', 50]['10:00:02:00', 50]Passed
boundary control['00:00:02:00', 50]['00:00:02:00', 50]Passed
normal control['00:00:00:02', 2]['00:00:00:02', 2]Passed
normal control['20:35:49:21', 6263709]['20:35:49:21', 6263709]Passed
normal control['03:40:31:19', 230431]['03:40:31:19', 230431]Passed

SHA-256 / 19cbdd1173263b5a80d1ae157b91cdb18a1f94bc02fc10878e7cd2f9edbd2a64

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(event, fps):
    def fr(t):
        h,m,s,f=map(int,t.split(':'))
        return ((h*60+m)*60+s)*fps+f
    def tc(n):
        n%=86400*fps
        return '%02d:%02d:%02d:%02d'%(n//(3600*fps),n//(60*fps)%60,n//fps%60,n%fps)
    src_in,src_out,rec_in,speed=event
    if speed==0:
        return None
    sp=speed if speed>0 else 100
    dur=(fr(src_out)-fr(src_in))%(86400*fps)
    rec=(dur*200+sp)//(2*sp)
    return [tc(fr(rec_in)+rec),rec]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: reverse speed magnitude', [['00:29:01:12', '10:00:59:01', '23:00:59:01', -100], 24], ['08:32:56:14', 823621]), ('regression variant: reverse speed magnitude', [['01:00:59:24', '00:00:01:00', '00:59:59:01', -50], 25], ['22:58:01:03', 4137052]), ('partial repair probe: reverse speed magnitude', [['10:59:30:12', '00:01:01:00', '23:00:30:01', -200], 24], ['05:31:15:07', 562686]), ('partial repair variant: reverse speed magnitude', [['23:29:01:23', '00:01:59:23', '00:29:30:23', -50], 24], ['01:35:26:23', 94944]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('normal control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['00:01:59:01', '23:00:00:00', '23:00:01:12', 33], 25], ['20:35:49:21', 6263709]), ('normal control', [['23:01:00:00', '01:01:00:23', '01:00:30:12', 75], 24], ['03:40:31:19', 230431])], [('regression: reverse speed magnitude', [['00:00:01:12', '23:00:30:01', '00:01:59:00', -100], 25], ['23:02:27:14', 2070714]), ('regression variant: reverse speed magnitude', [['10:59:30:12', '00:01:01:00', '23:00:30:01', -200], 24], ['05:31:15:07', 562686]), ('partial repair probe: reverse speed magnitude', [['00:01:59:23', '00:01:30:23', '23:59:00:12', -50], 24], ['23:58:02:12', 4145808]), ('partial repair variant: reverse speed magnitude', [['00:29:59:24', '01:00:59:01', '00:00:00:01', -50], 25], ['01:01:58:05', 92954]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['01:00:59:00', '00:01:30:01', '23:29:01:12', 250], 24], ['08:41:13:22', 795178]), ('normal control', [['23:01:01:01', '01:59:01:29', '23:59:01:01', 250], 30], ['01:10:13:12', 128171]), ('normal control', [['23:01:01:00', '00:00:30:23', '01:01:30:01', 100], 24], ['02:01:00:00', 85679])], [('regression: reverse speed magnitude', [['10:59:00:23', '00:00:30:00', '23:00:30:00', -50], 24], ['01:03:28:02', 2250674]), ('regression variant: reverse speed magnitude', [['00:01:59:23', '00:01:30:23', '23:59:00:12', -50], 24], ['23:58:02:12', 4145808]), ('partial repair probe: reverse speed magnitude', [['23:29:59:15', '10:00:01:29', '23:29:00:00', -50], 30], ['20:29:04:28', 2268148]), ('partial repair variant: reverse speed magnitude', [['01:00:00:00', '23:00:00:23', '23:01:59:23', -50], 24], ['19:02:01:21', 3801646]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('normal control', [['23:29:00:00', '23:59:00:23', '00:59:00:01', 0], 24], None), ('normal control', [['23:59:30:01', '00:00:01:01', '00:59:01:00', 75], 24], ['00:59:42:08', 992]), ('normal control', [['10:00:30:01', '23:00:00:01', '23:29:01:01', 100], 30], ['12:28:31:01', 1403100])], [('regression: reverse speed magnitude', [['00:01:00:00', '10:29:00:12', '23:59:01:12', -100], 25], ['10:27:01:24', 942012]), ('regression variant: reverse speed magnitude', [['23:29:59:15', '10:00:01:29', '23:29:00:00', -50], 30], ['20:29:04:28', 2268148]), ('partial repair probe: reverse speed magnitude', [['23:29:01:00', '23:59:00:23', '23:29:59:01', -200], 24], ['23:44:59:01', 21600]), ('partial repair variant: reverse speed magnitude', [['00:00:59:12', '23:29:00:23', '00:29:00:01', -50], 24], ['23:25:02:23', 4055110]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('normal control', [['00:29:59:01', '01:59:30:24', '00:01:59:12', 200], 25], ['00:46:45:11', 67149]), ('normal control', [['01:01:30:01', '10:59:01:01', '23:59:59:01', 100], 25], ['09:57:30:01', 896275]), ('normal control', [['00:29:59:12', '00:59:01:12', '01:29:00:12', 75], 24], ['02:07:43:04', 55744])], [('regression: reverse speed magnitude', [['10:29:30:23', '23:59:59:00', '00:59:30:01', -200], 24], ['07:44:44:02', 583537]), ('regression variant: reverse speed magnitude', [['23:29:01:00', '23:59:00:23', '23:29:59:01', -200], 24], ['23:44:59:01', 21600]), ('partial repair probe: reverse speed magnitude', [['00:01:59:00', '23:00:59:01', '00:00:59:23', -50], 24], ['21:59:00:01', 3971522]), ('partial repair variant: reverse speed magnitude', [['10:29:59:24', '10:00:00:12', '23:29:59:01', -200], 25], ['11:14:59:08', 1057507]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['00:29:00:12', '23:29:59:12', '00:59:01:00', 33], 25], ['22:43:48:22', 6277197]), ('normal control', [['00:29:59:01', '23:00:01:01', '01:59:01:12', 200], 25], ['13:14:02:12', 1012525]), ('normal control', [['10:59:59:24', '01:29:59:01', '23:59:30:12', 75], 25], ['19:19:29:06', 1739969])]]
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 fixtureActualExpectedOutcome
regression: reverse speed magnitude['08:32:56:14', 823621]['08:32:56:14', 823621]Passed
regression variant: reverse speed magnitude['23:59:00:02', 2068526]['22:58:01:03', 4137052]Failed
partial repair probe: reverse speed magnitude['12:02:00:13', 1125372]['05:31:15:07', 562686]Failed
partial repair variant: reverse speed magnitude['01:02:28:23', 47472]['01:35:26:23', 94944]Failed
boundary control['10:00:02:00', 50]['10:00:02:00', 50]Passed
boundary control['00:00:02:00', 50]['00:00:02:00', 50]Passed
normal control['00:00:00:02', 2]['00:00:00:02', 2]Passed
normal control['20:35:49:21', 6263709]['20:35:49:21', 6263709]Passed
normal control['03:40:31:19', 230431]['03:40:31:19', 230431]Passed

SHA-256 / 1e6933572807856f20f9937bb36cd5816347ef461469cb44ad157d65f4ab742d

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(event, fps):
    def fr(t):
        h,m,s,f=map(int,t.split(':'))
        return ((h*60+m)*60+s)*fps+f
    def tc(n):
        n%=86400*fps
        return '%02d:%02d:%02d:%02d'%(n//(3600*fps),n//(60*fps)%60,n//fps%60,n%fps)
    src_in,src_out,rec_in,speed=event
    if speed==0:
        return None
    sp=abs(speed)
    dur=(fr(src_out)-fr(src_in))%(86400*fps)
    rec=(dur*200+sp)//(2*sp)
    return [tc(fr(rec_in)+rec),rec]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: reverse speed magnitude', [['00:29:01:12', '10:00:59:01', '23:00:59:01', -100], 24], ['08:32:56:14', 823621]), ('regression variant: reverse speed magnitude', [['01:00:59:24', '00:00:01:00', '00:59:59:01', -50], 25], ['22:58:01:03', 4137052]), ('partial repair probe: reverse speed magnitude', [['10:59:30:12', '00:01:01:00', '23:00:30:01', -200], 24], ['05:31:15:07', 562686]), ('partial repair variant: reverse speed magnitude', [['23:29:01:23', '00:01:59:23', '00:29:30:23', -50], 24], ['01:35:26:23', 94944]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('normal control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['00:01:59:01', '23:00:00:00', '23:00:01:12', 33], 25], ['20:35:49:21', 6263709]), ('normal control', [['23:01:00:00', '01:01:00:23', '01:00:30:12', 75], 24], ['03:40:31:19', 230431])], [('regression: reverse speed magnitude', [['00:00:01:12', '23:00:30:01', '00:01:59:00', -100], 25], ['23:02:27:14', 2070714]), ('regression variant: reverse speed magnitude', [['10:59:30:12', '00:01:01:00', '23:00:30:01', -200], 24], ['05:31:15:07', 562686]), ('partial repair probe: reverse speed magnitude', [['00:01:59:23', '00:01:30:23', '23:59:00:12', -50], 24], ['23:58:02:12', 4145808]), ('partial repair variant: reverse speed magnitude', [['00:29:59:24', '01:00:59:01', '00:00:00:01', -50], 25], ['01:01:58:05', 92954]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['01:00:59:00', '00:01:30:01', '23:29:01:12', 250], 24], ['08:41:13:22', 795178]), ('normal control', [['23:01:01:01', '01:59:01:29', '23:59:01:01', 250], 30], ['01:10:13:12', 128171]), ('normal control', [['23:01:01:00', '00:00:30:23', '01:01:30:01', 100], 24], ['02:01:00:00', 85679])], [('regression: reverse speed magnitude', [['10:59:00:23', '00:00:30:00', '23:00:30:00', -50], 24], ['01:03:28:02', 2250674]), ('regression variant: reverse speed magnitude', [['00:01:59:23', '00:01:30:23', '23:59:00:12', -50], 24], ['23:58:02:12', 4145808]), ('partial repair probe: reverse speed magnitude', [['23:29:59:15', '10:00:01:29', '23:29:00:00', -50], 30], ['20:29:04:28', 2268148]), ('partial repair variant: reverse speed magnitude', [['01:00:00:00', '23:00:00:23', '23:01:59:23', -50], 24], ['19:02:01:21', 3801646]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('normal control', [['23:29:00:00', '23:59:00:23', '00:59:00:01', 0], 24], None), ('normal control', [['23:59:30:01', '00:00:01:01', '00:59:01:00', 75], 24], ['00:59:42:08', 992]), ('normal control', [['10:00:30:01', '23:00:00:01', '23:29:01:01', 100], 30], ['12:28:31:01', 1403100])], [('regression: reverse speed magnitude', [['00:01:00:00', '10:29:00:12', '23:59:01:12', -100], 25], ['10:27:01:24', 942012]), ('regression variant: reverse speed magnitude', [['23:29:59:15', '10:00:01:29', '23:29:00:00', -50], 30], ['20:29:04:28', 2268148]), ('partial repair probe: reverse speed magnitude', [['23:29:01:00', '23:59:00:23', '23:29:59:01', -200], 24], ['23:44:59:01', 21600]), ('partial repair variant: reverse speed magnitude', [['00:00:59:12', '23:29:00:23', '00:29:00:01', -50], 24], ['23:25:02:23', 4055110]), ('boundary control', [['01:00:00:00', '01:00:01:00', '10:00:00:00', 50], 25], ['10:00:02:00', 50]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('normal control', [['00:29:59:01', '01:59:30:24', '00:01:59:12', 200], 25], ['00:46:45:11', 67149]), ('normal control', [['01:01:30:01', '10:59:01:01', '23:59:59:01', 100], 25], ['09:57:30:01', 896275]), ('normal control', [['00:29:59:12', '00:59:01:12', '01:29:00:12', 75], 24], ['02:07:43:04', 55744])], [('regression: reverse speed magnitude', [['10:29:30:23', '23:59:59:00', '00:59:30:01', -200], 24], ['07:44:44:02', 583537]), ('regression variant: reverse speed magnitude', [['23:29:01:00', '23:59:00:23', '23:29:59:01', -200], 24], ['23:44:59:01', 21600]), ('partial repair probe: reverse speed magnitude', [['00:01:59:00', '23:00:59:01', '00:00:59:23', -50], 24], ['21:59:00:01', 3971522]), ('partial repair variant: reverse speed magnitude', [['10:29:59:24', '10:00:00:12', '23:29:59:01', -200], 25], ['11:14:59:08', 1057507]), ('boundary control', [['23:59:59:00', '00:00:01:00', '00:00:00:00', 100], 25], ['00:00:02:00', 50]), ('boundary control', [['00:00:00:00', '00:00:00:03', '00:00:00:00', 200], 30], ['00:00:00:02', 2]), ('normal control', [['00:29:00:12', '23:29:59:12', '00:59:01:00', 33], 25], ['22:43:48:22', 6277197]), ('normal control', [['00:29:59:01', '23:00:01:01', '01:59:01:12', 200], 25], ['13:14:02:12', 1012525]), ('normal control', [['10:59:59:24', '01:29:59:01', '23:59:30:12', 75], 25], ['19:19:29:06', 1739969])]]
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 fixtureActualExpectedOutcome
regression: reverse speed magnitude['08:32:56:14', 823621]['08:32:56:14', 823621]Passed
regression variant: reverse speed magnitude['22:58:01:03', 4137052]['22:58:01:03', 4137052]Passed
partial repair probe: reverse speed magnitude['05:31:15:07', 562686]['05:31:15:07', 562686]Passed
partial repair variant: reverse speed magnitude['01:35:26:23', 94944]['01:35:26:23', 94944]Passed
boundary control['10:00:02:00', 50]['10:00:02:00', 50]Passed
boundary control['00:00:02:00', 50]['00:00:02:00', 50]Passed
normal control['00:00:00:02', 2]['00:00:00:02', 2]Passed
normal control['20:35:49:21', 6263709]['20:35:49:21', 6263709]Passed
normal control['03:40:31:19', 230431]['03:40:31:19', 230431]Passed

SHA-256 / 808a7c85840e6adbdd299746d03b1609c6dd7e600812eadc558912a767fa031f

Verification & scope

A deterministic bounded teaching model with a stipulated toy contract; it does not claim conformance to SMPTE or any broadcast 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:35.902073+00:00.

Case digest / 9bb4fd8960b622e6f71f6da3ba5a8b6c473040a2646d7bdb24026854a8e75df2