{"abstract":"An entry of 99 frames shows frame field 99.","category":"Broadcast timecode arithmetic","checks":9,"contract":"Normalize typed timecode. Separators \":\", \";\" and \".\" are equivalent. With separators, up to four numeric fields fill from the right (frames last). Without separators, up to eight digits are right-aligned into HH MM SS FF pairs. Field overflow carries through the total frame count, which wraps at 24 hours. Invalid entry returns None.","evaluation_group":"w2-broadcast-timecode-arithmetic-entry-normalization","failed_approach":"Clamping the typed frames discards the carry into seconds.","family":"w2-broadcast-timecode-arithmetic-entry-normalization-frame-field-carry","id":"FA-78786","implementations":{"attempt":{"sha256":"e99568249eea6efec30f0881bce0843300de04bd89a8db14c0139074a0ba9fa7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s, fps):\n    s=s.replace(';',':').replace('.',':')\n    if ':' in s:\n        parts=s.split(':')\n        if len(parts)>4 or not all(p.isdigit() for p in parts):\n            return None\n        vals=[0]*(4-len(parts))+[int(p) for p in parts]\n    else:\n        if not s.isdigit() or len(s)>8:\n            return None\n        d=s.zfill(8)\n        vals=[int(d[i:i+2]) for i in range(0,8,2)]\n    h,m,sec,f=vals\n    n=((h*60+m)*60+sec)*fps+f\n    n%=86400*fps\n    return '%02d:%02d:%02d:%02d'%(n//(3600*fps),n//(60*fps)%60,n//fps%60,min(f,fps-1))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: frame field carry', ['99', 25], '00:00:03:24'), ('regression variant: frame field carry', ['5959', 30], '00:01:00:29'), ('partial repair probe: frame field carry', ['5959', 24], '00:01:01:11'), ('partial repair variant: frame field carry', ['10:30', 30], '00:00:11:00'), ('boundary control', ['100', 25], '00:00:01:00'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('normal control', ['1:2', 25], '00:00:01:02'), ('normal control', ['59.10', 24], '00:00:59:10'), ('normal control', ['100', 30], '00:00:01:00')], [('regression: frame field carry', ['59.99', 24], '00:01:03:03'), ('regression variant: frame field carry', ['30', 24], '00:00:01:06'), ('partial repair probe: frame field carry', ['12345678', 25], '12:34:59:03'), ('partial repair variant: frame field carry', ['123456', 30], '00:12:35:26'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['100', 25], '00:00:01:00'), ('normal control', ['0:23:23', 24], '00:00:23:23'), ('normal control', ['', 25], None), ('normal control', ['10000', 25], '00:01:00:00')], [('regression: frame field carry', ['99', 24], '00:00:04:03'), ('regression variant: frame field carry', ['30', 30], '00:00:01:00'), ('partial repair probe: frame field carry', ['30', 24], '00:00:01:06'), ('partial repair variant: frame field carry', ['23:59', 25], '00:00:25:09'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('normal control', ['61:59:59:24:0', 25], None), ('normal control', ['59.2', 24], '00:00:59:02'), ('normal control', ['1:30:10', 30], '00:01:30:10')], [('regression: frame field carry', ['5959', 24], '00:01:01:11'), ('regression variant: frame field carry', ['2:23:61:99', 25], '02:24:04:24'), ('partial repair probe: frame field carry', ['30', 30], '00:00:01:00'), ('partial repair variant: frame field carry', ['23;1;99', 30], '00:23:04:09'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['x1', 25], None), ('normal control', ['59:59:2', 30], '00:59:59:02'), ('normal control', ['x1', 24], None)], [('regression: frame field carry', ['12345678', 25], '12:34:59:03'), ('regression variant: frame field carry', ['23:30:30', 24], '00:23:31:06'), ('partial repair probe: frame field carry', ['59.23.99', 30], '00:59:26:09'), ('partial repair variant: frame field carry', ['59.99.23.24', 24], '12:39:24:00'), ('boundary control', ['100', 25], '00:00:01:00'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('normal control', ['1000000', 30], '01:00:00:00'), ('normal control', ['59:23:23:10:10', 30], None), ('normal control', ['0.30.59.10.1', 24], 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":"ce4344c68e5fcb393fac921ce6cc826c571f3cd779d23097dfecf7f840ed30a7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s, fps):\n    s=s.replace(';',':').replace('.',':')\n    if ':' in s:\n        parts=s.split(':')\n        if len(parts)>4 or not all(p.isdigit() for p in parts):\n            return None\n        vals=[0]*(4-len(parts))+[int(p) for p in parts]\n    else:\n        if not s.isdigit() or len(s)>8:\n            return None\n        d=s.zfill(8)\n        vals=[int(d[i:i+2]) for i in range(0,8,2)]\n    h,m,sec,f=vals\n    n=((h*60+m)*60+sec)*fps+f\n    n%=86400*fps\n    return '%02d:%02d:%02d:%02d'%(n//(3600*fps),n//(60*fps)%60,n//fps%60,f)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: frame field carry', ['99', 25], '00:00:03:24'), ('regression variant: frame field carry', ['5959', 30], '00:01:00:29'), ('partial repair probe: frame field carry', ['5959', 24], '00:01:01:11'), ('partial repair variant: frame field carry', ['10:30', 30], '00:00:11:00'), ('boundary control', ['100', 25], '00:00:01:00'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('normal control', ['1:2', 25], '00:00:01:02'), ('normal control', ['59.10', 24], '00:00:59:10'), ('normal control', ['100', 30], '00:00:01:00')], [('regression: frame field carry', ['59.99', 24], '00:01:03:03'), ('regression variant: frame field carry', ['30', 24], '00:00:01:06'), ('partial repair probe: frame field carry', ['12345678', 25], '12:34:59:03'), ('partial repair variant: frame field carry', ['123456', 30], '00:12:35:26'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['100', 25], '00:00:01:00'), ('normal control', ['0:23:23', 24], '00:00:23:23'), ('normal control', ['', 25], None), ('normal control', ['10000', 25], '00:01:00:00')], [('regression: frame field carry', ['99', 24], '00:00:04:03'), ('regression variant: frame field carry', ['30', 30], '00:00:01:00'), ('partial repair probe: frame field carry', ['30', 24], '00:00:01:06'), ('partial repair variant: frame field carry', ['23:59', 25], '00:00:25:09'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('normal control', ['61:59:59:24:0', 25], None), ('normal control', ['59.2', 24], '00:00:59:02'), ('normal control', ['1:30:10', 30], '00:01:30:10')], [('regression: frame field carry', ['5959', 24], '00:01:01:11'), ('regression variant: frame field carry', ['2:23:61:99', 25], '02:24:04:24'), ('partial repair probe: frame field carry', ['30', 30], '00:00:01:00'), ('partial repair variant: frame field carry', ['23;1;99', 30], '00:23:04:09'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['x1', 25], None), ('normal control', ['59:59:2', 30], '00:59:59:02'), ('normal control', ['x1', 24], None)], [('regression: frame field carry', ['12345678', 25], '12:34:59:03'), ('regression variant: frame field carry', ['23:30:30', 24], '00:23:31:06'), ('partial repair probe: frame field carry', ['59.23.99', 30], '00:59:26:09'), ('partial repair variant: frame field carry', ['59.99.23.24', 24], '12:39:24:00'), ('boundary control', ['100', 25], '00:00:01:00'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('normal control', ['1000000', 30], '01:00:00:00'), ('normal control', ['59:23:23:10:10', 30], None), ('normal control', ['0.30.59.10.1', 24], 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":"0fdcd63d026d6e7ed5eb7af5cd5ca90ccdb3ca0b025cd553a79e141e84b689b8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s, fps):\n    s=s.replace(';',':').replace('.',':')\n    if ':' in s:\n        parts=s.split(':')\n        if len(parts)>4 or not all(p.isdigit() for p in parts):\n            return None\n        vals=[0]*(4-len(parts))+[int(p) for p in parts]\n    else:\n        if not s.isdigit() or len(s)>8:\n            return None\n        d=s.zfill(8)\n        vals=[int(d[i:i+2]) for i in range(0,8,2)]\n    h,m,sec,f=vals\n    n=((h*60+m)*60+sec)*fps+f\n    n%=86400*fps\n    return '%02d:%02d:%02d:%02d'%(n//(3600*fps),n//(60*fps)%60,n//fps%60,n%fps)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: frame field carry', ['99', 25], '00:00:03:24'), ('regression variant: frame field carry', ['5959', 30], '00:01:00:29'), ('partial repair probe: frame field carry', ['5959', 24], '00:01:01:11'), ('partial repair variant: frame field carry', ['10:30', 30], '00:00:11:00'), ('boundary control', ['100', 25], '00:00:01:00'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('normal control', ['1:2', 25], '00:00:01:02'), ('normal control', ['59.10', 24], '00:00:59:10'), ('normal control', ['100', 30], '00:00:01:00')], [('regression: frame field carry', ['59.99', 24], '00:01:03:03'), ('regression variant: frame field carry', ['30', 24], '00:00:01:06'), ('partial repair probe: frame field carry', ['12345678', 25], '12:34:59:03'), ('partial repair variant: frame field carry', ['123456', 30], '00:12:35:26'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('boundary control', ['100', 25], '00:00:01:00'), ('normal control', ['0:23:23', 24], '00:00:23:23'), ('normal control', ['', 25], None), ('normal control', ['10000', 25], '00:01:00:00')], [('regression: frame field carry', ['99', 24], '00:00:04:03'), ('regression variant: frame field carry', ['30', 30], '00:00:01:00'), ('partial repair probe: frame field carry', ['30', 24], '00:00:01:06'), ('partial repair variant: frame field carry', ['23:59', 25], '00:00:25:09'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('boundary control', ['1:2', 25], '00:00:01:02'), ('normal control', ['61:59:59:24:0', 25], None), ('normal control', ['59.2', 24], '00:00:59:02'), ('normal control', ['1:30:10', 30], '00:01:30:10')], [('regression: frame field carry', ['5959', 24], '00:01:01:11'), ('regression variant: frame field carry', ['2:23:61:99', 25], '02:24:04:24'), ('partial repair probe: frame field carry', ['30', 30], '00:00:01:00'), ('partial repair variant: frame field carry', ['23;1;99', 30], '00:23:04:09'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('boundary control', ['1.2.3.4', 25], '01:02:03:04'), ('normal control', ['x1', 25], None), ('normal control', ['59:59:2', 30], '00:59:59:02'), ('normal control', ['x1', 24], None)], [('regression: frame field carry', ['12345678', 25], '12:34:59:03'), ('regression variant: frame field carry', ['23:30:30', 24], '00:23:31:06'), ('partial repair probe: frame field carry', ['59.23.99', 30], '00:59:26:09'), ('partial repair variant: frame field carry', ['59.99.23.24', 24], '12:39:24:00'), ('boundary control', ['100', 25], '00:00:01:00'), ('boundary control', ['23595924', 25], '23:59:59:24'), ('normal control', ['1000000', 30], '01:00:00:00'), ('normal control', ['59:23:23:10:10', 30], None), ('normal control', ['0.30.59.10.1', 24], 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-entry-normalization-frame-field-carry","generated_at":"2026-09-29T14:49:38.606059+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":"Print the frame remainder of the carried total.","root_cause":"The frame field prints the typed value instead of the carried remainder.","sha256":"d8a4201df7ab19d91ac9fc2217b65f0626e9f49b4f4377f702eb6746c6759d1c","title":"Operator timecode entry normalization: frame field carry · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.871,"exit_code":1,"observations":[{"actual":"00:00:03:24","check":"regression: frame field carry","expected":"00:00:03:24","passed":true},{"actual":"00:01:00:29","check":"regression variant: frame field carry","expected":"00:01:00:29","passed":true},{"actual":"00:01:01:23","check":"partial repair probe: frame field carry","expected":"00:01:01:11","passed":false},{"actual":"00:00:11:29","check":"partial repair variant: frame field carry","expected":"00:00:11:00","passed":false},{"actual":"00:00:01:00","check":"boundary control","expected":"00:00:01:00","passed":true},{"actual":"23:59:59:24","check":"boundary control","expected":"23:59:59:24","passed":true},{"actual":"00:00:01:02","check":"normal control","expected":"00:00:01:02","passed":true},{"actual":"00:00:59:10","check":"normal control","expected":"00:00:59:10","passed":true},{"actual":"00:00:01:00","check":"normal control","expected":"00:00:01:00","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: frame field carry\", \"actual\": \"00:00:03:24\", \"expected\": \"00:00:03:24\", \"passed\": true}, {\"check\": \"regression variant: frame field carry\", \"actual\": \"00:01:00:29\", \"expected\": \"00:01:00:29\", \"passed\": true}, {\"check\": \"partial repair probe: frame field carry\", \"actual\": \"00:01:01:23\", \"expected\": \"00:01:01:11\", \"passed\": false}, {\"check\": \"partial repair variant: frame field carry\", \"actual\": \"00:00:11:29\", \"expected\": \"00:00:11:00\", \"passed\": false}, {\"check\": \"boundary control\", \"actual\": \"00:00:01:00\", \"expected\": \"00:00:01:00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"23:59:59:24\", \"expected\": \"23:59:59:24\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:01:02\", \"expected\": \"00:00:01:02\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:59:10\", \"expected\": \"00:00:59:10\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:01:00\", \"expected\": \"00:00:01:00\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.099,"exit_code":1,"observations":[{"actual":"00:00:03:99","check":"regression: frame field carry","expected":"00:00:03:24","passed":false},{"actual":"00:01:00:59","check":"regression variant: frame field carry","expected":"00:01:00:29","passed":false},{"actual":"00:01:01:59","check":"partial repair probe: frame field carry","expected":"00:01:01:11","passed":false},{"actual":"00:00:11:30","check":"partial repair variant: frame field carry","expected":"00:00:11:00","passed":false},{"actual":"00:00:01:00","check":"boundary control","expected":"00:00:01:00","passed":true},{"actual":"23:59:59:24","check":"boundary control","expected":"23:59:59:24","passed":true},{"actual":"00:00:01:02","check":"normal control","expected":"00:00:01:02","passed":true},{"actual":"00:00:59:10","check":"normal control","expected":"00:00:59:10","passed":true},{"actual":"00:00:01:00","check":"normal control","expected":"00:00:01:00","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: frame field carry\", \"actual\": \"00:00:03:99\", \"expected\": \"00:00:03:24\", \"passed\": false}, {\"check\": \"regression variant: frame field carry\", \"actual\": \"00:01:00:59\", \"expected\": \"00:01:00:29\", \"passed\": false}, {\"check\": \"partial repair probe: frame field carry\", \"actual\": \"00:01:01:59\", \"expected\": \"00:01:01:11\", \"passed\": false}, {\"check\": \"partial repair variant: frame field carry\", \"actual\": \"00:00:11:30\", \"expected\": \"00:00:11:00\", \"passed\": false}, {\"check\": \"boundary control\", \"actual\": \"00:00:01:00\", \"expected\": \"00:00:01:00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"23:59:59:24\", \"expected\": \"23:59:59:24\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:01:02\", \"expected\": \"00:00:01:02\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:59:10\", \"expected\": \"00:00:59:10\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:01:00\", \"expected\": \"00:00:01:00\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.024,"exit_code":0,"observations":[{"actual":"00:00:03:24","check":"regression: frame field carry","expected":"00:00:03:24","passed":true},{"actual":"00:01:00:29","check":"regression variant: frame field carry","expected":"00:01:00:29","passed":true},{"actual":"00:01:01:11","check":"partial repair probe: frame field carry","expected":"00:01:01:11","passed":true},{"actual":"00:00:11:00","check":"partial repair variant: frame field carry","expected":"00:00:11:00","passed":true},{"actual":"00:00:01:00","check":"boundary control","expected":"00:00:01:00","passed":true},{"actual":"23:59:59:24","check":"boundary control","expected":"23:59:59:24","passed":true},{"actual":"00:00:01:02","check":"normal control","expected":"00:00:01:02","passed":true},{"actual":"00:00:59:10","check":"normal control","expected":"00:00:59:10","passed":true},{"actual":"00:00:01:00","check":"normal control","expected":"00:00:01:00","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: frame field carry\", \"actual\": \"00:00:03:24\", \"expected\": \"00:00:03:24\", \"passed\": true}, {\"check\": \"regression variant: frame field carry\", \"actual\": \"00:01:00:29\", \"expected\": \"00:01:00:29\", \"passed\": true}, {\"check\": \"partial repair probe: frame field carry\", \"actual\": \"00:01:01:11\", \"expected\": \"00:01:01:11\", \"passed\": true}, {\"check\": \"partial repair variant: frame field carry\", \"actual\": \"00:00:11:00\", \"expected\": \"00:00:11:00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"00:00:01:00\", \"expected\": \"00:00:01:00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"23:59:59:24\", \"expected\": \"23:59:59:24\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:01:02\", \"expected\": \"00:00:01:02\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:59:10\", \"expected\": \"00:00:59:10\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"00:00:01:00\", \"expected\": \"00:00:01:00\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}