{"abstract":"Growth rates are overstated whenever zero-count days are dropped.","category":"Epidemic compartment models","checks":7,"contract":"r is the least-squares slope of ln(count) against day index over days with positive counts (original day indices kept); doubling time ln2/r only when r>0 else None; latent time Tl=latent_fraction*Tg, infectious time Ti=Tg-Tl, R=(1+r*Tl)*(1+r*Ti); return [r rounded 6, doubling rounded 4, R rounded 6]; None with fewer than two positive days.","evaluation_group":"w2-epidemic-growth-rate-r","failed_approach":"A log(c+1) transform keeps zero days but biases the slope.","family":"w2-epidemic-growth-rate-r-zero-count-day-alignment","id":"FA-65141","implementations":{"attempt":{"sha256":"b7b9814fe63bafcac344273886e4c80aaf817cd3798f525df3b8b7de4b81b3a0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(counts, generation_mean, latent_fraction):\n    pts = [(d, math.log(c + 1)) for d, c in enumerate(counts)]\n    if len(pts) < 2:\n        return None\n    n = len(pts)\n    mx = sum(d for d, _ in pts) / n\n    my = sum(y for _, y in pts) / n\n    sxx = sum((d - mx) ** 2 for d, _ in pts)\n    sxy = sum((d - mx) * (y - my) for d, y in pts)\n    r = sxy / sxx\n    doubling = round(math.log(2) / r, 4) if r > 0 else None\n    tl = latent_fraction * generation_mean\n    ti = generation_mean - tl\n    rep = (1 + r * tl) * (1 + r * ti)\n    return [round(r, 6), doubling, round(rep, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592])],\n [('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])],\n [('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])],\n [('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592])],\n [('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])]]\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":"6d1ae67bc55c06925c54c0f74f527acefa5bacd4ad351dc488adca8ec177342f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(counts, generation_mean, latent_fraction):\n    pts = [(d, math.log(c)) for d, c in enumerate([c for c in counts if c > 0])]\n    if len(pts) < 2:\n        return None\n    n = len(pts)\n    mx = sum(d for d, _ in pts) / n\n    my = sum(y for _, y in pts) / n\n    sxx = sum((d - mx) ** 2 for d, _ in pts)\n    sxy = sum((d - mx) * (y - my) for d, y in pts)\n    r = sxy / sxx\n    doubling = round(math.log(2) / r, 4) if r > 0 else None\n    tl = latent_fraction * generation_mean\n    ti = generation_mean - tl\n    rep = (1 + r * tl) * (1 + r * ti)\n    return [round(r, 6), doubling, round(rep, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592])],\n [('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])],\n [('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])],\n [('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592])],\n [('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])]]\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":"9151612269471936e44775a03957c1e54bbed8806aac1d9b21d8b811dd1369de","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(counts, generation_mean, latent_fraction):\n    pts = [(d, math.log(c)) for d, c in enumerate(counts) if c > 0]\n    if len(pts) < 2:\n        return None\n    n = len(pts)\n    mx = sum(d for d, _ in pts) / n\n    my = sum(y for _, y in pts) / n\n    sxx = sum((d - mx) ** 2 for d, _ in pts)\n    sxy = sum((d - mx) * (y - my) for d, y in pts)\n    r = sxy / sxx\n    doubling = round(math.log(2) / r, 4) if r > 0 else None\n    tl = latent_fraction * generation_mean\n    ti = generation_mean - tl\n    rep = (1 + r * tl) * (1 + r * ti)\n    return [round(r, 6), doubling, round(rep, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592])],\n [('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])],\n [('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])],\n [('regression: noisy growth', ([3, 5, 6, 10, 14, 19, 30], 5.0, 0.4), [0.372323, 1.8617, 3.693365]),\n  ('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('regression: declining', ([50, 41, 30, 26, 18, 15], 4.0, 0.3), [-0.246645, None, 0.217822]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592])],\n [('regression: with reporting gap zero', ([2, 4, 0, 9, 13, 0, 30], 6.0, 0.5), [0.437065, 1.5859, 5.341617]),\n  ('control: flat', ([7, 7, 7, 7], 5.0, 0.5), [0.0, None, 1.0]),\n  ('regression: too few positives', ([0, 0, 4, 0], 5.0, 0.5), None),\n  ('regression: exact doubling per day', ([1, 2, 4, 8, 16], 3.0, 0.5), [0.693147, 1.0, 4.160461]),\n  ('regression: leading zeros', ([0, 0, 1, 3, 5, 12], 7.0, 0.6), [0.796555, 0.8702, 14.037592]),\n  ('regression: no latency', ([10, 13, 17, 22, 28], 5.0, 0.0), [0.258533, 2.6811, 2.292666]),\n  ('regression: two points', ([5, 9], 4.5, 0.25), [0.587787, 1.1792, 4.956834])]]\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":"Deterministic bounded teaching model with a stipulated contract; not a validated scientific or public-health modelling library. 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-epidemic-growth-rate-r-zero-count-day-alignment","generated_at":"2026-09-29T14:47:31.352733+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Compartmental epidemic calculations drive outbreak forecasts, vaccine targets and hospital planning; a single wrong flow, rate conversion or boundary silently changes every downstream number.","repair":"Restore the zero-count day alignment rule: `[(d, math.log(c)) for d, c in enumerate(counts) if c > 0]`.","root_cause":"Zero days are filtered before enumerating, compressing the time axis.","sha256":"2fe8cb2942a0ce80e3a279b04723140385bef37732329cb2246844c5fb71e315","title":"Epidemic growth rate, doubling time and R: zero-count day alignment · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.884,"exit_code":1,"observations":[{"actual":[0.332613,2.0839,3.326854],"check":"regression: noisy growth","expected":[0.372323,1.8617,3.693365],"passed":false},{"actual":[0.229511,3.0201,2.851143],"check":"regression: with reporting gap zero","expected":[0.437065,1.5859,5.341617],"passed":false},{"actual":[-0.237544,null,0.23942],"check":"regression: declining","expected":[-0.246645,null,0.217822],"passed":false},{"actual":[0.0,null,1.0],"check":"control: flat","expected":[0.0,null,1.0],"passed":true},{"actual":[0.160944,4.3068,1.966612],"check":"regression: too few positives","expected":null,"passed":false},{"actual":[0.537874,1.2887,3.264568],"check":"regression: exact doubling per day","expected":[0.693147,1.0,4.160461],"passed":false},{"actual":[0.539805,1.2841,8.205373],"check":"regression: leading zeros","expected":[0.796555,0.8702,14.037592],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: noisy growth\", \"actual\": [0.332613, 2.0839, 3.326854], \"expected\": [0.372323, 1.8617, 3.693365], \"passed\": false}, {\"check\": \"regression: with reporting gap zero\", \"actual\": [0.229511, 3.0201, 2.851143], \"expected\": [0.437065, 1.5859, 5.341617], \"passed\": false}, {\"check\": \"regression: declining\", \"actual\": [-0.237544, null, 0.23942], \"expected\": [-0.246645, null, 0.217822], \"passed\": false}, {\"check\": \"control: flat\", \"actual\": [0.0, null, 1.0], \"expected\": [0.0, null, 1.0], \"passed\": true}, {\"check\": \"regression: too few positives\", \"actual\": [0.160944, 4.3068, 1.966612], \"expected\": null, \"passed\": false}, {\"check\": \"regression: exact doubling per day\", \"actual\": [0.537874, 1.2887, 3.264568], \"expected\": [0.693147, 1.0, 4.160461], \"passed\": false}, {\"check\": \"regression: leading zeros\", \"actual\": [0.539805, 1.2841, 8.205373], \"expected\": [0.796555, 0.8702, 14.037592], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.327,"exit_code":1,"observations":[{"actual":[0.372323,1.8617,3.693365],"check":"regression: noisy growth","expected":[0.372323,1.8617,3.693365],"passed":true},{"actual":[0.659476,1.0511,8.871025],"check":"regression: with reporting gap zero","expected":[0.437065,1.5859,5.341617],"passed":false},{"actual":[-0.246645,null,0.217822],"check":"regression: declining","expected":[-0.246645,null,0.217822],"passed":true},{"actual":[0.0,null,1.0],"check":"control: flat","expected":[0.0,null,1.0],"passed":true},{"actual":null,"check":"regression: too few positives","expected":null,"passed":true},{"actual":[0.693147,1.0,4.160461],"check":"regression: exact doubling per day","expected":[0.693147,1.0,4.160461],"passed":true},{"actual":[0.796555,0.8702,14.037592],"check":"regression: leading zeros","expected":[0.796555,0.8702,14.037592],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: noisy growth\", \"actual\": [0.372323, 1.8617, 3.693365], \"expected\": [0.372323, 1.8617, 3.693365], \"passed\": true}, {\"check\": \"regression: with reporting gap zero\", \"actual\": [0.659476, 1.0511, 8.871025], \"expected\": [0.437065, 1.5859, 5.341617], \"passed\": false}, {\"check\": \"regression: declining\", \"actual\": [-0.246645, null, 0.217822], \"expected\": [-0.246645, null, 0.217822], \"passed\": true}, {\"check\": \"control: flat\", \"actual\": [0.0, null, 1.0], \"expected\": [0.0, null, 1.0], \"passed\": true}, {\"check\": \"regression: too few positives\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression: exact doubling per day\", \"actual\": [0.693147, 1.0, 4.160461], \"expected\": [0.693147, 1.0, 4.160461], \"passed\": true}, {\"check\": \"regression: leading zeros\", \"actual\": [0.796555, 0.8702, 14.037592], \"expected\": [0.796555, 0.8702, 14.037592], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.435,"exit_code":0,"observations":[{"actual":[0.372323,1.8617,3.693365],"check":"regression: noisy growth","expected":[0.372323,1.8617,3.693365],"passed":true},{"actual":[0.437065,1.5859,5.341617],"check":"regression: with reporting gap zero","expected":[0.437065,1.5859,5.341617],"passed":true},{"actual":[-0.246645,null,0.217822],"check":"regression: declining","expected":[-0.246645,null,0.217822],"passed":true},{"actual":[0.0,null,1.0],"check":"control: flat","expected":[0.0,null,1.0],"passed":true},{"actual":null,"check":"regression: too few positives","expected":null,"passed":true},{"actual":[0.693147,1.0,4.160461],"check":"regression: exact doubling per day","expected":[0.693147,1.0,4.160461],"passed":true},{"actual":[0.796555,0.8702,14.037592],"check":"regression: leading zeros","expected":[0.796555,0.8702,14.037592],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: noisy growth\", \"actual\": [0.372323, 1.8617, 3.693365], \"expected\": [0.372323, 1.8617, 3.693365], \"passed\": true}, {\"check\": \"regression: with reporting gap zero\", \"actual\": [0.437065, 1.5859, 5.341617], \"expected\": [0.437065, 1.5859, 5.341617], \"passed\": true}, {\"check\": \"regression: declining\", \"actual\": [-0.246645, null, 0.217822], \"expected\": [-0.246645, null, 0.217822], \"passed\": true}, {\"check\": \"control: flat\", \"actual\": [0.0, null, 1.0], \"expected\": [0.0, null, 1.0], \"passed\": true}, {\"check\": \"regression: too few positives\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression: exact doubling per day\", \"actual\": [0.693147, 1.0, 4.160461], \"expected\": [0.693147, 1.0, 4.160461], \"passed\": true}, {\"check\": \"regression: leading zeros\", \"actual\": [0.796555, 0.8702, 14.037592], \"expected\": [0.796555, 0.8702, 14.037592], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}