broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(tc, fps):
    f=tc.split(':')
    if len(f)!=4 or not all(x.isdigit() for x in f):
        return None
    h,m,s,fr=map(int,f)
    if h>23:
        return None
    if m>59 or s>59:
        return None
    if fr>=fps:
        return None
    return ((h*60+m)*60+s)*fps+fr
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: field width', ['1:59:59:24', 30], None), ('regression variant: field width', ['1:00:00:00', 30], None), ('partial repair probe: field width', ['00:59:5:00', 25], None), ('partial repair variant: field width', ['00:59:5:24', 30], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['23:59:59:24', 25], 2159999), ('normal control', ['01:00:00;00', 30], None), ('normal control', ['00:07:00.24', 25], None)], [('regression: field width', ['1:59:59:00', 24], None), ('regression variant: field width', ['1:00:00:24', 25], None), ('partial repair probe: field width', ['00:00:5:00', 25], None), ('partial repair variant: field width', ['1:07:00:24', 30], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('boundary control', ['01:00:00;00', 30], None), ('normal control', ['01:00:00.00', 24], None), ('normal control', ['00:59:00.25', 25], None), ('normal control', ['00:60:5:30', 24], None)], [('regression: field width', ['00:59:5:00', 25], None), ('regression variant: field width', ['01:07:5:24', 25], None), ('partial repair probe: field width', ['1:59:5:23', 24], None), ('partial repair variant: field width', ['1:07:00:29', 30], None), ('boundary control', ['24:00:00:00', 25], None), ('boundary control', ['00:00:00:00', 25], 0), ('normal control', ['99:59:59:29', 30], None), ('normal control', ['00:59:59:24', 25], 89999), ('normal control', ['01:07:00:25', 24], None)], [('regression: field width', ['00:00:5:00', 25], None), ('regression variant: field width', ['1:59:00:00', 30], None), ('partial repair probe: field width', ['1:00:00:00', 30], None), ('partial repair variant: field width', ['1:00:5:24', 30], None), ('boundary control', ['00:00:00:25', 25], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('normal control', ['01:00:60:29', 24], None), ('normal control', ['23:59:5:29', 25], None), ('normal control', ['1:59:00;25', 25], None)], [('regression: field width', ['1:59:5:23', 24], None), ('regression variant: field width', ['00:59:5:24', 30], None), ('partial repair probe: field width', ['1:00:00:24', 25], None), ('partial repair variant: field width', ['01:59:5:29', 30], None), ('boundary control', ['01:00:00;00', 30], None), ('boundary control', ['24:00:00:00', 25], None), ('normal control', ['99:60:59:25', 25], None), ('normal control', ['24:00:60:25', 30], None), ('normal control', ['24:60:5.00', 30], None)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(tc, fps):
    f=tc.split(':')
    if len(f)!=4 or not all(len(x)<=2 and x.isdigit() for x in f):
        return None
    h,m,s,fr=map(int,f)
    if h>23:
        return None
    if m>59 or s>59:
        return None
    if fr>=fps:
        return None
    return ((h*60+m)*60+s)*fps+fr
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: field width', ['1:59:59:24', 30], None), ('regression variant: field width', ['1:00:00:00', 30], None), ('partial repair probe: field width', ['00:59:5:00', 25], None), ('partial repair variant: field width', ['00:59:5:24', 30], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['23:59:59:24', 25], 2159999), ('normal control', ['01:00:00;00', 30], None), ('normal control', ['00:07:00.24', 25], None)], [('regression: field width', ['1:59:59:00', 24], None), ('regression variant: field width', ['1:00:00:24', 25], None), ('partial repair probe: field width', ['00:00:5:00', 25], None), ('partial repair variant: field width', ['1:07:00:24', 30], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('boundary control', ['01:00:00;00', 30], None), ('normal control', ['01:00:00.00', 24], None), ('normal control', ['00:59:00.25', 25], None), ('normal control', ['00:60:5:30', 24], None)], [('regression: field width', ['00:59:5:00', 25], None), ('regression variant: field width', ['01:07:5:24', 25], None), ('partial repair probe: field width', ['1:59:5:23', 24], None), ('partial repair variant: field width', ['1:07:00:29', 30], None), ('boundary control', ['24:00:00:00', 25], None), ('boundary control', ['00:00:00:00', 25], 0), ('normal control', ['99:59:59:29', 30], None), ('normal control', ['00:59:59:24', 25], 89999), ('normal control', ['01:07:00:25', 24], None)], [('regression: field width', ['00:00:5:00', 25], None), ('regression variant: field width', ['1:59:00:00', 30], None), ('partial repair probe: field width', ['1:00:00:00', 30], None), ('partial repair variant: field width', ['1:00:5:24', 30], None), ('boundary control', ['00:00:00:25', 25], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('normal control', ['01:00:60:29', 24], None), ('normal control', ['23:59:5:29', 25], None), ('normal control', ['1:59:00;25', 25], None)], [('regression: field width', ['1:59:5:23', 24], None), ('regression variant: field width', ['00:59:5:24', 30], None), ('partial repair probe: field width', ['1:00:00:24', 25], None), ('partial repair variant: field width', ['01:59:5:29', 30], None), ('boundary control', ['01:00:00;00', 30], None), ('boundary control', ['24:00:00:00', 25], None), ('normal control', ['99:60:59:25', 25], None), ('normal control', ['24:00:60:25', 30], None), ('normal control', ['24:60:5.00', 30], None)]]
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)

prompt:
Loosely typed labels such as 1:00:00:00 are accepted into the edit list.

Parse a non-drop label HH:MM:SS:FF (exactly two digits per field, colons only) at integer fps to a frame count from midnight. Hours 0-23, minutes and seconds 0-59, frames below fps; anything else, including drop-frame separators, returns None.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(tc, fps):
    f=tc.replace(';',':').split(':')
    if len(f)!=4 or not all(len(x)==2 and x.isdigit() for x in f):
        return None
    h,m,s,fr=map(int,f)
    if h>23:
        return None
    if m>59 or s>59:
        return None
    if fr>=fps:
        return None
    return ((h*60+m)*60+s)*fps+fr
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: separator policy', ['01:00:00;00', 30], None), ('regression variant: separator policy', ['23:00:59;00', 30], None), ('partial repair probe: separator policy', ['23:59:59.00', 24], None), ('partial repair variant: separator policy', ['00:07:00.24', 25], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['23:59:59:24', 25], 2159999), ('normal control', ['1:59:59:24', 30], None), ('normal control', ['23:07:60.30', 30], None)], [('regression: separator policy', ['01:59:59;25', 30], None), ('regression variant: separator policy', ['01:07:59;24', 25], None), ('partial repair probe: separator policy', ['01:00:00.24', 25], None), ('partial repair variant: separator policy', ['01:00:00.00', 24], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('boundary control', ['00:00:00:00', 25], 0), ('normal control', ['24:07:59:30', 30], None), ('normal control', ['24:07:60:30', 30], None), ('normal control', ['00:07:60:30', 30], None)], [('regression: separator policy', ['00:00:59;00', 24], None), ('regression variant: separator policy', ['00:07:59;00', 25], None), ('partial repair probe: separator policy', ['00:00:59.24', 30], None), ('partial repair variant: separator policy', ['23:59:59.00', 24], None), ('boundary control', ['24:00:00:00', 25], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('normal control', ['99:07:00:30', 25], None), ('normal control', ['00:59:59:24', 25], 89999), ('normal control', ['01:07:00:25', 24], None)], [('regression: separator policy', ['01:00:59;24', 25], None), ('regression variant: separator policy', ['00:07:59;29', 30], None), ('partial repair probe: separator policy', ['23:59:59.29', 30], None), ('partial repair variant: separator policy', ['01:00:00.24', 25], None), ('boundary control', ['00:00:00:25', 25], None), ('boundary control', ['24:00:00:00', 25], None), ('normal control', ['01:00:60:29', 24], None), ('normal control', ['23:59:5:29', 25], None), ('normal control', ['1:59:00;25', 25], None)], [('regression: separator policy', ['23:59:00;24', 25], None), ('regression variant: separator policy', ['01:00:00;00', 30], None), ('partial repair probe: separator policy', ['23:59:59.00', 30], None), ('partial repair variant: separator policy', ['00:00:59.24', 30], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['99:60:59:25', 25], None), ('normal control', ['24:00:60:25', 30], None), ('normal control', ['24:60:5.00', 30], None)]]
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)

meaning: Fixture-count band, not measured model difficulty

