{"abstract":"Negative footage with frames converts to a count several frames too small.","category":"Broadcast timecode arithmetic","checks":9,"contract":"Frames per foot: 35mm4 16, 35mm2 32, 16mm 40. An int frame count converts to \"[-]F+ff\" (feet, two-digit frames, sign in front for negatives); a string \"[-]F+ff\" converts to a signed frame count, with ff below frames per foot (else None). \"-0+05\" means -5.","evaluation_group":"w2-broadcast-timecode-arithmetic-feet-frames","failed_approach":"Taking the absolute value after combining still subtracts the frames inside the foot.","family":"w2-broadcast-timecode-arithmetic-feet-frames-magnitude-composition","id":"FA-78531","implementations":{"attempt":{"sha256":"ea7574f831e8ea2d7b2a73ac394d8785a7293b52fe574c59b610c50f9ded5adc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(value, gauge):\n    per={'35mm4':16,'35mm2':32,'16mm':40}[gauge]\n    if isinstance(value,int):\n        sign='-' if value<0 else ''\n        v=abs(value)\n        return '%s%d+%02d'%(sign,v//per,v%per)\n    ft,fr=value.split('+')\n    if int(fr)>=per:\n        return None\n    n=abs(int(ft)*per+int(fr))\n    return -n if ft.startswith('-') else n\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: magnitude composition', ['-3+20', '35mm2'], -116), ('regression variant: magnitude composition', ['-1+20', '16mm'], -60), ('partial repair probe: magnitude composition', ['-3+16', '16mm'], -136), ('partial repair variant: magnitude composition', ['-3+01', '35mm4'], -49), ('boundary control', [16, '35mm4'], '1+00'), ('boundary control', ['1+15', '35mm4'], 31), ('normal control', [-1, '35mm4'], '-0+01'), ('normal control', ['0+16', '35mm4'], None), ('normal control', ['2+39', '16mm'], 119)], [('regression: magnitude composition', ['-3+00', '35mm2'], -96), ('regression variant: magnitude composition', ['-1+32', '16mm'], -72), ('partial repair probe: magnitude composition', ['-3+15', '16mm'], -135), ('partial repair variant: magnitude composition', ['-1+31', '35mm2'], -63), ('boundary control', [-1, '35mm4'], '-0+01'), ('boundary control', ['0+16', '35mm4'], None), ('normal control', [-1, '35mm2'], '-0+01'), ('normal control', [1, '16mm'], '0+01'), ('normal control', ['100+16', '16mm'], 4016)], [('regression: magnitude composition', ['-3+01', '35mm2'], -97), ('regression variant: magnitude composition', ['-3+15', '35mm2'], -111), ('partial repair probe: magnitude composition', ['-1+20', '16mm'], -60), ('partial repair variant: magnitude composition', ['-1+20', '35mm2'], -52), ('boundary control', ['-0+05', '35mm4'], -5), ('boundary control', ['2+39', '16mm'], 119), ('normal control', [0, '16mm'], '0+00'), ('normal control', ['100+16', '35mm2'], 3216), ('normal control', [-5, '16mm'], '-0+05')], [('regression: magnitude composition', ['-3+16', '16mm'], -136), ('regression variant: magnitude composition', ['-1+15', '35mm4'], -31), ('partial repair probe: magnitude composition', ['-1+32', '16mm'], -72), ('partial repair variant: magnitude composition', ['-3+31', '16mm'], -151), ('boundary control', ['1+15', '35mm4'], 31), ('boundary control', [16, '35mm4'], '1+00'), ('normal control', [-40, '16mm'], '-1+00'), ('normal control', ['-3+32', '35mm2'], None), ('normal control', ['-0+16', '35mm4'], None)], [('regression: magnitude composition', ['-3+15', '16mm'], -135), ('regression variant: magnitude composition', ['-3+00', '35mm4'], -48), ('partial repair probe: magnitude composition', ['-3+15', '35mm2'], -111), ('partial repair variant: magnitude composition', ['-3+20', '16mm'], -140), ('boundary control', ['0+16', '35mm4'], None), ('boundary control', [-1, '35mm4'], '-0+01'), ('normal control', [39, '16mm'], '0+39'), ('normal control', ['0+00', '35mm2'], 0), ('normal control', [-5, '35mm2'], '-0+05')]]\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":"92005760dd39638f0f473482c35f6b0603b5c5d5bff4dd4b9a7fe0174f10ffca","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(value, gauge):\n    per={'35mm4':16,'35mm2':32,'16mm':40}[gauge]\n    if isinstance(value,int):\n        sign='-' if value<0 else ''\n        v=abs(value)\n        return '%s%d+%02d'%(sign,v//per,v%per)\n    ft,fr=value.split('+')\n    if int(fr)>=per:\n        return None\n    n=int(ft)*per+int(fr)\n    return -n if ft.startswith('-') else n\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: magnitude composition', ['-3+20', '35mm2'], -116), ('regression variant: magnitude composition', ['-1+20', '16mm'], -60), ('partial repair probe: magnitude composition', ['-3+16', '16mm'], -136), ('partial repair variant: magnitude composition', ['-3+01', '35mm4'], -49), ('boundary control', [16, '35mm4'], '1+00'), ('boundary control', ['1+15', '35mm4'], 31), ('normal control', [-1, '35mm4'], '-0+01'), ('normal control', ['0+16', '35mm4'], None), ('normal control', ['2+39', '16mm'], 119)], [('regression: magnitude composition', ['-3+00', '35mm2'], -96), ('regression variant: magnitude composition', ['-1+32', '16mm'], -72), ('partial repair probe: magnitude composition', ['-3+15', '16mm'], -135), ('partial repair variant: magnitude composition', ['-1+31', '35mm2'], -63), ('boundary control', [-1, '35mm4'], '-0+01'), ('boundary control', ['0+16', '35mm4'], None), ('normal control', [-1, '35mm2'], '-0+01'), ('normal control', [1, '16mm'], '0+01'), ('normal control', ['100+16', '16mm'], 4016)], [('regression: magnitude composition', ['-3+01', '35mm2'], -97), ('regression variant: magnitude composition', ['-3+15', '35mm2'], -111), ('partial repair probe: magnitude composition', ['-1+20', '16mm'], -60), ('partial repair variant: magnitude composition', ['-1+20', '35mm2'], -52), ('boundary control', ['-0+05', '35mm4'], -5), ('boundary control', ['2+39', '16mm'], 119), ('normal control', [0, '16mm'], '0+00'), ('normal control', ['100+16', '35mm2'], 3216), ('normal control', [-5, '16mm'], '-0+05')], [('regression: magnitude composition', ['-3+16', '16mm'], -136), ('regression variant: magnitude composition', ['-1+15', '35mm4'], -31), ('partial repair probe: magnitude composition', ['-1+32', '16mm'], -72), ('partial repair variant: magnitude composition', ['-3+31', '16mm'], -151), ('boundary control', ['1+15', '35mm4'], 31), ('boundary control', [16, '35mm4'], '1+00'), ('normal control', [-40, '16mm'], '-1+00'), ('normal control', ['-3+32', '35mm2'], None), ('normal control', ['-0+16', '35mm4'], None)], [('regression: magnitude composition', ['-3+15', '16mm'], -135), ('regression variant: magnitude composition', ['-3+00', '35mm4'], -48), ('partial repair probe: magnitude composition', ['-3+15', '35mm2'], -111), ('partial repair variant: magnitude composition', ['-3+20', '16mm'], -140), ('boundary control', ['0+16', '35mm4'], None), ('boundary control', [-1, '35mm4'], '-0+01'), ('normal control', [39, '16mm'], '0+39'), ('normal control', ['0+00', '35mm2'], 0), ('normal control', [-5, '35mm2'], '-0+05')]]\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":"7e4480cce81027ea9445329977cbde79e101b96619e7337f12c9e0cbf1d701d7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(value, gauge):\n    per={'35mm4':16,'35mm2':32,'16mm':40}[gauge]\n    if isinstance(value,int):\n        sign='-' if value<0 else ''\n        v=abs(value)\n        return '%s%d+%02d'%(sign,v//per,v%per)\n    ft,fr=value.split('+')\n    if int(fr)>=per:\n        return None\n    n=abs(int(ft))*per+int(fr)\n    return -n if ft.startswith('-') else n\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: magnitude composition', ['-3+20', '35mm2'], -116), ('regression variant: magnitude composition', ['-1+20', '16mm'], -60), ('partial repair probe: magnitude composition', ['-3+16', '16mm'], -136), ('partial repair variant: magnitude composition', ['-3+01', '35mm4'], -49), ('boundary control', [16, '35mm4'], '1+00'), ('boundary control', ['1+15', '35mm4'], 31), ('normal control', [-1, '35mm4'], '-0+01'), ('normal control', ['0+16', '35mm4'], None), ('normal control', ['2+39', '16mm'], 119)], [('regression: magnitude composition', ['-3+00', '35mm2'], -96), ('regression variant: magnitude composition', ['-1+32', '16mm'], -72), ('partial repair probe: magnitude composition', ['-3+15', '16mm'], -135), ('partial repair variant: magnitude composition', ['-1+31', '35mm2'], -63), ('boundary control', [-1, '35mm4'], '-0+01'), ('boundary control', ['0+16', '35mm4'], None), ('normal control', [-1, '35mm2'], '-0+01'), ('normal control', [1, '16mm'], '0+01'), ('normal control', ['100+16', '16mm'], 4016)], [('regression: magnitude composition', ['-3+01', '35mm2'], -97), ('regression variant: magnitude composition', ['-3+15', '35mm2'], -111), ('partial repair probe: magnitude composition', ['-1+20', '16mm'], -60), ('partial repair variant: magnitude composition', ['-1+20', '35mm2'], -52), ('boundary control', ['-0+05', '35mm4'], -5), ('boundary control', ['2+39', '16mm'], 119), ('normal control', [0, '16mm'], '0+00'), ('normal control', ['100+16', '35mm2'], 3216), ('normal control', [-5, '16mm'], '-0+05')], [('regression: magnitude composition', ['-3+16', '16mm'], -136), ('regression variant: magnitude composition', ['-1+15', '35mm4'], -31), ('partial repair probe: magnitude composition', ['-1+32', '16mm'], -72), ('partial repair variant: magnitude composition', ['-3+31', '16mm'], -151), ('boundary control', ['1+15', '35mm4'], 31), ('boundary control', [16, '35mm4'], '1+00'), ('normal control', [-40, '16mm'], '-1+00'), ('normal control', ['-3+32', '35mm2'], None), ('normal control', ['-0+16', '35mm4'], None)], [('regression: magnitude composition', ['-3+15', '16mm'], -135), ('regression variant: magnitude composition', ['-3+00', '35mm4'], -48), ('partial repair probe: magnitude composition', ['-3+15', '35mm2'], -111), ('partial repair variant: magnitude composition', ['-3+20', '16mm'], -140), ('boundary control', ['0+16', '35mm4'], None), ('boundary control', [-1, '35mm4'], '-0+01'), ('normal control', [39, '16mm'], '0+39'), ('normal control', ['0+00', '35mm2'], 0), ('normal control', [-5, '35mm2'], '-0+05')]]\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-feet-frames-magnitude-composition","generated_at":"2026-09-29T14:49:35.983696+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":"Combine the absolute feet with the frames, then apply the sign.","root_cause":"The frames are added to the signed feet before the sign is applied.","sha256":"c151fbcf8041422779ff204b3877d8d91c6fd96410a600dad0cc7ecec521f598","title":"Film feet and frames conversion: magnitude composition · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.459,"exit_code":1,"observations":[{"actual":-76,"check":"regression: magnitude composition","expected":-116,"passed":false},{"actual":-20,"check":"regression variant: magnitude composition","expected":-60,"passed":false},{"actual":-104,"check":"partial repair probe: magnitude composition","expected":-136,"passed":false},{"actual":-47,"check":"partial repair variant: magnitude composition","expected":-49,"passed":false},{"actual":"1+00","check":"boundary control","expected":"1+00","passed":true},{"actual":31,"check":"boundary control","expected":31,"passed":true},{"actual":"-0+01","check":"normal control","expected":"-0+01","passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true},{"actual":119,"check":"normal control","expected":119,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: magnitude composition\", \"actual\": -76, \"expected\": -116, \"passed\": false}, {\"check\": \"regression variant: magnitude composition\", \"actual\": -20, \"expected\": -60, \"passed\": false}, {\"check\": \"partial repair probe: magnitude composition\", \"actual\": -104, \"expected\": -136, \"passed\": false}, {\"check\": \"partial repair variant: magnitude composition\", \"actual\": -47, \"expected\": -49, \"passed\": false}, {\"check\": \"boundary control\", \"actual\": \"1+00\", \"expected\": \"1+00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": 31, \"expected\": 31, \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"-0+01\", \"expected\": \"-0+01\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": 119, \"expected\": 119, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":36.421,"exit_code":1,"observations":[{"actual":76,"check":"regression: magnitude composition","expected":-116,"passed":false},{"actual":20,"check":"regression variant: magnitude composition","expected":-60,"passed":false},{"actual":104,"check":"partial repair probe: magnitude composition","expected":-136,"passed":false},{"actual":47,"check":"partial repair variant: magnitude composition","expected":-49,"passed":false},{"actual":"1+00","check":"boundary control","expected":"1+00","passed":true},{"actual":31,"check":"boundary control","expected":31,"passed":true},{"actual":"-0+01","check":"normal control","expected":"-0+01","passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true},{"actual":119,"check":"normal control","expected":119,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: magnitude composition\", \"actual\": 76, \"expected\": -116, \"passed\": false}, {\"check\": \"regression variant: magnitude composition\", \"actual\": 20, \"expected\": -60, \"passed\": false}, {\"check\": \"partial repair probe: magnitude composition\", \"actual\": 104, \"expected\": -136, \"passed\": false}, {\"check\": \"partial repair variant: magnitude composition\", \"actual\": 47, \"expected\": -49, \"passed\": false}, {\"check\": \"boundary control\", \"actual\": \"1+00\", \"expected\": \"1+00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": 31, \"expected\": 31, \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"-0+01\", \"expected\": \"-0+01\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": 119, \"expected\": 119, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.875,"exit_code":0,"observations":[{"actual":-116,"check":"regression: magnitude composition","expected":-116,"passed":true},{"actual":-60,"check":"regression variant: magnitude composition","expected":-60,"passed":true},{"actual":-136,"check":"partial repair probe: magnitude composition","expected":-136,"passed":true},{"actual":-49,"check":"partial repair variant: magnitude composition","expected":-49,"passed":true},{"actual":"1+00","check":"boundary control","expected":"1+00","passed":true},{"actual":31,"check":"boundary control","expected":31,"passed":true},{"actual":"-0+01","check":"normal control","expected":"-0+01","passed":true},{"actual":null,"check":"normal control","expected":null,"passed":true},{"actual":119,"check":"normal control","expected":119,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: magnitude composition\", \"actual\": -116, \"expected\": -116, \"passed\": true}, {\"check\": \"regression variant: magnitude composition\", \"actual\": -60, \"expected\": -60, \"passed\": true}, {\"check\": \"partial repair probe: magnitude composition\", \"actual\": -136, \"expected\": -136, \"passed\": true}, {\"check\": \"partial repair variant: magnitude composition\", \"actual\": -49, \"expected\": -49, \"passed\": true}, {\"check\": \"boundary control\", \"actual\": \"1+00\", \"expected\": \"1+00\", \"passed\": true}, {\"check\": \"boundary control\", \"actual\": 31, \"expected\": 31, \"passed\": true}, {\"check\": \"normal control\", \"actual\": \"-0+01\", \"expected\": \"-0+01\", \"passed\": true}, {\"check\": \"normal control\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control\", \"actual\": 119, \"expected\": 119, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}