{"abstract":"Labels at hour 24 are accepted and alias the following day.","category":"Broadcast timecode arithmetic","checks":9,"contract":"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.","evaluation_group":"w2-broadcast-timecode-arithmetic-ndf-parse","failed_approach":"Allowing any two-digit hour still accepts the invalid 24 to 98 range.","family":"w2-broadcast-timecode-arithmetic-ndf-parse-hour-field-bound","id":"FA-78346","implementations":{"attempt":{"sha256":"c3e3ef93bd381e98deefa67fdba40a61357de59dd524c5f8fb2d40c50ec28ed7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(tc, fps):\n    f=tc.split(':')\n    if len(f)!=4 or not all(len(x)==2 and x.isdigit() for x in f):\n        return None\n    h,m,s,fr=map(int,f)\n    if h>=99:\n        return None\n    if m>59 or s>59:\n        return None\n    if fr>=fps:\n        return None\n    return ((h*60+m)*60+s)*fps+fr\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hour field bound', ['24:00:00:00', 25], None), ('regression variant: hour field bound', ['24:00:59:25', 30], None), ('partial repair probe: hour field bound', ['24:59:59:24', 30], None), ('partial repair variant: hour field bound', ['24:59:59:23', 24], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['01:00:00;00', 30], None), ('normal control', ['23:59:59:24', 25], 2159999), ('normal control', ['1:59:59:24', 30], None), ('normal control', ['00:07:00.24', 25], None)], [('regression: hour field bound', ['24:59:59:23', 24], None), ('regression variant: hour field bound', ['24:59:00:00', 24], None), ('partial repair probe: hour field bound', ['24:00:00:00', 30], None), ('partial repair variant: hour field bound', ['24:59:59:24', 30], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('boundary control', ['00:00:00:00', 25], 0), ('normal control', ['01:00:00.00', 24], None), ('normal control', ['00:59:00.25', 25], None), ('normal control', ['24:07:60:30', 30], None)], [('regression: hour field bound', ['24:59:59:24', 30], None), ('regression variant: hour field bound', ['24:07:59:29', 30], None), ('partial repair probe: hour field bound', ['24:07:59:25', 30], None), ('partial repair variant: hour field bound', ['24:00:00:00', 30], None), ('boundary control', ['00:00:00:25', 25], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('normal control', ['00:07:60:30', 30], None), ('normal control', ['00:59:5:00', 25], None), ('normal control', ['01:59:59;25', 30], None)], [('regression: hour field bound', ['24:00:00:00', 30], None), ('regression variant: hour field bound', ['24:00:00:00', 25], None), ('partial repair probe: hour field bound', ['24:00:59:25', 30], None), ('partial repair variant: hour field bound', ['24:07:59:25', 30], None), ('boundary control', ['01:00:00;00', 30], None), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['00:00:59.29', 24], None), ('normal control', ['01:00:60:29', 24], None), ('normal control', ['00:07:60:25', 24], None)], [('regression: hour field bound', ['24:07:59:25', 30], None), ('regression variant: hour field bound', ['24:59:59:23', 24], None), ('partial repair probe: hour field bound', ['24:59:00:00', 24], None), ('partial repair variant: hour field bound', ['24:00:59:25', 30], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['01:00:00;00', 30], None), ('normal control', ['24:59:59:24', 24], None), ('normal control', ['99:60:59:25', 25], None), ('normal control', ['01:59:5.30', 30], None)]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"6bf663f65a0ac89e184d748fb6003f74ccc924bb419a31b3b9acb57ef4fe5b7f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(tc, fps):\n    f=tc.split(':')\n    if len(f)!=4 or not all(len(x)==2 and x.isdigit() for x in f):\n        return None\n    h,m,s,fr=map(int,f)\n    if h>24:\n        return None\n    if m>59 or s>59:\n        return None\n    if fr>=fps:\n        return None\n    return ((h*60+m)*60+s)*fps+fr\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hour field bound', ['24:00:00:00', 25], None), ('regression variant: hour field bound', ['24:00:59:25', 30], None), ('partial repair probe: hour field bound', ['24:59:59:24', 30], None), ('partial repair variant: hour field bound', ['24:59:59:23', 24], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['01:00:00;00', 30], None), ('normal control', ['23:59:59:24', 25], 2159999), ('normal control', ['1:59:59:24', 30], None), ('normal control', ['00:07:00.24', 25], None)], [('regression: hour field bound', ['24:59:59:23', 24], None), ('regression variant: hour field bound', ['24:59:00:00', 24], None), ('partial repair probe: hour field bound', ['24:00:00:00', 30], None), ('partial repair variant: hour field bound', ['24:59:59:24', 30], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('boundary control', ['00:00:00:00', 25], 0), ('normal control', ['01:00:00.00', 24], None), ('normal control', ['00:59:00.25', 25], None), ('normal control', ['24:07:60:30', 30], None)], [('regression: hour field bound', ['24:59:59:24', 30], None), ('regression variant: hour field bound', ['24:07:59:29', 30], None), ('partial repair probe: hour field bound', ['24:07:59:25', 30], None), ('partial repair variant: hour field bound', ['24:00:00:00', 30], None), ('boundary control', ['00:00:00:25', 25], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('normal control', ['00:07:60:30', 30], None), ('normal control', ['00:59:5:00', 25], None), ('normal control', ['01:59:59;25', 30], None)], [('regression: hour field bound', ['24:00:00:00', 30], None), ('regression variant: hour field bound', ['24:00:00:00', 25], None), ('partial repair probe: hour field bound', ['24:00:59:25', 30], None), ('partial repair variant: hour field bound', ['24:07:59:25', 30], None), ('boundary control', ['01:00:00;00', 30], None), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['00:00:59.29', 24], None), ('normal control', ['01:00:60:29', 24], None), ('normal control', ['00:07:60:25', 24], None)], [('regression: hour field bound', ['24:07:59:25', 30], None), ('regression variant: hour field bound', ['24:59:59:23', 24], None), ('partial repair probe: hour field bound', ['24:59:00:00', 24], None), ('partial repair variant: hour field bound', ['24:00:59:25', 30], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['01:00:00;00', 30], None), ('normal control', ['24:59:59:24', 24], None), ('normal control', ['99:60:59:25', 25], None), ('normal control', ['01:59:5.30', 30], None)]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"79c7b5149d60faebfaa1852e95a5320c8f35aada2cb2b18343eaa1453b936fce","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(tc, fps):\n    f=tc.split(':')\n    if len(f)!=4 or not all(len(x)==2 and x.isdigit() for x in f):\n        return None\n    h,m,s,fr=map(int,f)\n    if h>23:\n        return None\n    if m>59 or s>59:\n        return None\n    if fr>=fps:\n        return None\n    return ((h*60+m)*60+s)*fps+fr\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hour field bound', ['24:00:00:00', 25], None), ('regression variant: hour field bound', ['24:00:59:25', 30], None), ('partial repair probe: hour field bound', ['24:59:59:24', 30], None), ('partial repair variant: hour field bound', ['24:59:59:23', 24], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['01:00:00;00', 30], None), ('normal control', ['23:59:59:24', 25], 2159999), ('normal control', ['1:59:59:24', 30], None), ('normal control', ['00:07:00.24', 25], None)], [('regression: hour field bound', ['24:59:59:23', 24], None), ('regression variant: hour field bound', ['24:59:00:00', 24], None), ('partial repair probe: hour field bound', ['24:00:00:00', 30], None), ('partial repair variant: hour field bound', ['24:59:59:24', 30], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('boundary control', ['00:00:00:00', 25], 0), ('normal control', ['01:00:00.00', 24], None), ('normal control', ['00:59:00.25', 25], None), ('normal control', ['24:07:60:30', 30], None)], [('regression: hour field bound', ['24:59:59:24', 30], None), ('regression variant: hour field bound', ['24:07:59:29', 30], None), ('partial repair probe: hour field bound', ['24:07:59:25', 30], None), ('partial repair variant: hour field bound', ['24:00:00:00', 30], None), ('boundary control', ['00:00:00:25', 25], None), ('boundary control', ['23:59:59:24', 25], 2159999), ('normal control', ['00:07:60:30', 30], None), ('normal control', ['00:59:5:00', 25], None), ('normal control', ['01:59:59;25', 30], None)], [('regression: hour field bound', ['24:00:00:00', 30], None), ('regression variant: hour field bound', ['24:00:00:00', 25], None), ('partial repair probe: hour field bound', ['24:00:59:25', 30], None), ('partial repair variant: hour field bound', ['24:07:59:25', 30], None), ('boundary control', ['01:00:00;00', 30], None), ('boundary control', ['00:00:00:25', 25], None), ('normal control', ['00:00:59.29', 24], None), ('normal control', ['01:00:60:29', 24], None), ('normal control', ['00:07:60:25', 24], None)], [('regression: hour field bound', ['24:07:59:25', 30], None), ('regression variant: hour field bound', ['24:59:59:23', 24], None), ('partial repair probe: hour field bound', ['24:59:00:00', 24], None), ('partial repair variant: hour field bound', ['24:00:59:25', 30], None), ('boundary control', ['00:00:00:00', 25], 0), ('boundary control', ['01:00:00;00', 30], None), ('normal control', ['24:59:59:24', 24], None), ('normal control', ['99:60:59:25', 25], None), ('normal control', ['01:59:5.30', 30], None)]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model with a stipulated toy contract; it does not claim conformance to SMPTE or any broadcast standard. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-broadcast-timecode-arithmetic-ndf-parse-hour-field-bound","generated_at":"2026-09-29T14:49:34.633093+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Timecode arithmetic errors misplace edits, commercial breaks and captions against the broadcast clock.","repair":"Reject hours above 23.","root_cause":"The hour limit admits 24.","sha256":"5728dc47d7c9dfb67a6a1a05f3802f6bc6a25f8e8a603272af40ff19b0174ae4","title":"Non-drop timecode label parsing: hour field bound · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.956,"exit_code":1,"observations":[{"actual":2160000,"check":"regression: hour field bound","expected":null,"passed":false},{"actual":2593795,"check":"regression variant: hour field bound","expected":null,"passed":false},{"actual":2699994,"check":"partial repair probe: hour field bound","expected":null,"passed":false},{"actual":2159999,"check":"partial repair variant: hour field bound","expected":null,"passed":false},{"actual":0,"check":"boundary control","expected":0,"passed":true},{"actual":null,"check":"boundary control","expected":null,"passed":true},{"actual":2159999,"check":"normal control","expected":2159999,"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hour field bound\", \"actual\": 2160000, \"expected\": null, \"passed\": false}, {\"check\": \"regression variant: hour field bound\", \"actual\": 2593795, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe: hour field bound\", \"actual\": 2699994, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair variant: hour field bound\", \"actual\": 2159999, \"expected\": null, \"passed\": false}, {\"check\": \"boundary control\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"boundary control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": 2159999, \"expected\": 2159999, \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.628,"exit_code":1,"observations":[{"actual":2160000,"check":"regression: hour field bound","expected":null,"passed":false},{"actual":2593795,"check":"regression variant: hour field bound","expected":null,"passed":false},{"actual":2699994,"check":"partial repair probe: hour field bound","expected":null,"passed":false},{"actual":2159999,"check":"partial repair variant: hour field bound","expected":null,"passed":false},{"actual":0,"check":"boundary control","expected":0,"passed":true},{"actual":null,"check":"boundary control","expected":null,"passed":true},{"actual":2159999,"check":"normal control","expected":2159999,"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hour field bound\", \"actual\": 2160000, \"expected\": null, \"passed\": false}, {\"check\": \"regression variant: hour field bound\", \"actual\": 2593795, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe: hour field bound\", \"actual\": 2699994, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair variant: hour field bound\", \"actual\": 2159999, \"expected\": null, \"passed\": false}, {\"check\": \"boundary control\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"boundary control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": 2159999, \"expected\": 2159999, \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.848,"exit_code":0,"observations":[{"actual":null,"check":"regression: hour field bound","expected":null,"passed":true},{"actual":null,"check":"regression variant: hour field bound","expected":null,"passed":true},{"actual":null,"check":"partial repair probe: hour field bound","expected":null,"passed":true},{"actual":null,"check":"partial repair variant: hour field bound","expected":null,"passed":true},{"actual":0,"check":"boundary control","expected":0,"passed":true},{"actual":null,"check":"boundary control","expected":null,"passed":true},{"actual":2159999,"check":"normal control","expected":2159999,"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hour field bound\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression variant: hour field bound\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial repair probe: hour field bound\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial repair variant: hour field bound\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"boundary control\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"boundary control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": 2159999, \"expected\": 2159999, \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}