deps: stdlib

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(tc, fps):
    f=tc.replace('.',':').split(':')
    if len(f)!=4 or not all(len(x)==2 and x.isdigit() for x in f):
        return None
    h,m,s,fr=map(int,f)
    if h>23:
        return None
    if m>59 or s>59:
        return None
    if fr>=fps:
        return None
    return ((h*60+m)*60+s)*fps+fr
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: separator policy', ['01:00:00;00', 30], None), ('regression variant: separator policy', ['23:00:59;00', 30], None), ('partial repair probe: separator policy', ['23:59:59.00', 24], None), ('partial repair variant: separator policy', ['00:07:00.24', 25], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['23:59:59:24', 25], 2159999), ('normal control', ['1:59:59:24', 30], None), ('normal control', ['23:07:60.30', 30], None)], [('regression: separator policy', ['01:59:59;25', 30], None), ('regression variant: separator policy', ['01:07:59;24', 25], None), ('partial repair probe: separator policy', ['01:00:00.24', 25], None), ('partial repair variant: separator policy', ['01:00:00.00', 24], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('boundary control', ['00:00:00:00', 25], 0), ('normal control', ['24:07:59:30', 30], None), ('normal control', ['24:07:60:30', 30], None), ('normal control', ['00:07:60:30', 30], None)], [('regression: separator policy', ['00:00:59;00', 24], None), ('regression variant: separator policy', ['00:07:59;00', 25], None), ('partial repair probe: separator policy', ['00:00:59.24', 30], None), ('partial repair variant: separator policy', ['23:59:59.00', 24], None), ('boundary control', ['24:00:00:00', 25], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('normal control', ['99:07:00:30', 25], None), ('normal control', ['00:59:59:24', 25], 89999), ('normal control', ['01:07:00:25', 24], None)], [('regression: separator policy', ['01:00:59;24', 25], None), ('regression variant: separator policy', ['00:07:59;29', 30], None), ('partial repair probe: separator policy', ['23:59:59.29', 30], None), ('partial repair variant: separator policy', ['01:00:00.24', 25], None), ('boundary control', ['00:00:00:25', 25], None), ('boundary control', ['24:00:00:00', 25], None), ('normal control', ['01:00:60:29', 24], None), ('normal control', ['23:59:5:29', 25], None), ('normal control', ['1:59:00;25', 25], None)], [('regression: separator policy', ['23:59:00;24', 25], None), ('regression variant: separator policy', ['01:00:00;00', 30], None), ('partial repair probe: separator policy', ['23:59:59.00', 30], None), ('partial repair variant: separator policy', ['00:00:59.24', 30], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['99:60:59:25', 25], None), ('normal control', ['24:00:60:25', 30], None), ('normal control', ['24:60:5.00', 30], None)]]
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)

prompt:
Drop-frame labels are silently parsed as non-drop counts, shifting events by up to 108 frames per hour.

Parse a non-drop label HH:MM:SS:FF (exactly two digits per field, colons only) at integer fps to a frame count from midnight. Hours 0-23, minutes and seconds 0-59, frames below fps; anything else, including drop-frame separators, returns None.

split: open-access


prompt:
Pre-roll frames before midnight are labelled as if they were after midnight.

