{"abstract":"With max_age 0, an hour-old rate is accepted.","category":"Currency rounding and FX conversion","checks":8,"contract":"solve(ticks, trade_ts, max_age): ticks is the published rate feed [[ts, rate], ...] in publication order. Use the tick with the greatest ts <= trade_ts; among ticks with equal ts the later-published one is a correction and wins. No eligible tick returns 'ERR:no-rate'. If max_age is not None and trade_ts - ts > max_age the rate is 'ERR:stale' (max_age 0 accepts only a same-instant tick). Return [ts, rate].","evaluation_group":"w2-currency_rounding_and_fx_conversion-as-of-rate-selection","failed_approach":"Testing 'is not None' but with >= rejects the same-instant tick that max_age 0 must accept.","family":"w2-currency_rounding_and_fx_conversion-as-of-rate-selection-zero-max-age","id":"FA-61981","implementations":{"attempt":{"sha256":"8c8213ff089b0e74bafc1403962164c16c3fdea8ff45204a35281ad9cc37d219","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN, ROUND_UP, ROUND_HALF_DOWN\nN = 1\nobservations = []\ndef solve(ticks, trade_ts, max_age):\n    best = None\n    for ts, r in ticks:\n        if ts <= trade_ts and (best is None or ts >= best[0]):\n            best = [ts, r]\n    if best is None: return 'ERR:no-rate'\n    if max_age is not None and trade_ts - best[0] >= max_age: return 'ERR:stale'\n    return best\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression zero-max-age 1', ([[3, '1.10']], 7, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[4, '1.2508'], [10, '1.2498']], 20, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('partial repair guard 2', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: correction wins', ([[1, '1.10'], [5, '1.20'], [5, '1.21'], [9, '1.30']], 7, 3), [5, '1.21']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale'),\n  ('control: only future', ([[9, '1.30']], 7, None), 'ERR:no-rate'),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05'])],\n [('regression zero-max-age 1',\n   ([[14, '1.1444'], [0, '1.1478'], [5, '1.1087'], [5, '1.1978'], [11, '1.2115'], [1, '1.2119']], 7, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[13, '1.1886'], [0, '1.0740'], [11, '1.0059']], 19, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[16, '1.0577'], [3, '1.1605'], [9, '1.0153'], [16, '1.0347'], [5, '1.1882']], 4, 1),\n   [3, '1.1605']),\n  ('partial repair guard 2', ([[10, '1.1254'], [1, '1.0516'], [3, '1.1640']], 2, 1), [1, '1.0516']),\n  ('control: same instant zero age', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05']),\n  ('control: age boundary', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate')],\n [('regression zero-max-age 1', ([[2, '1.1412'], [1, '1.0751'], [2, '1.0320']], 9, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[10, '1.2328'], [1, '1.0928'], [3, '1.1922'], [19, '1.2521'], [19, '1.2864']], 2, 0),\n   'ERR:stale'),\n  ('partial repair guard 1', ([[1, '1.2376'], [19, '1.2134'], [14, '1.2465']], 1, 0), [1, '1.2376']),\n  ('partial repair guard 2', ([[3, '1.2016'], [20, '1.0619'], [10, '1.1904'], [10, '1.1149']], 6, 3), [3, '1.2016']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate'),\n  ('control: out of order feed', ([[6, '1.26'], [2, '1.22'], [6, '1.19']], 6, 1), [6, '1.19']),\n  ('control: correction wins', ([[1, '1.10'], [5, '1.20'], [5, '1.21'], [9, '1.30']], 7, 3), [5, '1.21']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale')],\n [('regression zero-max-age 1', ([[17, '1.1378']], 20, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[17, '1.1794'], [15, '1.0788'], [2, '1.2545']], 12, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[4, '1.2845'], [1, '1.0456'], [3, '1.1500'], [14, '1.1676']], 17, 3), [14, '1.1676']),\n  ('partial repair guard 2', ([[14, '1.2739'], [20, '1.2257'], [0, '1.2886']], 16, 2), [14, '1.2739']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale'),\n  ('control: only future', ([[9, '1.30']], 7, None), 'ERR:no-rate'),\n  ('control: same instant zero age', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05'])],\n [('regression zero-max-age 1',\n   ([[19, '1.2232'], [14, '1.2765'], [15, '1.2799'], [12, '1.1738'], [19, '1.2213'], [3, '1.1869']], 20, 0),\n   'ERR:stale'),\n  ('regression zero-max-age 2', ([[3, '1.1365'], [2, '1.0481'], [13, '1.1897']], 14, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[5, '1.0271'], [11, '1.2757'], [10, '1.0041'], [14, '1.1151'], [2, '1.2167']], 14, 0),\n   [14, '1.1151']),\n  ('partial repair guard 2', ([[13, '1.1719'], [0, '1.0347'], [20, '1.2239'], [9, '1.1422'], [3, '1.0957']], 1, 1),\n   [0, '1.0347']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05']),\n  ('control: age boundary', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate'),\n  ('control: out of order feed', ([[6, '1.26'], [2, '1.22'], [6, '1.19']], 6, 1), [6, '1.19'])]]\nfor label, args, expected in cases[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":"456afc82c3e3e94a03fac0e0ed8fe16f423528ae397bc900f69148bcc411577d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN, ROUND_UP, ROUND_HALF_DOWN\nN = 1\nobservations = []\ndef solve(ticks, trade_ts, max_age):\n    best = None\n    for ts, r in ticks:\n        if ts <= trade_ts and (best is None or ts >= best[0]):\n            best = [ts, r]\n    if best is None: return 'ERR:no-rate'\n    if max_age and trade_ts - best[0] > max_age: return 'ERR:stale'\n    return best\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression zero-max-age 1', ([[3, '1.10']], 7, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[4, '1.2508'], [10, '1.2498']], 20, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('partial repair guard 2', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: correction wins', ([[1, '1.10'], [5, '1.20'], [5, '1.21'], [9, '1.30']], 7, 3), [5, '1.21']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale'),\n  ('control: only future', ([[9, '1.30']], 7, None), 'ERR:no-rate'),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05'])],\n [('regression zero-max-age 1',\n   ([[14, '1.1444'], [0, '1.1478'], [5, '1.1087'], [5, '1.1978'], [11, '1.2115'], [1, '1.2119']], 7, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[13, '1.1886'], [0, '1.0740'], [11, '1.0059']], 19, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[16, '1.0577'], [3, '1.1605'], [9, '1.0153'], [16, '1.0347'], [5, '1.1882']], 4, 1),\n   [3, '1.1605']),\n  ('partial repair guard 2', ([[10, '1.1254'], [1, '1.0516'], [3, '1.1640']], 2, 1), [1, '1.0516']),\n  ('control: same instant zero age', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05']),\n  ('control: age boundary', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate')],\n [('regression zero-max-age 1', ([[2, '1.1412'], [1, '1.0751'], [2, '1.0320']], 9, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[10, '1.2328'], [1, '1.0928'], [3, '1.1922'], [19, '1.2521'], [19, '1.2864']], 2, 0),\n   'ERR:stale'),\n  ('partial repair guard 1', ([[1, '1.2376'], [19, '1.2134'], [14, '1.2465']], 1, 0), [1, '1.2376']),\n  ('partial repair guard 2', ([[3, '1.2016'], [20, '1.0619'], [10, '1.1904'], [10, '1.1149']], 6, 3), [3, '1.2016']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate'),\n  ('control: out of order feed', ([[6, '1.26'], [2, '1.22'], [6, '1.19']], 6, 1), [6, '1.19']),\n  ('control: correction wins', ([[1, '1.10'], [5, '1.20'], [5, '1.21'], [9, '1.30']], 7, 3), [5, '1.21']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale')],\n [('regression zero-max-age 1', ([[17, '1.1378']], 20, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[17, '1.1794'], [15, '1.0788'], [2, '1.2545']], 12, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[4, '1.2845'], [1, '1.0456'], [3, '1.1500'], [14, '1.1676']], 17, 3), [14, '1.1676']),\n  ('partial repair guard 2', ([[14, '1.2739'], [20, '1.2257'], [0, '1.2886']], 16, 2), [14, '1.2739']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale'),\n  ('control: only future', ([[9, '1.30']], 7, None), 'ERR:no-rate'),\n  ('control: same instant zero age', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05'])],\n [('regression zero-max-age 1',\n   ([[19, '1.2232'], [14, '1.2765'], [15, '1.2799'], [12, '1.1738'], [19, '1.2213'], [3, '1.1869']], 20, 0),\n   'ERR:stale'),\n  ('regression zero-max-age 2', ([[3, '1.1365'], [2, '1.0481'], [13, '1.1897']], 14, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[5, '1.0271'], [11, '1.2757'], [10, '1.0041'], [14, '1.1151'], [2, '1.2167']], 14, 0),\n   [14, '1.1151']),\n  ('partial repair guard 2', ([[13, '1.1719'], [0, '1.0347'], [20, '1.2239'], [9, '1.1422'], [3, '1.0957']], 1, 1),\n   [0, '1.0347']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05']),\n  ('control: age boundary', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate'),\n  ('control: out of order feed', ([[6, '1.26'], [2, '1.22'], [6, '1.19']], 6, 1), [6, '1.19'])]]\nfor label, args, expected in cases[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":"5b133a0533d88003688fb6ae5c3cd94e9ccc781f3d60ab7a72d0b4113edf92da","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN, ROUND_UP, ROUND_HALF_DOWN\nN = 1\nobservations = []\ndef solve(ticks, trade_ts, max_age):\n    best = None\n    for ts, r in ticks:\n        if ts <= trade_ts and (best is None or ts >= best[0]):\n            best = [ts, r]\n    if best is None: return 'ERR:no-rate'\n    if max_age is not None and trade_ts - best[0] > max_age: return 'ERR:stale'\n    return best\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression zero-max-age 1', ([[3, '1.10']], 7, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[4, '1.2508'], [10, '1.2498']], 20, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('partial repair guard 2', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: correction wins', ([[1, '1.10'], [5, '1.20'], [5, '1.21'], [9, '1.30']], 7, 3), [5, '1.21']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale'),\n  ('control: only future', ([[9, '1.30']], 7, None), 'ERR:no-rate'),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05'])],\n [('regression zero-max-age 1',\n   ([[14, '1.1444'], [0, '1.1478'], [5, '1.1087'], [5, '1.1978'], [11, '1.2115'], [1, '1.2119']], 7, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[13, '1.1886'], [0, '1.0740'], [11, '1.0059']], 19, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[16, '1.0577'], [3, '1.1605'], [9, '1.0153'], [16, '1.0347'], [5, '1.1882']], 4, 1),\n   [3, '1.1605']),\n  ('partial repair guard 2', ([[10, '1.1254'], [1, '1.0516'], [3, '1.1640']], 2, 1), [1, '1.0516']),\n  ('control: same instant zero age', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05']),\n  ('control: age boundary', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate')],\n [('regression zero-max-age 1', ([[2, '1.1412'], [1, '1.0751'], [2, '1.0320']], 9, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[10, '1.2328'], [1, '1.0928'], [3, '1.1922'], [19, '1.2521'], [19, '1.2864']], 2, 0),\n   'ERR:stale'),\n  ('partial repair guard 1', ([[1, '1.2376'], [19, '1.2134'], [14, '1.2465']], 1, 0), [1, '1.2376']),\n  ('partial repair guard 2', ([[3, '1.2016'], [20, '1.0619'], [10, '1.1904'], [10, '1.1149']], 6, 3), [3, '1.2016']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate'),\n  ('control: out of order feed', ([[6, '1.26'], [2, '1.22'], [6, '1.19']], 6, 1), [6, '1.19']),\n  ('control: correction wins', ([[1, '1.10'], [5, '1.20'], [5, '1.21'], [9, '1.30']], 7, 3), [5, '1.21']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale')],\n [('regression zero-max-age 1', ([[17, '1.1378']], 20, 0), 'ERR:stale'),\n  ('regression zero-max-age 2', ([[17, '1.1794'], [15, '1.0788'], [2, '1.2545']], 12, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[4, '1.2845'], [1, '1.0456'], [3, '1.1500'], [14, '1.1676']], 17, 3), [14, '1.1676']),\n  ('partial repair guard 2', ([[14, '1.2739'], [20, '1.2257'], [0, '1.2886']], 16, 2), [14, '1.2739']),\n  ('control: stale', ([[1, '1.10'], [9, '1.30']], 7, 3), 'ERR:stale'),\n  ('control: only future', ([[9, '1.30']], 7, None), 'ERR:no-rate'),\n  ('control: same instant zero age', ([[7, '1.40']], 7, 0), [7, '1.40']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05'])],\n [('regression zero-max-age 1',\n   ([[19, '1.2232'], [14, '1.2765'], [15, '1.2799'], [12, '1.1738'], [19, '1.2213'], [3, '1.1869']], 20, 0),\n   'ERR:stale'),\n  ('regression zero-max-age 2', ([[3, '1.1365'], [2, '1.0481'], [13, '1.1897']], 14, 0), 'ERR:stale'),\n  ('partial repair guard 1', ([[5, '1.0271'], [11, '1.2757'], [10, '1.0041'], [14, '1.1151'], [2, '1.2167']], 14, 0),\n   [14, '1.1151']),\n  ('partial repair guard 2', ([[13, '1.1719'], [0, '1.0347'], [20, '1.2239'], [9, '1.1422'], [3, '1.0957']], 1, 1),\n   [0, '1.0347']),\n  ('control: unlimited age', ([[0, '1.05']], 20, None), [0, '1.05']),\n  ('control: age boundary', ([[4, '1.11'], [12, '1.50']], 8, 4), [4, '1.11']),\n  ('control: empty feed', ([], 3, 5), 'ERR:no-rate'),\n  ('control: out of order feed', ([[6, '1.26'], [2, '1.22'], [6, '1.19']], 6, 1), [6, '1.19'])]]\nfor label, args, expected in cases[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 makes no claim of conformance to any real regulation, standard, or institution's rules. 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-currency_rounding_and_fx_conversion-as-of-rate-selection-zero-max-age","generated_at":"2026-09-29T14:47:00.356255+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Currency amounts must be rounded at the right stage and in the right unit, or ledgers, quotes and settlements drift by minor units.","repair":"Only None disables the age limit; 0 accepts only same-instant ticks.","root_cause":"The age check is guarded by 'if max_age', which is false for 0.","sha256":"37d7995d8c40dc1cf7a9d4a22d09fdb1cee88316dd0040a24b683ccff09dcec9","title":"A zero maximum age is treated as no age limit · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.819,"exit_code":1,"observations":[{"actual":"ERR:stale","check":"regression zero-max-age 1","expected":"ERR:stale","passed":true},{"actual":"ERR:stale","check":"regression zero-max-age 2","expected":"ERR:stale","passed":true},{"actual":"ERR:stale","check":"partial repair guard 1","expected":[7,"1.40"],"passed":false},{"actual":"ERR:stale","check":"partial repair guard 2","expected":[4,"1.11"],"passed":false},{"actual":[5,"1.21"],"check":"control: correction wins","expected":[5,"1.21"],"passed":true},{"actual":"ERR:stale","check":"control: stale","expected":"ERR:stale","passed":true},{"actual":"ERR:no-rate","check":"control: only future","expected":"ERR:no-rate","passed":true},{"actual":[0,"1.05"],"check":"control: unlimited age","expected":[0,"1.05"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression zero-max-age 1\", \"actual\": \"ERR:stale\", \"expected\": \"ERR:stale\", \"passed\": true}, {\"check\": \"regression zero-max-age 2\", \"actual\": \"ERR:stale\", \"expected\": \"ERR:stale\", \"passed\": true}, {\"check\": \"partial repair guard 1\", \"actual\": \"ERR:stale\", \"expected\": [7, \"1.40\"], \"passed\": false}, {\"check\": \"partial repair guard 2\", \"actual\": \"ERR:stale\", \"expected\": [4, \"1.11\"], \"passed\": false}, {\"check\": \"control: correction wins\", \"actual\": [5, \"1.21\"], \"expected\": [5, \"1.21\"], \"passed\": true}, {\"check\": \"control: stale\", \"actual\": \"ERR:stale\", \"expected\": \"ERR:stale\", \"passed\": true}, {\"check\": \"control: only future\", \"actual\": \"ERR:no-rate\", \"expected\": \"ERR:no-rate\", \"passed\": true}, {\"check\": \"control: unlimited age\", \"actual\": [0, \"1.05\"], \"expected\": [0, \"1.05\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.625,"exit_code":1,"observations":[{"actual":[3,"1.10"],"check":"regression zero-max-age 1","expected":"ERR:stale","passed":false},{"actual":[10,"1.2498"],"check":"regression zero-max-age 2","expected":"ERR:stale","passed":false},{"actual":[7,"1.40"],"check":"partial repair guard 1","expected":[7,"1.40"],"passed":true},{"actual":[4,"1.11"],"check":"partial repair guard 2","expected":[4,"1.11"],"passed":true},{"actual":[5,"1.21"],"check":"control: correction wins","expected":[5,"1.21"],"passed":true},{"actual":"ERR:stale","check":"control: stale","expected":"ERR:stale","passed":true},{"actual":"ERR:no-rate","check":"control: only future","expected":"ERR:no-rate","passed":true},{"actual":[0,"1.05"],"check":"control: unlimited age","expected":[0,"1.05"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression zero-max-age 1\", \"actual\": [3, \"1.10\"], \"expected\": \"ERR:stale\", \"passed\": false}, {\"check\": \"regression zero-max-age 2\", \"actual\": [10, \"1.2498\"], \"expected\": \"ERR:stale\", \"passed\": false}, {\"check\": \"partial repair guard 1\", \"actual\": [7, \"1.40\"], \"expected\": [7, \"1.40\"], \"passed\": true}, {\"check\": \"partial repair guard 2\", \"actual\": [4, \"1.11\"], \"expected\": [4, \"1.11\"], \"passed\": true}, {\"check\": \"control: correction wins\", \"actual\": [5, \"1.21\"], \"expected\": [5, \"1.21\"], \"passed\": true}, {\"check\": \"control: stale\", \"actual\": \"ERR:stale\", \"expected\": \"ERR:stale\", \"passed\": true}, {\"check\": \"control: only future\", \"actual\": \"ERR:no-rate\", \"expected\": \"ERR:no-rate\", \"passed\": true}, {\"check\": \"control: unlimited age\", \"actual\": [0, \"1.05\"], \"expected\": [0, \"1.05\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.264,"exit_code":0,"observations":[{"actual":"ERR:stale","check":"regression zero-max-age 1","expected":"ERR:stale","passed":true},{"actual":"ERR:stale","check":"regression zero-max-age 2","expected":"ERR:stale","passed":true},{"actual":[7,"1.40"],"check":"partial repair guard 1","expected":[7,"1.40"],"passed":true},{"actual":[4,"1.11"],"check":"partial repair guard 2","expected":[4,"1.11"],"passed":true},{"actual":[5,"1.21"],"check":"control: correction wins","expected":[5,"1.21"],"passed":true},{"actual":"ERR:stale","check":"control: stale","expected":"ERR:stale","passed":true},{"actual":"ERR:no-rate","check":"control: only future","expected":"ERR:no-rate","passed":true},{"actual":[0,"1.05"],"check":"control: unlimited age","expected":[0,"1.05"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression zero-max-age 1\", \"actual\": \"ERR:stale\", \"expected\": \"ERR:stale\", \"passed\": true}, {\"check\": \"regression zero-max-age 2\", \"actual\": \"ERR:stale\", \"expected\": \"ERR:stale\", \"passed\": true}, {\"check\": \"partial repair guard 1\", \"actual\": [7, \"1.40\"], \"expected\": [7, \"1.40\"], \"passed\": true}, {\"check\": \"partial repair guard 2\", \"actual\": [4, \"1.11\"], \"expected\": [4, \"1.11\"], \"passed\": true}, {\"check\": \"control: correction wins\", \"actual\": [5, \"1.21\"], \"expected\": [5, \"1.21\"], \"passed\": true}, {\"check\": \"control: stale\", \"actual\": \"ERR:stale\", \"expected\": \"ERR:stale\", \"passed\": true}, {\"check\": \"control: only future\", \"actual\": \"ERR:no-rate\", \"expected\": \"ERR:no-rate\", \"passed\": true}, {\"check\": \"control: unlimited age\", \"actual\": [0, \"1.05\"], \"expected\": [0, \"1.05\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}