{"abstract":"Short subtitles get barely any screen time.","category":"Subtitle cue timing","checks":9,"contract":"rules [base,per_char,min,max]. Count characters other than spaces and line breaks; duration = base + count*per_char, clamped to [min,max]; then rounded up to whole frames at fps [N,D]. Return [frames, ceil(frames*1000*D/N)].","evaluation_group":"w2-subtitle-cue-timing-recommended-duration","failed_approach":"Taking the larger of base and character time drops the base for longer lines.","family":"w2-subtitle-cue-timing-recommended-duration-base-allowance","id":"FA-78286","implementations":{"attempt":{"sha256":"897b1d975993b8928f34bab8eb6616fd01a29e524ecdfd47810151e18fa08de1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(text, fps, rules):\n    base,per,lo,hi=rules\n    n=len(text.replace(' ','').replace('\\n',''))\n    d=max(base,n*per)\n    d=max(lo,min(hi,d))\n    num,den=fps\n    fr=-((-d*num)//(1000*den))\n    return [fr,-((-fr*1000*den)//num)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: base allowance', ['A much longer subtitle line to read', [25, 1], [500, 60, 1000, 2000]], [50, 2000]), ('regression variant: base allowance', ['Hello world', [30000, 1001], [500, 60, 1000, 6000]], [33, 1102]), ('partial repair probe: base allowance', ['Hello world', [30, 1], [700, 100, 1000, 2000]], [51, 1700]), ('partial repair variant: base allowance', ['Hello world', [30000, 1001], [700, 100, 1000, 2000]], [51, 1702]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['   ', [25, 1], [700, 100, 1000, 2000]], [25, 1000]), ('normal control', ['Two\\nlines here', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['Hi', [24, 1], [0, 70, 800, 7000]], [20, 834])], [('regression: base allowance', ['A much longer subtitle line to read', [24000, 1001], [300, 50, 1200, 1500]], [36, 1502]), ('regression variant: base allowance', ['Hello world', [24000, 1001], [500, 60, 1000, 6000]], [27, 1127]), ('partial repair probe: base allowance', ['Two\\nlines here', [30, 1], [700, 100, 1000, 2000]], [57, 1900]), ('partial repair variant: base allowance', ['A much longer subtitle line to read', [30, 1], [300, 50, 1200, 1500]], [45, 1500]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('normal control', ['Hello world', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['   ', [24000, 1001], [0, 70, 800, 7000]], [20, 835]), ('normal control', ['Two\\nlines here', [30000, 1001], [300, 50, 1200, 1500]], [36, 1202])], [('regression: base allowance', ['Hello world', [30, 1], [700, 100, 1000, 2000]], [51, 1700]), ('regression variant: base allowance', ['A much longer subtitle line to read', [30000, 1001], [300, 50, 1200, 1500]], [45, 1502]), ('partial repair probe: base allowance', ['Two\\nlines here', [24000, 1001], [700, 100, 1000, 2000]], [46, 1919]), ('partial repair variant: base allowance', ['Hello world', [24000, 1001], [700, 100, 1000, 2000]], [41, 1711]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['Hello world', [30000, 1001], [0, 70, 800, 7000]], [24, 801]), ('normal control', ['ok', [30, 1], [500, 60, 1000, 6000]], [30, 1000]), ('normal control', ['   ', [24, 1], [700, 100, 1000, 2000]], [24, 1000])], [('regression: base allowance', ['Two\\nlines here', [30, 1], [700, 100, 1000, 2000]], [57, 1900]), ('regression variant: base allowance', ['Hello world', [30, 1], [500, 60, 1000, 6000]], [33, 1100]), ('partial repair probe: base allowance', ['Hello world', [30000, 1001], [500, 60, 1000, 6000]], [33, 1102]), ('partial repair variant: base allowance', ['Two\\nlines here', [24, 1], [500, 60, 1000, 6000]], [30, 1250]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('normal control', ['Hi', [30000, 1001], [300, 50, 1200, 1500]], [36, 1202]), ('normal control', ['ok', [24, 1], [700, 100, 1000, 2000]], [24, 1000]), ('normal control', ['   ', [25, 1], [500, 60, 1000, 6000]], [25, 1000])], [('regression: base allowance', ['Two\\nlines here', [24000, 1001], [700, 100, 1000, 2000]], [46, 1919]), ('regression variant: base allowance', ['Hello world', [30000, 1001], [700, 100, 1000, 2000]], [51, 1702]), ('partial repair probe: base allowance', ['Hello world', [24000, 1001], [500, 60, 1000, 6000]], [27, 1127]), ('partial repair variant: base allowance', ['A much longer subtitle line to read', [30000, 1001], [500, 60, 1000, 6000]], [68, 2269]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['ok', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['   ', [30, 1], [0, 70, 800, 7000]], [24, 800]), ('normal control', ['Two\\nlines here', [24, 1], [0, 70, 800, 7000]], [21, 875])]]\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":"2e19eba27f06a1272e076d27f6e2fa68f2ac1f74e60a57e97fd4f33ff97341a0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(text, fps, rules):\n    base,per,lo,hi=rules\n    n=len(text.replace(' ','').replace('\\n',''))\n    d=n*per\n    d=max(lo,min(hi,d))\n    num,den=fps\n    fr=-((-d*num)//(1000*den))\n    return [fr,-((-fr*1000*den)//num)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: base allowance', ['A much longer subtitle line to read', [25, 1], [500, 60, 1000, 2000]], [50, 2000]), ('regression variant: base allowance', ['Hello world', [30000, 1001], [500, 60, 1000, 6000]], [33, 1102]), ('partial repair probe: base allowance', ['Hello world', [30, 1], [700, 100, 1000, 2000]], [51, 1700]), ('partial repair variant: base allowance', ['Hello world', [30000, 1001], [700, 100, 1000, 2000]], [51, 1702]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['   ', [25, 1], [700, 100, 1000, 2000]], [25, 1000]), ('normal control', ['Two\\nlines here', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['Hi', [24, 1], [0, 70, 800, 7000]], [20, 834])], [('regression: base allowance', ['A much longer subtitle line to read', [24000, 1001], [300, 50, 1200, 1500]], [36, 1502]), ('regression variant: base allowance', ['Hello world', [24000, 1001], [500, 60, 1000, 6000]], [27, 1127]), ('partial repair probe: base allowance', ['Two\\nlines here', [30, 1], [700, 100, 1000, 2000]], [57, 1900]), ('partial repair variant: base allowance', ['A much longer subtitle line to read', [30, 1], [300, 50, 1200, 1500]], [45, 1500]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('normal control', ['Hello world', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['   ', [24000, 1001], [0, 70, 800, 7000]], [20, 835]), ('normal control', ['Two\\nlines here', [30000, 1001], [300, 50, 1200, 1500]], [36, 1202])], [('regression: base allowance', ['Hello world', [30, 1], [700, 100, 1000, 2000]], [51, 1700]), ('regression variant: base allowance', ['A much longer subtitle line to read', [30000, 1001], [300, 50, 1200, 1500]], [45, 1502]), ('partial repair probe: base allowance', ['Two\\nlines here', [24000, 1001], [700, 100, 1000, 2000]], [46, 1919]), ('partial repair variant: base allowance', ['Hello world', [24000, 1001], [700, 100, 1000, 2000]], [41, 1711]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['Hello world', [30000, 1001], [0, 70, 800, 7000]], [24, 801]), ('normal control', ['ok', [30, 1], [500, 60, 1000, 6000]], [30, 1000]), ('normal control', ['   ', [24, 1], [700, 100, 1000, 2000]], [24, 1000])], [('regression: base allowance', ['Two\\nlines here', [30, 1], [700, 100, 1000, 2000]], [57, 1900]), ('regression variant: base allowance', ['Hello world', [30, 1], [500, 60, 1000, 6000]], [33, 1100]), ('partial repair probe: base allowance', ['Hello world', [30000, 1001], [500, 60, 1000, 6000]], [33, 1102]), ('partial repair variant: base allowance', ['Two\\nlines here', [24, 1], [500, 60, 1000, 6000]], [30, 1250]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('normal control', ['Hi', [30000, 1001], [300, 50, 1200, 1500]], [36, 1202]), ('normal control', ['ok', [24, 1], [700, 100, 1000, 2000]], [24, 1000]), ('normal control', ['   ', [25, 1], [500, 60, 1000, 6000]], [25, 1000])], [('regression: base allowance', ['Two\\nlines here', [24000, 1001], [700, 100, 1000, 2000]], [46, 1919]), ('regression variant: base allowance', ['Hello world', [30000, 1001], [700, 100, 1000, 2000]], [51, 1702]), ('partial repair probe: base allowance', ['Hello world', [24000, 1001], [500, 60, 1000, 6000]], [27, 1127]), ('partial repair variant: base allowance', ['A much longer subtitle line to read', [30000, 1001], [500, 60, 1000, 6000]], [68, 2269]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['ok', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['   ', [30, 1], [0, 70, 800, 7000]], [24, 800]), ('normal control', ['Two\\nlines here', [24, 1], [0, 70, 800, 7000]], [21, 875])]]\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":"aedbb4acaf1d1e375790a0a68b443dba88aaf6479d2396541dd67759c6a1ecd4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(text, fps, rules):\n    base,per,lo,hi=rules\n    n=len(text.replace(' ','').replace('\\n',''))\n    d=base+n*per\n    d=max(lo,min(hi,d))\n    num,den=fps\n    fr=-((-d*num)//(1000*den))\n    return [fr,-((-fr*1000*den)//num)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: base allowance', ['A much longer subtitle line to read', [25, 1], [500, 60, 1000, 2000]], [50, 2000]), ('regression variant: base allowance', ['Hello world', [30000, 1001], [500, 60, 1000, 6000]], [33, 1102]), ('partial repair probe: base allowance', ['Hello world', [30, 1], [700, 100, 1000, 2000]], [51, 1700]), ('partial repair variant: base allowance', ['Hello world', [30000, 1001], [700, 100, 1000, 2000]], [51, 1702]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['   ', [25, 1], [700, 100, 1000, 2000]], [25, 1000]), ('normal control', ['Two\\nlines here', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['Hi', [24, 1], [0, 70, 800, 7000]], [20, 834])], [('regression: base allowance', ['A much longer subtitle line to read', [24000, 1001], [300, 50, 1200, 1500]], [36, 1502]), ('regression variant: base allowance', ['Hello world', [24000, 1001], [500, 60, 1000, 6000]], [27, 1127]), ('partial repair probe: base allowance', ['Two\\nlines here', [30, 1], [700, 100, 1000, 2000]], [57, 1900]), ('partial repair variant: base allowance', ['A much longer subtitle line to read', [30, 1], [300, 50, 1200, 1500]], [45, 1500]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('normal control', ['Hello world', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['   ', [24000, 1001], [0, 70, 800, 7000]], [20, 835]), ('normal control', ['Two\\nlines here', [30000, 1001], [300, 50, 1200, 1500]], [36, 1202])], [('regression: base allowance', ['Hello world', [30, 1], [700, 100, 1000, 2000]], [51, 1700]), ('regression variant: base allowance', ['A much longer subtitle line to read', [30000, 1001], [300, 50, 1200, 1500]], [45, 1502]), ('partial repair probe: base allowance', ['Two\\nlines here', [24000, 1001], [700, 100, 1000, 2000]], [46, 1919]), ('partial repair variant: base allowance', ['Hello world', [24000, 1001], [700, 100, 1000, 2000]], [41, 1711]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['Hello world', [30000, 1001], [0, 70, 800, 7000]], [24, 801]), ('normal control', ['ok', [30, 1], [500, 60, 1000, 6000]], [30, 1000]), ('normal control', ['   ', [24, 1], [700, 100, 1000, 2000]], [24, 1000])], [('regression: base allowance', ['Two\\nlines here', [30, 1], [700, 100, 1000, 2000]], [57, 1900]), ('regression variant: base allowance', ['Hello world', [30, 1], [500, 60, 1000, 6000]], [33, 1100]), ('partial repair probe: base allowance', ['Hello world', [30000, 1001], [500, 60, 1000, 6000]], [33, 1102]), ('partial repair variant: base allowance', ['Two\\nlines here', [24, 1], [500, 60, 1000, 6000]], [30, 1250]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('normal control', ['Hi', [30000, 1001], [300, 50, 1200, 1500]], [36, 1202]), ('normal control', ['ok', [24, 1], [700, 100, 1000, 2000]], [24, 1000]), ('normal control', ['   ', [25, 1], [500, 60, 1000, 6000]], [25, 1000])], [('regression: base allowance', ['Two\\nlines here', [24000, 1001], [700, 100, 1000, 2000]], [46, 1919]), ('regression variant: base allowance', ['Hello world', [30000, 1001], [700, 100, 1000, 2000]], [51, 1702]), ('partial repair probe: base allowance', ['Hello world', [24000, 1001], [500, 60, 1000, 6000]], [27, 1127]), ('partial repair variant: base allowance', ['A much longer subtitle line to read', [30000, 1001], [500, 60, 1000, 6000]], [68, 2269]), ('boundary control', ['Hi', [25, 1], [500, 60, 1000, 6000]], [25, 1000]), ('boundary control', ['Two\\nlines here', [30000, 1001], [0, 70, 800, 7000]], [26, 868]), ('normal control', ['ok', [25, 1], [300, 50, 1200, 1500]], [30, 1200]), ('normal control', ['   ', [30, 1], [0, 70, 800, 7000]], [24, 800]), ('normal control', ['Two\\nlines here', [24, 1], [0, 70, 800, 7000]], [21, 875])]]\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 any subtitle 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-subtitle-cue-timing-recommended-duration-base-allowance","generated_at":"2026-09-29T14:49:33.994071+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Subtitle timing defects shift, hide or overlap captions that viewers depend on for comprehension and accessibility.","repair":"Add the base allowance to the per-character time.","root_cause":"The fixed base allowance is omitted from the duration formula.","sha256":"64f4bcd7ff789dbc71288af8623837b342cf42777765b5656761c23e516c8162","title":"Recommended cue duration on frame grid: base allowance · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.352,"exit_code":1,"observations":[{"actual":[44,1760],"check":"regression: base allowance","expected":[50,2000],"passed":false},{"actual":[30,1001],"check":"regression variant: base allowance","expected":[33,1102],"passed":false},{"actual":[30,1000],"check":"partial repair probe: base allowance","expected":[51,1700],"passed":false},{"actual":[30,1001],"check":"partial repair variant: base allowance","expected":[51,1702],"passed":false},{"actual":[25,1000],"check":"boundary control","expected":[25,1000],"passed":true},{"actual":[26,868],"check":"boundary control","expected":[26,868],"passed":true},{"actual":[25,1000],"check":"normal control","expected":[25,1000],"passed":true},{"actual":[30,1200],"check":"normal control","expected":[30,1200],"passed":true},{"actual":[20,834],"check":"normal control","expected":[20,834],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: base allowance\", \"actual\": [44, 1760], \"expected\": [50, 2000], \"passed\": false}, {\"check\": \"regression variant: base allowance\", \"actual\": [30, 1001], \"expected\": [33, 1102], \"passed\": false}, {\"check\": \"partial repair probe: base allowance\", \"actual\": [30, 1000], \"expected\": [51, 1700], \"passed\": false}, {\"check\": \"partial repair variant: base allowance\", \"actual\": [30, 1001], \"expected\": [51, 1702], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [25, 1000], \"expected\": [25, 1000], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [26, 868], \"expected\": [26, 868], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [25, 1000], \"expected\": [25, 1000], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [30, 1200], \"expected\": [30, 1200], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [20, 834], \"expected\": [20, 834], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.048,"exit_code":1,"observations":[{"actual":[44,1760],"check":"regression: base allowance","expected":[50,2000],"passed":false},{"actual":[30,1001],"check":"regression variant: base allowance","expected":[33,1102],"passed":false},{"actual":[30,1000],"check":"partial repair probe: base allowance","expected":[51,1700],"passed":false},{"actual":[30,1001],"check":"partial repair variant: base allowance","expected":[51,1702],"passed":false},{"actual":[25,1000],"check":"boundary control","expected":[25,1000],"passed":true},{"actual":[26,868],"check":"boundary control","expected":[26,868],"passed":true},{"actual":[25,1000],"check":"normal control","expected":[25,1000],"passed":true},{"actual":[30,1200],"check":"normal control","expected":[30,1200],"passed":true},{"actual":[20,834],"check":"normal control","expected":[20,834],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: base allowance\", \"actual\": [44, 1760], \"expected\": [50, 2000], \"passed\": false}, {\"check\": \"regression variant: base allowance\", \"actual\": [30, 1001], \"expected\": [33, 1102], \"passed\": false}, {\"check\": \"partial repair probe: base allowance\", \"actual\": [30, 1000], \"expected\": [51, 1700], \"passed\": false}, {\"check\": \"partial repair variant: base allowance\", \"actual\": [30, 1001], \"expected\": [51, 1702], \"passed\": false}, {\"check\": \"boundary control\", \"actual\": [25, 1000], \"expected\": [25, 1000], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [26, 868], \"expected\": [26, 868], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [25, 1000], \"expected\": [25, 1000], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [30, 1200], \"expected\": [30, 1200], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [20, 834], \"expected\": [20, 834], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.261,"exit_code":0,"observations":[{"actual":[50,2000],"check":"regression: base allowance","expected":[50,2000],"passed":true},{"actual":[33,1102],"check":"regression variant: base allowance","expected":[33,1102],"passed":true},{"actual":[51,1700],"check":"partial repair probe: base allowance","expected":[51,1700],"passed":true},{"actual":[51,1702],"check":"partial repair variant: base allowance","expected":[51,1702],"passed":true},{"actual":[25,1000],"check":"boundary control","expected":[25,1000],"passed":true},{"actual":[26,868],"check":"boundary control","expected":[26,868],"passed":true},{"actual":[25,1000],"check":"normal control","expected":[25,1000],"passed":true},{"actual":[30,1200],"check":"normal control","expected":[30,1200],"passed":true},{"actual":[20,834],"check":"normal control","expected":[20,834],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: base allowance\", \"actual\": [50, 2000], \"expected\": [50, 2000], \"passed\": true}, {\"check\": \"regression variant: base allowance\", \"actual\": [33, 1102], \"expected\": [33, 1102], \"passed\": true}, {\"check\": \"partial repair probe: base allowance\", \"actual\": [51, 1700], \"expected\": [51, 1700], \"passed\": true}, {\"check\": \"partial repair variant: base allowance\", \"actual\": [51, 1702], \"expected\": [51, 1702], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [25, 1000], \"expected\": [25, 1000], \"passed\": true}, {\"check\": \"boundary control\", \"actual\": [26, 868], \"expected\": [26, 868], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [25, 1000], \"expected\": [25, 1000], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [30, 1200], \"expected\": [30, 1200], \"passed\": true}, {\"check\": \"normal control\", \"actual\": [20, 834], \"expected\": [20, 834], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}