Convert a frame count (any integer, wrapped modulo 24 hours) to HH:MM:SS:FF. For fps above 30 the frame field counts frame pairs (frame//2) and the last separator is "." for the second frame of a pair and ":" otherwise.

split: open-access


prompt:
High frame rate counts wrap at noon instead of midnight.

Convert a frame count (any integer, wrapped modulo 24 hours) to HH:MM:SS:FF. For fps above 30 the frame field counts frame pairs (frame//2) and the last separator is "." for the second frame of a pair and ":" otherwise.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames, fps):
    day=24*3600*fps
    frames%=day
    fr=frames%fps
    s=frames//fps
    hh,mm,ss=s//3600,s//60%60,s%60
    if fps>=30:
        return '%02d:%02d:%02d%s%02d'%(hh,mm,ss,'.' if fr%2 else ':',fr//2)
    return '%02d:%02d:%02d:%02d'%(hh,mm,ss,fr)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: pair notation threshold', [1803, 30], '00:01:00:03'), ('regression variant: pair notation threshold', [2592005, 30], '00:00:00:05'), ('partial repair probe: pair notation threshold', [1, 48], '00:00:00.00'), ('partial repair variant: pair notation threshold', [172807, 48], '01:00:00.03'), ('boundary control', [0, 25], '00:00:00:00'), ('boundary control', [3, 50], '00:00:00.01'), ('normal control', [-1, 25], '23:59:59:24'), ('normal control', [2, 50], '00:00:00:01'), ('normal control', [59, 60], '00:00:00.29')], [('regression: pair notation threshold', [8166989, 30], '03:37:12:29'), ('regression variant: pair notation threshold', [31, 30], '00:00:01:01'), ('partial repair probe: pair notation threshold', [2, 48], '00:00:00:01'), ('partial repair variant: pair notation threshold', [49, 48], '00:00:01.00'), ('boundary control', [-1, 25], '23:59:59:24'), ('boundary control', [2, 50], '00:00:00:01'), ('normal control', [216007, 60], '01:00:00.03'), ('normal control', [-5184003, 60], '23:59:59.28'), ('normal control', [49, 50], '00:00:00.24')], [('regression: pair notation threshold', [-1, 30], '23:59:59:29'), ('regression variant: pair notation threshold', [2591999, 30], '23:59:59:29'), ('partial repair probe: pair notation threshold', [-4147203, 48], '23:59:59.22'), ('partial repair variant: pair notation threshold', [-20013062, 48], '04:11:01:05'), ('boundary control', [2160000, 25], '00:00:00:00'), ('boundary control', [59, 60], '00:00:00.29'), ('normal control', [5184000, 60], '00:00:00:00'), ('normal control', [0, 24], '00:00:00:00'), ('normal control', [7086760, 24], '10:01:21:16')], [('regression: pair notation threshold', [-4622105, 30], '05:12:09:25'), ('regression variant: pair notation threshold', [-2592003, 30], '23:59:59:27'), ('partial repair probe: pair notation threshold', [8294411, 48], '00:00:00.05'), ('partial repair variant: pair notation threshold', [-9650997, 48], '16:08:57.13'), ('boundary control', [3, 50], '00:00:00.01'), ('boundary control', [30, 30], '00:00:01:00'), ('normal control', [2073600, 24], '00:00:00:00'), ('normal control', [1, 25], '00:00:00:01'), ('normal control', [48, 48], '00:00:01:00')], [('regression: pair notation threshold', [2, 30], '00:00:00:02'), ('regression variant: pair notation threshold', [29, 30], '00:00:00:29'), ('partial repair probe: pair notation threshold', [15958672, 48], '20:21:12:08'), ('partial repair variant: pair notation threshold', [47, 48], '00:00:00.23'), ('boundary control', [2, 50], '00:00:00:01'), ('boundary control', [0, 25], '00:00:00:00'), ('normal control', [2160005, 25], '00:00:00:05'), ('normal control', [5184005, 60], '00:00:00.02'), ('normal control', [2073605, 24], '00:00:00:05')]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames, fps):
    day=24*3600*fps
    frames%=day
    fr=frames%fps
    s=frames//fps
    hh,mm,ss=s//3600,s//60%60,s%60
    if fps>=50:
        return '%02d:%02d:%02d%s%02d'%(hh,mm,ss,'.' if fr%2 else ':',fr//2)
    return '%02d:%02d:%02d:%02d'%(hh,mm,ss,fr)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: pair notation threshold', [1803, 30], '00:01:00:03'), ('regression variant: pair notation threshold', [2592005, 30], '00:00:00:05'), ('partial repair probe: pair notation threshold', [1, 48], '00:00:00.00'), ('partial repair variant: pair notation threshold', [172807, 48], '01:00:00.03'), ('boundary control', [0, 25], '00:00:00:00'), ('boundary control', [3, 50], '00:00:00.01'), ('normal control', [-1, 25], '23:59:59:24'), ('normal control', [2, 50], '00:00:00:01'), ('normal control', [59, 60], '00:00:00.29')], [('regression: pair notation threshold', [8166989, 30], '03:37:12:29'), ('regression variant: pair notation threshold', [31, 30], '00:00:01:01'), ('partial repair probe: pair notation threshold', [2, 48], '00:00:00:01'), ('partial repair variant: pair notation threshold', [49, 48], '00:00:01.00'), ('boundary control', [-1, 25], '23:59:59:24'), ('boundary control', [2, 50], '00:00:00:01'), ('normal control', [216007, 60], '01:00:00.03'), ('normal control', [-5184003, 60], '23:59:59.28'), ('normal control', [49, 50], '00:00:00.24')], [('regression: pair notation threshold', [-1, 30], '23:59:59:29'), ('regression variant: pair notation threshold', [2591999, 30], '23:59:59:29'), ('partial repair probe: pair notation threshold', [-4147203, 48], '23:59:59.22'), ('partial repair variant: pair notation threshold', [-20013062, 48], '04:11:01:05'), ('boundary control', [2160000, 25], '00:00:00:00'), ('boundary control', [59, 60], '00:00:00.29'), ('normal control', [5184000, 60], '00:00:00:00'), ('normal control', [0, 24], '00:00:00:00'), ('normal control', [7086760, 24], '10:01:21:16')], [('regression: pair notation threshold', [-4622105, 30], '05:12:09:25'), ('regression variant: pair notation threshold', [-2592003, 30], '23:59:59:27'), ('partial repair probe: pair notation threshold', [8294411, 48], '00:00:00.05'), ('partial repair variant: pair notation threshold', [-9650997, 48], '16:08:57.13'), ('boundary control', [3, 50], '00:00:00.01'), ('boundary control', [30, 30], '00:00:01:00'), ('normal control', [2073600, 24], '00:00:00:00'), ('normal control', [1, 25], '00:00:00:01'), ('normal control', [48, 48], '00:00:01:00')], [('regression: pair notation threshold', [2, 30], '00:00:00:02'), ('regression variant: pair notation threshold', [29, 30], '00:00:00:29'), ('partial repair probe: pair notation threshold', [15958672, 48], '20:21:12:08'), ('partial repair variant: pair notation threshold', [47, 48], '00:00:00.23'), ('boundary control', [2, 50], '00:00:00:01'), ('boundary control', [0, 25], '00:00:00:00'), ('normal control', [2160005, 25], '00:00:00:05'), ('normal control', [5184005, 60], '00:00:00.02'), ('normal control', [2073605, 24], '00:00:00:05')]]
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)

prompt:
Plain 30 fps labels are printed in frame-pair notation.

Convert a frame count (any integer, wrapped modulo 24 hours) to HH:MM:SS:FF. For fps above 30 the frame field counts frame pairs (frame//2) and the last separator is "." for the second frame of a pair and ":" otherwise.

split: open-access


prompt:
The first and second frames of each pair are labelled the wrong way round.

Convert a frame count (any integer, wrapped modulo 24 hours) to HH:MM:SS:FF. For fps above 30 the frame field counts frame pairs (frame//2) and the last separator is "." for the second frame of a pair and ":" otherwise.

split: open-access


prompt:
Frame-pair fields restart halfway through each second.

Convert a frame count (any integer, wrapped modulo 24 hours) to HH:MM:SS:FF. For fps above 30 the frame field counts frame pairs (frame//2) and the last separator is "." for the second frame of a pair and ":" otherwise.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2});(\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>23 or mi>59 or s>59:
        return None
    if f>29:
        return None
    if s==0 and f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-tm//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: drop separator set', ['23:00:00.02'], 2481518), ('regression variant: drop separator set', ['23:20:00,00'], 2517480), ('partial repair probe: drop separator set', ['09:59:01.03'], 1077153), ('partial repair variant: drop separator set', ['01:01:00,02'], 109692), ('boundary control', ['00:01:00;02'], 1800), ('boundary control', ['01:00:00;00'], 107892), ('normal control', ['00:01:00;00'], None), ('normal control', ['00:00:59;29'], 1799), ('normal control', ['23:59:59;29'], 2589407)], [('regression: drop separator set', ['09:59:01.03'], 1077153), ('regression variant: drop separator set', ['01:01:00,02'], 109692), ('partial repair probe: drop separator set', ['23:10:01.01'], 2499529), ('partial repair variant: drop separator set', ['09:00:01,29'], 971087), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['24:00:00:31'], None), ('normal control', ['09:11:60.03'], None), ('normal control', ['24:20:59,31'], None)], [('regression: drop separator set', ['23:10:01.01'], 2499529), ('regression variant: drop separator set', ['09:00:01,29'], 971087), ('partial repair probe: drop separator set', ['00:11:00.03'], 19783), ('partial repair variant: drop separator set', ['23:09:00,15'], 2497713), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['23:59:59;29'], 2589407), ('normal control', ['00:01:01;03'], 1831), ('normal control', ['01:60:00,02'], None), ('normal control', ['23:59:60,00'], None)], [('regression: drop separator set', ['00:11:00.03'], 19783), ('regression variant: drop separator set', ['23:09:00,15'], 2497713), ('partial repair probe: drop separator set', ['09:00:01.02'], 971060), ('partial repair variant: drop separator set', ['00:01:00.15'], 1813), ('boundary control', ['01:00:00;00'], 107892), ('boundary control', ['00:01:00;02'], 1800), ('normal control', ['23:11:59;00'], 2503066), ('normal control', ['01:20:60;00'], None), ('normal control', ['09:60:00:31'], None)], [('regression: drop separator set', ['09:00:01.02'], 971060), ('regression variant: drop separator set', ['00:01:00.15'], 1813), ('partial repair probe: drop separator set', ['23:00:01:29'], None), ('partial repair variant: drop separator set', ['09:10:00,02'], 989012), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['01:11:01;30'], None), ('normal control', ['24:60:01:02'], None), ('normal control', ['01:59:60;30'], None)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;:](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>23 or mi>59 or s>59:
        return None
    if f>29:
        return None
    if s==0 and f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-tm//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: drop separator set', ['23:00:00.02'], 2481518), ('regression variant: drop separator set', ['23:20:00,00'], 2517480), ('partial repair probe: drop separator set', ['09:59:01.03'], 1077153), ('partial repair variant: drop separator set', ['01:01:00,02'], 109692), ('boundary control', ['00:01:00;02'], 1800), ('boundary control', ['01:00:00;00'], 107892), ('normal control', ['00:01:00;00'], None), ('normal control', ['00:00:59;29'], 1799), ('normal control', ['23:59:59;29'], 2589407)], [('regression: drop separator set', ['09:59:01.03'], 1077153), ('regression variant: drop separator set', ['01:01:00,02'], 109692), ('partial repair probe: drop separator set', ['23:10:01.01'], 2499529), ('partial repair variant: drop separator set', ['09:00:01,29'], 971087), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['24:00:00:31'], None), ('normal control', ['09:11:60.03'], None), ('normal control', ['24:20:59,31'], None)], [('regression: drop separator set', ['23:10:01.01'], 2499529), ('regression variant: drop separator set', ['09:00:01,29'], 971087), ('partial repair probe: drop separator set', ['00:11:00.03'], 19783), ('partial repair variant: drop separator set', ['23:09:00,15'], 2497713), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['23:59:59;29'], 2589407), ('normal control', ['00:01:01;03'], 1831), ('normal control', ['01:60:00,02'], None), ('normal control', ['23:59:60,00'], None)], [('regression: drop separator set', ['00:11:00.03'], 19783), ('regression variant: drop separator set', ['23:09:00,15'], 2497713), ('partial repair probe: drop separator set', ['09:00:01.02'], 971060), ('partial repair variant: drop separator set', ['00:01:00.15'], 1813), ('boundary control', ['01:00:00;00'], 107892), ('boundary control', ['00:01:00;02'], 1800), ('normal control', ['23:11:59;00'], 2503066), ('normal control', ['01:20:60;00'], None), ('normal control', ['09:60:00:31'], None)], [('regression: drop separator set', ['09:00:01.02'], 971060), ('regression variant: drop separator set', ['00:01:00.15'], 1813), ('partial repair probe: drop separator set', ['23:00:01:29'], None), ('partial repair variant: drop separator set', ['09:10:00,02'], 989012), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['01:11:01;30'], None), ('normal control', ['24:60:01:02'], None), ('normal control', ['01:59:60;30'], None)]]
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)

prompt:
Labels using the period or comma drop-frame spelling are rejected.

Parse HH:MM:SS;FF drop-frame 29.97 labels (the last separator may be ";", "," or "."). Labels ;00 and ;01 at second 00 of minutes not divisible by 10 do not exist and return None, as do out-of-range fields (hours 0-23, frames 0-29). Frame count = nominal 30 fps count minus 2 per elapsed minute except every tenth minute.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;,.](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>23 or mi>59 or s>59:
        return None
    if f>30:
        return None
    if s==0 and f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-tm//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: frame field range', ['01:01:59;30'], None), ('regression variant: frame field range', ['09:09:59,30'], None), ('partial repair probe: frame field range', ['01:11:01;30'], None), ('partial repair variant: frame field range', ['01:01:00,30'], None), ('boundary control', ['00:01:00;02'], 1800), ('boundary control', ['01:00:00;00'], 107892), ('normal control', ['00:01:00;00'], None), ('normal control', ['00:00:59;29'], 1799), ('normal control', ['23:59:59;29'], 2589407)], [('regression: frame field range', ['01:11:01;30'], None), ('regression variant: frame field range', ['01:01:00,30'], None), ('partial repair probe: frame field range', ['23:59:59.30'], None), ('partial repair variant: frame field range', ['01:00:00.30'], None), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['24:01:01.01'], None), ('normal control', ['00:60:00;29'], None), ('normal control', ['09:00:00:02'], None)], [('regression: frame field range', ['23:59:59.30'], None), ('regression variant: frame field range', ['01:00:00.30'], None), ('partial repair probe: frame field range', ['09:11:00;30'], None), ('partial repair variant: frame field range', ['00:00:01;31'], None), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['23:59:59;29'], 2589407), ('normal control', ['09:59:01.03'], 1077153), ('normal control', ['00:11:00.03'], 19783), ('normal control', ['00:01:01;03'], 1831)], [('regression: frame field range', ['09:11:00;30'], None), ('regression variant: frame field range', ['23:09:00;30'], None), ('partial repair probe: frame field range', ['23:01:59,30'], None), ('partial repair variant: frame field range', ['23:01:00.31'], None), ('boundary control', ['01:00:00;00'], 107892), ('boundary control', ['00:01:00;02'], 1800), ('normal control', ['01:60:00,02'], None), ('normal control', ['23:11:59;00'], 2503066), ('normal control', ['01:59:00;01'], None)], [('regression: frame field range', ['23:01:59,30'], None), ('regression variant: frame field range', ['01:09:00;30'], None), ('partial repair probe: frame field range', ['23:01:00;31'], None), ('partial repair variant: frame field range', ['23:01:00.31'], None), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['09:01:00;03'], 972829), ('normal control', ['09:01:60,02'], None), ('normal control', ['01:59:01;29'], 214043)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;,.](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>23 or mi>59 or s>59:
        return None
    if f>59:
        return None
    if s==0 and f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-tm//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: frame field range', ['01:01:59;30'], None), ('regression variant: frame field range', ['09:09:59,30'], None), ('partial repair probe: frame field range', ['01:11:01;30'], None), ('partial repair variant: frame field range', ['01:01:00,30'], None), ('boundary control', ['00:01:00;02'], 1800), ('boundary control', ['01:00:00;00'], 107892), ('normal control', ['00:01:00;00'], None), ('normal control', ['00:00:59;29'], 1799), ('normal control', ['23:59:59;29'], 2589407)], [('regression: frame field range', ['01:11:01;30'], None), ('regression variant: frame field range', ['01:01:00,30'], None), ('partial repair probe: frame field range', ['23:59:59.30'], None), ('partial repair variant: frame field range', ['01:00:00.30'], None), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['24:01:01.01'], None), ('normal control', ['00:60:00;29'], None), ('normal control', ['09:00:00:02'], None)], [('regression: frame field range', ['23:59:59.30'], None), ('regression variant: frame field range', ['01:00:00.30'], None), ('partial repair probe: frame field range', ['09:11:00;30'], None), ('partial repair variant: frame field range', ['00:00:01;31'], None), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['23:59:59;29'], 2589407), ('normal control', ['09:59:01.03'], 1077153), ('normal control', ['00:11:00.03'], 19783), ('normal control', ['00:01:01;03'], 1831)], [('regression: frame field range', ['09:11:00;30'], None), ('regression variant: frame field range', ['23:09:00;30'], None), ('partial repair probe: frame field range', ['23:01:59,30'], None), ('partial repair variant: frame field range', ['23:01:00.31'], None), ('boundary control', ['01:00:00;00'], 107892), ('boundary control', ['00:01:00;02'], 1800), ('normal control', ['01:60:00,02'], None), ('normal control', ['23:11:59;00'], 2503066), ('normal control', ['01:59:00;01'], None)], [('regression: frame field range', ['23:01:59,30'], None), ('regression variant: frame field range', ['01:09:00;30'], None), ('partial repair probe: frame field range', ['23:01:00;31'], None), ('partial repair variant: frame field range', ['23:01:00.31'], None), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['09:01:00;03'], 972829), ('normal control', ['09:01:60,02'], None), ('normal control', ['01:59:01;29'], 214043)]]
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)

prompt:
A label with frame 30 is accepted and aliases the next second.

Parse HH:MM:SS;FF drop-frame 29.97 labels (the last separator may be ";", "," or "."). Labels ;00 and ;01 at second 00 of minutes not divisible by 10 do not exist and return None, as do out-of-range fields (hours 0-23, frames 0-29). Frame count = nominal 30 fps count minus 2 per elapsed minute except every tenth minute.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;,.](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>23 or mi>59 or s>59:
        return None
    if f>29:
        return None
    if f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-tm//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: nonexistent label check', ['00:01:59;01'], 3569), ('regression variant: nonexistent label check', ['23:09:01.01'], 2497729), ('partial repair probe: nonexistent label check', ['23:10:00;00'], 2499498), ('partial repair variant: nonexistent label check', ['00:10:00;00'], 17982), ('boundary control', ['00:01:00;02'], 1800), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['00:01:00;00'], None), ('normal control', ['23:59:59;29'], 2589407), ('normal control', ['23:00:00.02'], 2481518)], [('regression: nonexistent label check', ['23:11:59;00'], 2503066), ('regression variant: nonexistent label check', ['23:09:59.00'], 2499468), ('partial repair probe: nonexistent label check', ['01:10:00;01'], 125875), ('partial repair variant: nonexistent label check', ['23:20:00,00'], 2517480), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['23:59:59;29'], 2589407), ('normal control', ['24:00:00:31'], None), ('normal control', ['09:11:60.03'], None), ('normal control', ['09:59:01.03'], 1077153)], [('regression: nonexistent label check', ['09:11:59,01'], 992579), ('regression variant: nonexistent label check', ['09:01:59;00'], 974596), ('partial repair probe: nonexistent label check', ['23:10:00,01'], 2499499), ('partial repair variant: nonexistent label check', ['23:10:00;00'], 2499498), ('boundary control', ['01:00:00;00'], 107892), ('boundary control', ['00:01:00;02'], 1800), ('normal control', ['24:20:59,31'], None), ('normal control', ['00:01:01;03'], 1831), ('normal control', ['23:60:00.01'], None)], [('regression: nonexistent label check', ['01:01:59,00'], 111460), ('regression variant: nonexistent label check', ['01:11:59;01'], 129443), ('partial repair probe: nonexistent label check', ['00:20:00,00'], 35964), ('partial repair variant: nonexistent label check', ['01:10:00;01'], 125875), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['01:11:59:31'], None), ('normal control', ['00:20:60;03'], None), ('normal control', ['01:20:60;00'], None)], [('regression: nonexistent label check', ['01:11:01.00'], 127702), ('regression variant: nonexistent label check', ['09:01:01;01'], 972857), ('partial repair probe: nonexistent label check', ['23:10:00,00'], 2499498), ('partial repair variant: nonexistent label check', ['23:10:00,01'], 2499499), ('boundary control', ['23:59:59;29'], 2589407), ('boundary control', ['01:00:00;00'], 107892), ('normal control', ['09:00:01.02'], 971060), ('normal control', ['01:11:01;30'], None), ('normal control', ['01:59:01;29'], 214043)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;,.](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>23 or mi>59 or s>59:
        return None
    if f>29:
        return None
    if s==0 and f<2 and mi!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-tm//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: nonexistent label check', ['00:01:59;01'], 3569), ('regression variant: nonexistent label check', ['23:09:01.01'], 2497729), ('partial repair probe: nonexistent label check', ['23:10:00;00'], 2499498), ('partial repair variant: nonexistent label check', ['00:10:00;00'], 17982), ('boundary control', ['00:01:00;02'], 1800), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['00:01:00;00'], None), ('normal control', ['23:59:59;29'], 2589407), ('normal control', ['23:00:00.02'], 2481518)], [('regression: nonexistent label check', ['23:11:59;00'], 2503066), ('regression variant: nonexistent label check', ['23:09:59.00'], 2499468), ('partial repair probe: nonexistent label check', ['01:10:00;01'], 125875), ('partial repair variant: nonexistent label check', ['23:20:00,00'], 2517480), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['23:59:59;29'], 2589407), ('normal control', ['24:00:00:31'], None), ('normal control', ['09:11:60.03'], None), ('normal control', ['09:59:01.03'], 1077153)], [('regression: nonexistent label check', ['09:11:59,01'], 992579), ('regression variant: nonexistent label check', ['09:01:59;00'], 974596), ('partial repair probe: nonexistent label check', ['23:10:00,01'], 2499499), ('partial repair variant: nonexistent label check', ['23:10:00;00'], 2499498), ('boundary control', ['01:00:00;00'], 107892), ('boundary control', ['00:01:00;02'], 1800), ('normal control', ['24:20:59,31'], None), ('normal control', ['00:01:01;03'], 1831), ('normal control', ['23:60:00.01'], None)], [('regression: nonexistent label check', ['01:01:59,00'], 111460), ('regression variant: nonexistent label check', ['01:11:59;01'], 129443), ('partial repair probe: nonexistent label check', ['00:20:00,00'], 35964), ('partial repair variant: nonexistent label check', ['01:10:00;01'], 125875), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['01:11:59:31'], None), ('normal control', ['00:20:60;03'], None), ('normal control', ['01:20:60;00'], None)], [('regression: nonexistent label check', ['01:11:01.00'], 127702), ('regression variant: nonexistent label check', ['09:01:01;01'], 972857), ('partial repair probe: nonexistent label check', ['23:10:00,00'], 2499498), ('partial repair variant: nonexistent label check', ['23:10:00,01'], 2499499), ('boundary control', ['23:59:59;29'], 2589407), ('boundary control', ['01:00:00;00'], 107892), ('normal control', ['09:00:01.02'], 971060), ('normal control', ['01:11:01;30'], None), ('normal control', ['01:59:01;29'], 214043)]]
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)

prompt:
Valid labels such as 00:01:05;00 are refused.

Parse HH:MM:SS;FF drop-frame 29.97 labels (the last separator may be ";", "," or "."). Labels ;00 and ;01 at second 00 of minutes not divisible by 10 do not exist and return None, as do out-of-range fields (hours 0-23, frames 0-29). Frame count = nominal 30 fps count minus 2 per elapsed minute except every tenth minute.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;,.](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>23 or mi>59 or s>59:
        return None
    if f>29:
        return None
    if s==0 and f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(mi-mi//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: dropped frame total', ['01:00:00;00'], 107892), ('regression variant: dropped frame total', ['01:09:59;03'], 125847), ('partial repair probe: dropped frame total', ['00:01:59;01'], 3569), ('partial repair variant: dropped frame total', ['01:59:01;29'], 214043), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:10:00;00'], 17982), ('normal control', ['00:00:59;29'], 1799), ('normal control', ['24:01:01.01'], None), ('normal control', ['00:60:01:01'], None)], [('regression: dropped frame total', ['23:59:59;29'], 2589407), ('regression variant: dropped frame total', ['23:11:59;00'], 2503066), ('partial repair probe: dropped frame total', ['09:59:01.03'], 1077153), ('partial repair variant: dropped frame total', ['23:09:00;15'], 2497713), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['09:11:60.03'], None), ('normal control', ['00:59:00;31'], None), ('normal control', ['01:60:00,02'], None)], [('regression: dropped frame total', ['23:00:00.02'], 2481518), ('regression variant: dropped frame total', ['09:01:00;03'], 972829), ('partial repair probe: dropped frame total', ['00:11:00.03'], 19783), ('partial repair variant: dropped frame total', ['01:01:00,02'], 109692), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['23:59:60,00'], None), ('normal control', ['01:59:00;01'], None), ('normal control', ['09:60:00:31'], None)], [('regression: dropped frame total', ['09:59:01.03'], 1077153), ('regression variant: dropped frame total', ['09:00:01.02'], 971060), ('partial repair probe: dropped frame total', ['01:09:59;03'], 125847), ('partial repair variant: dropped frame total', ['01:11:01;29'], 127731), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:10:00;00'], 17982), ('normal control', ['01:11:01;30'], None), ('normal control', ['24:00:01.30'], None), ('normal control', ['23:00:01:29'], None)], [('regression: dropped frame total', ['23:10:01.01'], 2499529), ('regression variant: dropped frame total', ['01:59:01;29'], 214043), ('partial repair probe: dropped frame total', ['00:01:01;03'], 1831), ('partial repair variant: dropped frame total', ['23:09:00,15'], 2497713), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['23:09:00.00'], None), ('normal control', ['24:10:00,02'], None), ('normal control', ['00:60:59.29'], None)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;,.](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>23 or mi>59 or s>59:
        return None
    if f>29:
        return None
    if s==0 and f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-(tm+9)//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: dropped frame total', ['01:00:00;00'], 107892), ('regression variant: dropped frame total', ['01:09:59;03'], 125847), ('partial repair probe: dropped frame total', ['00:01:59;01'], 3569), ('partial repair variant: dropped frame total', ['01:59:01;29'], 214043), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:10:00;00'], 17982), ('normal control', ['00:00:59;29'], 1799), ('normal control', ['24:01:01.01'], None), ('normal control', ['00:60:01:01'], None)], [('regression: dropped frame total', ['23:59:59;29'], 2589407), ('regression variant: dropped frame total', ['23:11:59;00'], 2503066), ('partial repair probe: dropped frame total', ['09:59:01.03'], 1077153), ('partial repair variant: dropped frame total', ['23:09:00;15'], 2497713), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['09:11:60.03'], None), ('normal control', ['00:59:00;31'], None), ('normal control', ['01:60:00,02'], None)], [('regression: dropped frame total', ['23:00:00.02'], 2481518), ('regression variant: dropped frame total', ['09:01:00;03'], 972829), ('partial repair probe: dropped frame total', ['00:11:00.03'], 19783), ('partial repair variant: dropped frame total', ['01:01:00,02'], 109692), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['23:59:60,00'], None), ('normal control', ['01:59:00;01'], None), ('normal control', ['09:60:00:31'], None)], [('regression: dropped frame total', ['09:59:01.03'], 1077153), ('regression variant: dropped frame total', ['09:00:01.02'], 971060), ('partial repair probe: dropped frame total', ['01:09:59;03'], 125847), ('partial repair variant: dropped frame total', ['01:11:01;29'], 127731), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:10:00;00'], 17982), ('normal control', ['01:11:01;30'], None), ('normal control', ['24:00:01.30'], None), ('normal control', ['23:00:01:29'], None)], [('regression: dropped frame total', ['23:10:01.01'], 2499529), ('regression variant: dropped frame total', ['01:59:01;29'], 214043), ('partial repair probe: dropped frame total', ['00:01:01;03'], 1831), ('partial repair variant: dropped frame total', ['23:09:00,15'], 2497713), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['23:09:00.00'], None), ('normal control', ['24:10:00,02'], None), ('normal control', ['00:60:59.29'], None)]]
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)

prompt:
Frame counts after the first hour are too high by 108 frames per hour.

Parse HH:MM:SS;FF drop-frame 29.97 labels (the last separator may be ";", "," or "."). Labels ;00 and ;01 at second 00 of minutes not divisible by 10 do not exist and return None, as do out-of-range fields (hours 0-23, frames 0-29). Frame count = nominal 30 fps count minus 2 per elapsed minute except every tenth minute.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;,.](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if mi>59 or s>59:
        return None
    if f>29:
        return None
    if s==0 and f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-tm//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: hour range', ['24:01:01.01'], None), ('regression variant: hour range', ['24:01:00,03'], None), ('partial repair probe: hour range', ['24:10:00,02'], None), ('partial repair variant: hour range', ['24:20:00.01'], None), ('boundary control', ['00:01:00;02'], 1800), ('boundary control', ['01:00:00;00'], 107892), ('normal control', ['00:01:00;00'], None), ('normal control', ['00:00:59;29'], 1799), ('normal control', ['23:59:59;29'], 2589407)], [('regression: hour range', ['24:59:01.01'], None), ('regression variant: hour range', ['24:11:00;29'], None), ('partial repair probe: hour range', ['24:59:01;03'], None), ('partial repair variant: hour range', ['24:20:01;01'], None), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['24:00:00:31'], None), ('normal control', ['09:11:60.03'], None), ('normal control', ['00:01:59;01'], 3569)], [('regression: hour range', ['24:10:00,02'], None), ('regression variant: hour range', ['24:01:01;29'], None), ('partial repair probe: hour range', ['24:20:59;15'], None), ('partial repair variant: hour range', ['24:11:00,15'], None), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['23:59:59;29'], 2589407), ('normal control', ['23:10:01.01'], 2499529), ('normal control', ['01:09:59;03'], 125847), ('normal control', ['00:59:00;31'], None)], [('regression: hour range', ['24:59:01;03'], None), ('regression variant: hour range', ['24:09:01;03'], None), ('partial repair probe: hour range', ['24:01:00,03'], None), ('partial repair variant: hour range', ['24:09:00;03'], None), ('boundary control', ['01:00:00;00'], 107892), ('boundary control', ['00:01:00;02'], 1800), ('normal control', ['01:60:00,02'], None), ('normal control', ['01:01:59;30'], None), ('normal control', ['00:20:60;03'], None)], [('regression: hour range', ['24:20:59;15'], None), ('regression variant: hour range', ['24:20:00.01'], None), ('partial repair probe: hour range', ['24:11:00;29'], None), ('partial repair variant: hour range', ['24:09:59;02'], None), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['01:20:60;00'], None), ('normal control', ['09:60:00:31'], None), ('normal control', ['01:11:01;30'], None)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import re
N = 1
observations = []
def solve(tc):
    m=re.fullmatch(r'(\d{2}):(\d{2}):(\d{2})[;,.](\d{2})',tc)
    if not m:
        return None
    h,mi,s,f=map(int,m.groups())
    if h>24 or mi>59 or s>59:
        return None
    if f>29:
        return None
    if s==0 and f<2 and mi%10!=0:
        return None
    tm=h*60+mi
    return (tm*60+s)*30+f-2*(tm-tm//10)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: hour range', ['24:01:01.01'], None), ('regression variant: hour range', ['24:01:00,03'], None), ('partial repair probe: hour range', ['24:10:00,02'], None), ('partial repair variant: hour range', ['24:20:00.01'], None), ('boundary control', ['00:01:00;02'], 1800), ('boundary control', ['01:00:00;00'], 107892), ('normal control', ['00:01:00;00'], None), ('normal control', ['00:00:59;29'], 1799), ('normal control', ['23:59:59;29'], 2589407)], [('regression: hour range', ['24:59:01.01'], None), ('regression variant: hour range', ['24:11:00;29'], None), ('partial repair probe: hour range', ['24:59:01;03'], None), ('partial repair variant: hour range', ['24:20:01;01'], None), ('boundary control', ['00:01:00;00'], None), ('boundary control', ['00:00:59;29'], 1799), ('normal control', ['24:00:00:31'], None), ('normal control', ['09:11:60.03'], None), ('normal control', ['00:01:59;01'], 3569)], [('regression: hour range', ['24:10:00,02'], None), ('regression variant: hour range', ['24:01:01;29'], None), ('partial repair probe: hour range', ['24:20:59;15'], None), ('partial repair variant: hour range', ['24:11:00,15'], None), ('boundary control', ['00:10:00;00'], 17982), ('boundary control', ['23:59:59;29'], 2589407), ('normal control', ['23:10:01.01'], 2499529), ('normal control', ['01:09:59;03'], 125847), ('normal control', ['00:59:00;31'], None)], [('regression: hour range', ['24:59:01;03'], None), ('regression variant: hour range', ['24:09:01;03'], None), ('partial repair probe: hour range', ['24:01:00,03'], None), ('partial repair variant: hour range', ['24:09:00;03'], None), ('boundary control', ['01:00:00;00'], 107892), ('boundary control', ['00:01:00;02'], 1800), ('normal control', ['01:60:00,02'], None), ('normal control', ['01:01:59;30'], None), ('normal control', ['00:20:60;03'], None)], [('regression: hour range', ['24:20:59;15'], None), ('regression variant: hour range', ['24:20:00.01'], None), ('partial repair probe: hour range', ['24:11:00;29'], None), ('partial repair variant: hour range', ['24:09:59;02'], None), ('boundary control', ['00:00:59;29'], 1799), ('boundary control', ['00:01:00;00'], None), ('normal control', ['01:20:60;00'], None), ('normal control', ['09:60:00:31'], None), ('normal control', ['01:11:01;30'], None)]]
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)

prompt:
Labels at hour 24 or later produce counts beyond the broadcast day.

Parse HH:MM:SS;FF drop-frame 29.97 labels (the last separator may be ";", "," or "."). Labels ;00 and ;01 at second 00 of minutes not divisible by 10 do not exist and return None, as do out-of-range fields (hours 0-23, frames 0-29). Frame count = nominal 30 fps count minus 2 per elapsed minute except every tenth minute.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,18000)
    add=18*d
    if mrem>=2:
        add+=2*((mrem-2)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1800%60
    hh=n//108000
    return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: ten-minute block size', [17982], '00:10:00;00'), ('regression variant: ten-minute block size', [1183387], '10:58:05;23'), ('partial repair probe: ten-minute block size', [985344], '09:07:57;20'), ('partial repair variant: ten-minute block size', [793007], '07:20:59;29'), ('boundary control', [1800], '00:01:00;02'), ('boundary control', [0], '00:00:00;00'), ('normal control', [1799], '00:00:59;29'), ('normal control', [-1], None), ('normal control', [107891], '00:59:59;29')], [('regression: ten-minute block size', [2589407], '23:59:59;29'), ('regression variant: ten-minute block size', [2576030], '23:52:33;18'), ('partial repair probe: ten-minute block size', [1190345], '11:01:57;25'), ('partial repair variant: ten-minute block size', [1688437], '15:38:57;17'), ('boundary control', [1799], '00:00:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [683315], '06:19:59;29'), ('normal control', [666705], '06:10:45;21')], [('regression: ten-minute block size', [5138128], '23:37:22;12'), ('regression variant: ten-minute block size', [2535623], '23:30:05;11'), ('partial repair probe: ten-minute block size', [1073449], '09:56:57;13'), ('partial repair variant: ten-minute block size', [1264068], '11:42:57;22'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [1800], '00:01:00;02'), ('normal control', [3599], '00:02:00;03'), ('normal control', [431569], '04:00:00;01'), ('normal control', [737264], '06:50:00;02')], [('regression: ten-minute block size', [703099], '06:31:00;03'), ('regression variant: ten-minute block size', [757044], '07:01:00;02'), ('partial repair probe: ten-minute block size', [4738204], '19:54:58;06'), ('partial repair variant: ten-minute block size', [489111], '04:31:59;29'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [1799], '00:00:59;29'), ('normal control', [3598], '00:02:00;02'), ('normal control', [1092788], '10:07:42;22'), ('normal control', [-464827], None)], [('regression: ten-minute block size', [916013], '08:29:24;11'), ('regression variant: ten-minute block size', [1508377], '13:58:49;17'), ('partial repair probe: ten-minute block size', [451349], '04:10:59;29'), ('partial repair variant: ten-minute block size', [235565], '02:10:59;29'), ('boundary control', [-1], None), ('boundary control', [107892], '01:00:00;00'), ('normal control', [143856], '01:20:00;00'), ('normal control', [449552], '04:10:00;02'), ('normal control', [557441], '05:09:59;29')]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17980)
    add=18*d
    if mrem>=2:
        add+=2*((mrem-2)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1800%60
    hh=n//108000
    return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: ten-minute block size', [17982], '00:10:00;00'), ('regression variant: ten-minute block size', [1183387], '10:58:05;23'), ('partial repair probe: ten-minute block size', [985344], '09:07:57;20'), ('partial repair variant: ten-minute block size', [793007], '07:20:59;29'), ('boundary control', [1800], '00:01:00;02'), ('boundary control', [0], '00:00:00;00'), ('normal control', [1799], '00:00:59;29'), ('normal control', [-1], None), ('normal control', [107891], '00:59:59;29')], [('regression: ten-minute block size', [2589407], '23:59:59;29'), ('regression variant: ten-minute block size', [2576030], '23:52:33;18'), ('partial repair probe: ten-minute block size', [1190345], '11:01:57;25'), ('partial repair variant: ten-minute block size', [1688437], '15:38:57;17'), ('boundary control', [1799], '00:00:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [683315], '06:19:59;29'), ('normal control', [666705], '06:10:45;21')], [('regression: ten-minute block size', [5138128], '23:37:22;12'), ('regression variant: ten-minute block size', [2535623], '23:30:05;11'), ('partial repair probe: ten-minute block size', [1073449], '09:56:57;13'), ('partial repair variant: ten-minute block size', [1264068], '11:42:57;22'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [1800], '00:01:00;02'), ('normal control', [3599], '00:02:00;03'), ('normal control', [431569], '04:00:00;01'), ('normal control', [737264], '06:50:00;02')], [('regression: ten-minute block size', [703099], '06:31:00;03'), ('regression variant: ten-minute block size', [757044], '07:01:00;02'), ('partial repair probe: ten-minute block size', [4738204], '19:54:58;06'), ('partial repair variant: ten-minute block size', [489111], '04:31:59;29'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [1799], '00:00:59;29'), ('normal control', [3598], '00:02:00;02'), ('normal control', [1092788], '10:07:42;22'), ('normal control', [-464827], None)], [('regression: ten-minute block size', [916013], '08:29:24;11'), ('regression variant: ten-minute block size', [1508377], '13:58:49;17'), ('partial repair probe: ten-minute block size', [451349], '04:10:59;29'), ('partial repair variant: ten-minute block size', [235565], '02:10:59;29'), ('boundary control', [-1], None), ('boundary control', [107892], '01:00:00;00'), ('normal control', [143856], '01:20:00;00'), ('normal control', [449552], '04:10:00;02'), ('normal control', [557441], '05:09:59;29')]]
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)

prompt:
Labels drift by several frames per hour relative to the frame count.

Convert a non-negative frame count (negative counts return None; counts wrap to the 2589408-frame drop-frame day) to an HH:MM:SS;FF 29.97 drop-frame label: 18 labels are skipped per 10-minute block of 17982 frames, and labels ;00/;01 are skipped at each minute not divisible by ten.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17982)
    add=18*d
    if mrem>=2:
        add+=2*(mrem//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1800%60
    hh=n//108000
    return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: in-block minute offset', [1799], '00:00:59;29'), ('regression variant: in-block minute offset', [17981], '00:09:59;29'), ('partial repair probe: in-block minute offset', [2589407], '23:59:59;29'), ('partial repair variant: in-block minute offset', [557441], '05:09:59;29'), ('boundary control', [1800], '00:01:00;02'), ('boundary control', [0], '00:00:00;00'), ('normal control', [17982], '00:10:00;00'), ('normal control', [-1], None), ('normal control', [52594], '00:29:14;28')], [('regression: in-block minute offset', [107891], '00:59:59;29'), ('regression variant: in-block minute offset', [287711], '02:39:59;29'), ('partial repair probe: in-block minute offset', [683315], '06:19:59;29'), ('partial repair variant: in-block minute offset', [757043], '07:00:59;29'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [3372691], '07:15:35;17'), ('normal control', [2589408], '00:00:00;00'), ('normal control', [916013], '08:29:24;11')], [('regression: in-block minute offset', [2589407], '23:59:59;29'), ('regression variant: in-block minute offset', [3597], '00:01:59;29'), ('partial repair probe: in-block minute offset', [165435], '01:31:59;29'), ('partial repair variant: in-block minute offset', [125873], '01:09:59;29'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [1800], '00:01:00;02'), ('normal control', [2576030], '23:52:33;18'), ('normal control', [1346634], '12:28:52;22'), ('normal control', [3599], '00:02:00;03')], [('regression: in-block minute offset', [683315], '06:19:59;29'), ('regression variant: in-block minute offset', [451349], '04:10:59;29'), ('partial repair probe: in-block minute offset', [17981], '00:09:59;29'), ('partial repair variant: in-block minute offset', [793007], '07:20:59;29'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [17982], '00:10:00;00'), ('normal control', [3470210], '08:09:49;14'), ('normal control', [544816], '05:02:58;20'), ('normal control', [431569], '04:00:00;01')], [('regression: in-block minute offset', [165435], '01:31:59;29'), ('regression variant: in-block minute offset', [557441], '05:09:59;29'), ('partial repair probe: in-block minute offset', [287711], '02:39:59;29'), ('partial repair variant: in-block minute offset', [143855], '01:19:59;29'), ('boundary control', [-1], None), ('boundary control', [107892], '01:00:00;00'), ('normal control', [737264], '06:50:00;02'), ('normal control', [701299], '06:30:00;01'), ('normal control', [1874662], '17:22:31;08')]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17982)
    add=18*d
    if mrem>=2:
        add+=2*((mrem-1)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1800%60
    hh=n//108000
    return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: in-block minute offset', [1799], '00:00:59;29'), ('regression variant: in-block minute offset', [17981], '00:09:59;29'), ('partial repair probe: in-block minute offset', [2589407], '23:59:59;29'), ('partial repair variant: in-block minute offset', [557441], '05:09:59;29'), ('boundary control', [1800], '00:01:00;02'), ('boundary control', [0], '00:00:00;00'), ('normal control', [17982], '00:10:00;00'), ('normal control', [-1], None), ('normal control', [52594], '00:29:14;28')], [('regression: in-block minute offset', [107891], '00:59:59;29'), ('regression variant: in-block minute offset', [287711], '02:39:59;29'), ('partial repair probe: in-block minute offset', [683315], '06:19:59;29'), ('partial repair variant: in-block minute offset', [757043], '07:00:59;29'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [3372691], '07:15:35;17'), ('normal control', [2589408], '00:00:00;00'), ('normal control', [916013], '08:29:24;11')], [('regression: in-block minute offset', [2589407], '23:59:59;29'), ('regression variant: in-block minute offset', [3597], '00:01:59;29'), ('partial repair probe: in-block minute offset', [165435], '01:31:59;29'), ('partial repair variant: in-block minute offset', [125873], '01:09:59;29'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [1800], '00:01:00;02'), ('normal control', [2576030], '23:52:33;18'), ('normal control', [1346634], '12:28:52;22'), ('normal control', [3599], '00:02:00;03')], [('regression: in-block minute offset', [683315], '06:19:59;29'), ('regression variant: in-block minute offset', [451349], '04:10:59;29'), ('partial repair probe: in-block minute offset', [17981], '00:09:59;29'), ('partial repair variant: in-block minute offset', [793007], '07:20:59;29'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [17982], '00:10:00;00'), ('normal control', [3470210], '08:09:49;14'), ('normal control', [544816], '05:02:58;20'), ('normal control', [431569], '04:00:00;01')], [('regression: in-block minute offset', [165435], '01:31:59;29'), ('regression variant: in-block minute offset', [557441], '05:09:59;29'), ('partial repair probe: in-block minute offset', [287711], '02:39:59;29'), ('partial repair variant: in-block minute offset', [143855], '01:19:59;29'), ('boundary control', [-1], None), ('boundary control', [107892], '01:00:00;00'), ('normal control', [737264], '06:50:00;02'), ('normal control', [701299], '06:30:00;01'), ('normal control', [1874662], '17:22:31;08')]]
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)

prompt:
Labels near each minute boundary skip too early.

Convert a non-negative frame count (negative counts return None; counts wrap to the 2589408-frame drop-frame day) to an HH:MM:SS;FF 29.97 drop-frame label: 18 labels are skipped per 10-minute block of 17982 frames, and labels ;00/;01 are skipped at each minute not divisible by ten.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17982)
    add=20*d
    if mrem>=2:
        add+=2*((mrem-2)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1800%60
    hh=n//108000
    return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: block label skip', [17982], '00:10:00;00'), ('regression variant: block label skip', [3372691], '07:15:35;17'), ('partial repair probe: block label skip', [1799], '00:00:59;29'), ('partial repair variant: block label skip', [683315], '06:19:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-464827], None), ('normal control', [-1153089], None)], [('regression: block label skip', [107892], '01:00:00;00'), ('regression variant: block label skip', [683315], '06:19:59;29'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [5138128], '23:37:22;12'), ('boundary control', [-1], None), ('normal control', [-180902], None), ('normal control', [-1007831], None), ('normal control', [-2704966], None)], [('regression: block label skip', [107891], '00:59:59;29'), ('regression variant: block label skip', [5138128], '23:37:22;12'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [2589408], '00:00:00;00'), ('boundary control', [-1], None), ('normal control', [-1440574], None), ('normal control', [-2414851], None), ('normal control', [-1406281], None)], [('regression: block label skip', [2589407], '23:59:59;29'), ('regression variant: block label skip', [703099], '06:31:00;03'), ('partial repair probe: block label skip', [107891], '00:59:59;29'), ('partial repair variant: block label skip', [916013], '08:29:24;11'), ('boundary control', [-1], None), ('normal control', [-1130649], None), ('normal control', [-2542944], None), ('normal control', [-1108369], None)], [('regression: block label skip', [52594], '00:29:14;28'), ('regression variant: block label skip', [916013], '08:29:24;11'), ('partial repair probe: block label skip', [2589407], '23:59:59;29'), ('partial repair variant: block label skip', [1183387], '10:58:05;23'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-745831], None), ('normal control', [-1976708], None)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17982)
    add=18*d+2
    if mrem>=2:
        add+=2*((mrem-2)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1800%60
    hh=n//108000
    return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: block label skip', [17982], '00:10:00;00'), ('regression variant: block label skip', [3372691], '07:15:35;17'), ('partial repair probe: block label skip', [1799], '00:00:59;29'), ('partial repair variant: block label skip', [683315], '06:19:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-464827], None), ('normal control', [-1153089], None)], [('regression: block label skip', [107892], '01:00:00;00'), ('regression variant: block label skip', [683315], '06:19:59;29'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [5138128], '23:37:22;12'), ('boundary control', [-1], None), ('normal control', [-180902], None), ('normal control', [-1007831], None), ('normal control', [-2704966], None)], [('regression: block label skip', [107891], '00:59:59;29'), ('regression variant: block label skip', [5138128], '23:37:22;12'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [2589408], '00:00:00;00'), ('boundary control', [-1], None), ('normal control', [-1440574], None), ('normal control', [-2414851], None), ('normal control', [-1406281], None)], [('regression: block label skip', [2589407], '23:59:59;29'), ('regression variant: block label skip', [703099], '06:31:00;03'), ('partial repair probe: block label skip', [107891], '00:59:59;29'), ('partial repair variant: block label skip', [916013], '08:29:24;11'), ('boundary control', [-1], None), ('normal control', [-1130649], None), ('normal control', [-2542944], None), ('normal control', [-1108369], None)], [('regression: block label skip', [52594], '00:29:14;28'), ('regression variant: block label skip', [916013], '08:29:24;11'), ('partial repair probe: block label skip', [2589407], '23:59:59;29'), ('partial repair variant: block label skip', [1183387], '10:58:05;23'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-745831], None), ('normal control', [-1976708], None)]]
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)

prompt:
Labels after the first ten minutes are two frames late per block.

Convert a non-negative frame count (negative counts return None; counts wrap to the 2589408-frame drop-frame day) to an HH:MM:SS;FF 29.97 drop-frame label: 18 labels are skipped per 10-minute block of 17982 frames, and labels ;00/;01 are skipped at each minute not divisible by ten.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17982)
    add=18*d
    if mrem>=2:
        add+=2*((mrem-2)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1798%60
    hh=n//108000
    return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: minute field', [1799], '00:00:59;29'), ('regression variant: minute field', [5138128], '23:37:22;12'), ('partial repair probe: minute field', [2589407], '23:59:59;29'), ('partial repair variant: minute field', [1183387], '10:58:05;23'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [107892], '01:00:00;00'), ('normal control', [-2], None), ('normal control', [-1641352], None)], [('regression: minute field', [107891], '00:59:59;29'), ('regression variant: minute field', [2576030], '23:52:33;18'), ('partial repair probe: minute field', [52594], '00:29:14;28'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [17982], '00:10:00;00'), ('normal control', [35964], '00:20:00;00'), ('normal control', [701299], '06:30:00;01'), ('normal control', [-464827], None)], [('regression: minute field', [2589407], '23:59:59;29'), ('regression variant: minute field', [666705], '06:10:45;21'), ('partial repair probe: minute field', [3372691], '07:15:35;17'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [107892], '01:00:00;00'), ('normal control', [143856], '01:20:00;00'), ('normal control', [2], '00:00:00;02'), ('normal control', [107893], '01:00:00;01')], [('regression: minute field', [3372691], '07:15:35;17'), ('regression variant: minute field', [2535623], '23:30:05;11'), ('partial repair probe: minute field', [683315], '06:19:59;29'), ('partial repair variant: minute field', [757044], '07:01:00;02'), ('boundary control', [-1], None), ('boundary control', [0], '00:00:00;00'), ('normal control', [485515], '04:30:00;01'), ('normal control', [179822], '01:40:00;02'), ('normal control', [629371], '05:50:00;01')], [('regression: minute field', [683315], '06:19:59;29'), ('regression variant: minute field', [1346634], '12:28:52;22'), ('partial repair probe: minute field', [5138128], '23:37:22;12'), ('partial repair variant: minute field', [3599], '00:02:00;03'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [575425], '05:20:00;01'), ('normal control', [-2413730], None), ('normal control', [-1030669], None)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17982)
    add=18*d
    if mrem>=2:
        add+=2*((mrem-2)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//17982*10%60
    hh=n//108000
    return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: minute field', [1799], '00:00:59;29'), ('regression variant: minute field', [5138128], '23:37:22;12'), ('partial repair probe: minute field', [2589407], '23:59:59;29'), ('partial repair variant: minute field', [1183387], '10:58:05;23'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [107892], '01:00:00;00'), ('normal control', [-2], None), ('normal control', [-1641352], None)], [('regression: minute field', [107891], '00:59:59;29'), ('regression variant: minute field', [2576030], '23:52:33;18'), ('partial repair probe: minute field', [52594], '00:29:14;28'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [17982], '00:10:00;00'), ('normal control', [35964], '00:20:00;00'), ('normal control', [701299], '06:30:00;01'), ('normal control', [-464827], None)], [('regression: minute field', [2589407], '23:59:59;29'), ('regression variant: minute field', [666705], '06:10:45;21'), ('partial repair probe: minute field', [3372691], '07:15:35;17'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [107892], '01:00:00;00'), ('normal control', [143856], '01:20:00;00'), ('normal control', [2], '00:00:00;02'), ('normal control', [107893], '01:00:00;01')], [('regression: minute field', [3372691], '07:15:35;17'), ('regression variant: minute field', [2535623], '23:30:05;11'), ('partial repair probe: minute field', [683315], '06:19:59;29'), ('partial repair variant: minute field', [757044], '07:01:00;02'), ('boundary control', [-1], None), ('boundary control', [0], '00:00:00;00'), ('normal control', [485515], '04:30:00;01'), ('normal control', [179822], '01:40:00;02'), ('normal control', [629371], '05:50:00;01')], [('regression: minute field', [683315], '06:19:59;29'), ('regression variant: minute field', [1346634], '12:28:52;22'), ('partial repair probe: minute field', [5138128], '23:37:22;12'), ('partial repair variant: minute field', [3599], '00:02:00;03'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [575425], '05:20:00;01'), ('normal control', [-2413730], None), ('normal control', [-1030669], None)]]
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)

prompt:
Minute fields jump ahead late in the hour.

Convert a non-negative frame count (negative counts return None; counts wrap to the 2589408-frame drop-frame day) to an HH:MM:SS;FF 29.97 drop-frame label: 18 labels are skipped per 10-minute block of 17982 frames, and labels ;00/;01 are skipped at each minute not divisible by ten.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17982)
    add=18*d
    if mrem>=2:
        add+=2*((mrem-2)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1800%60
    hh=n//108000
    return '%02d:%02d:%02d:%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: drop separator', [1800], '00:01:00;02'), ('regression variant: drop separator', [107891], '00:59:59;29'), ('partial repair probe: drop separator', [1799], '00:00:59;29'), ('partial repair variant: drop separator', [683315], '06:19:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-464827], None), ('normal control', [-1153089], None)], [('regression: drop separator', [17982], '00:10:00;00'), ('regression variant: drop separator', [2589407], '23:59:59;29'), ('partial repair probe: drop separator', [107892], '01:00:00;00'), ('partial repair variant: drop separator', [5138128], '23:37:22;12'), ('boundary control', [-1], None), ('normal control', [-180902], None), ('normal control', [-1007831], None), ('normal control', [-2704966], None)], [('regression: drop separator', [1799], '00:00:59;29'), ('regression variant: drop separator', [52594], '00:29:14;28'), ('partial repair probe: drop separator', [0], '00:00:00;00'), ('partial repair variant: drop separator', [2589408], '00:00:00;00'), ('boundary control', [-1], None), ('normal control', [-1440574], None), ('normal control', [-2414851], None), ('normal control', [-1406281], None)], [('regression: drop separator', [107892], '01:00:00;00'), ('regression variant: drop separator', [3372691], '07:15:35;17'), ('partial repair probe: drop separator', [107891], '00:59:59;29'), ('partial repair variant: drop separator', [703099], '06:31:00;03'), ('boundary control', [-1], None), ('normal control', [-1130649], None), ('normal control', [-2542944], None), ('normal control', [-1108369], None)], [('regression: drop separator', [0], '00:00:00;00'), ('regression variant: drop separator', [683315], '06:19:59;29'), ('partial repair probe: drop separator', [2589407], '23:59:59;29'), ('partial repair variant: drop separator', [916013], '08:29:24;11'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-745831], None), ('normal control', [-1976708], None)]]
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames):
    if frames<0:
        return None
    frames%=2589408
    d,mrem=divmod(frames,17982)
    add=18*d
    if mrem>=2:
        add+=2*((mrem-2)//1798)
    n=frames+add
    ff=n%30
    ss=n//30%60
    mm=n//1800%60
    hh=n//108000
    return '%02d:%02d:%02d.%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: drop separator', [1800], '00:01:00;02'), ('regression variant: drop separator', [107891], '00:59:59;29'), ('partial repair probe: drop separator', [1799], '00:00:59;29'), ('partial repair variant: drop separator', [683315], '06:19:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-464827], None), ('normal control', [-1153089], None)], [('regression: drop separator', [17982], '00:10:00;00'), ('regression variant: drop separator', [2589407], '23:59:59;29'), ('partial repair probe: drop separator', [107892], '01:00:00;00'), ('partial repair variant: drop separator', [5138128], '23:37:22;12'), ('boundary control', [-1], None), ('normal control', [-180902], None), ('normal control', [-1007831], None), ('normal control', [-2704966], None)], [('regression: drop separator', [1799], '00:00:59;29'), ('regression variant: drop separator', [52594], '00:29:14;28'), ('partial repair probe: drop separator', [0], '00:00:00;00'), ('partial repair variant: drop separator', [2589408], '00:00:00;00'), ('boundary control', [-1], None), ('normal control', [-1440574], None), ('normal control', [-2414851], None), ('normal control', [-1406281], None)], [('regression: drop separator', [107892], '01:00:00;00'), ('regression variant: drop separator', [3372691], '07:15:35;17'), ('partial repair probe: drop separator', [107891], '00:59:59;29'), ('partial repair variant: drop separator', [703099], '06:31:00;03'), ('boundary control', [-1], None), ('normal control', [-1130649], None), ('normal control', [-2542944], None), ('normal control', [-1108369], None)], [('regression: drop separator', [0], '00:00:00;00'), ('regression variant: drop separator', [683315], '06:19:59;29'), ('partial repair probe: drop separator', [2589407], '23:59:59;29'), ('partial repair variant: drop separator', [916013], '08:29:24;11'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-745831], None), ('normal control', [-1976708], None)]]
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)

prompt:
Drop-frame labels are indistinguishable from non-drop labels downstream.

Convert a non-negative frame count (negative counts return None; counts wrap to the 2589408-frame drop-frame day) to an HH:MM:SS;FF 29.97 drop-frame label: 18 labels are skipped per 10-minute block of 17982 frames, and labels ;00/;01 are skipped at each minute not divisible by ten.

split: open-access


prompt:
The label after ;29 is ;30 instead of the next second.

Given a valid drop-frame label at rate "29.97" (nominal 30, drop 2) or "59.94" (nominal 60, drop 4), return the next label: frames carry into seconds at the nominal rate, seconds into minutes, minutes into hours (wrapping at 24); on entering a new minute not divisible by 10 the first drop labels are skipped.

split: open-access


prompt:
Labels with a seconds field of 60 appear.

Given a valid drop-frame label at rate "29.97" (nominal 30, drop 2) or "59.94" (nominal 60, drop 4), return the next label: frames carry into seconds at the nominal rate, seconds into minutes, minutes into hours (wrapping at 24); on entering a new minute not divisible by 10 the first drop labels are skipped.

split: open-access


prompt:
The first label of a new minute is a label that should have been dropped.

Given a valid drop-frame label at rate "29.97" (nominal 30, drop 2) or "59.94" (nominal 60, drop 4), return the next label: frames carry into seconds at the nominal rate, seconds into minutes, minutes into hours (wrapping at 24); on entering a new minute not divisible by 10 the first drop labels are skipped.

split: open-access


prompt:
Labels are skipped at minutes 10, 20 and 30 but kept at the other minutes.

Given a valid drop-frame label at rate "29.97" (nominal 30, drop 2) or "59.94" (nominal 60, drop 4), return the next label: frames carry into seconds at the nominal rate, seconds into minutes, minutes into hours (wrapping at 24); on entering a new minute not divisible by 10 the first drop labels are skipped.

split: open-access


prompt:
The label after 00:59:59;29 shows minute 60.

Given a valid drop-frame label at rate "29.97" (nominal 30, drop 2) or "59.94" (nominal 60, drop 4), return the next label: frames carry into seconds at the nominal rate, seconds into minutes, minutes into hours (wrapping at 24); on entering a new minute not divisible by 10 the first drop labels are skipped.

split: open-access


prompt:
Adding frames that sum exactly to one second loses that second.

Add two valid non-drop labels at integer fps field by field with carries (frames into seconds at fps, seconds into minutes at 60, minutes into hours at 60) and wrap hours modulo 24.

split: open-access


prompt:
PAL sums produce frame fields of 25 to 29.

Add two valid non-drop labels at integer fps field by field with carries (frames into seconds at fps, seconds into minutes at 60, minutes into hours at 60) and wrap hours modulo 24.

split: open-access


prompt:
Sums whose frames overflow lose a whole second.

Add two valid non-drop labels at integer fps field by field with carries (frames into seconds at fps, seconds into minutes at 60, minutes into hours at 60) and wrap hours modulo 24.

split: open-access


prompt:
Minute overflow never reaches the hour field.

Add two valid non-drop labels at integer fps field by field with carries (frames into seconds at fps, seconds into minutes at 60, minutes into hours at 60) and wrap hours modulo 24.

split: open-access


prompt:
Sums past midnight produce hours 24 and above.

Add two valid non-drop labels at integer fps field by field with carries (frames into seconds at fps, seconds into minutes at 60, minutes into hours at 60) and wrap hours modulo 24.

split: open-access


prompt:
Reverse motion effects get negative record durations.

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].

split: open-access


prompt:
Slow-motion events are a frame short on the record side.

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].

split: open-access


prompt:
Source clips that cross midnight yield negative or near-day record durations.

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].

split: open-access


prompt:
Record out labels past midnight show hours of 24 or more.

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].

split: open-access


prompt:
Record out labels are one frame early, colliding with the next event.

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].

split: open-access