{"abstract":"The reported annual growth ratio is really growth since the initial year, or a stale total.","category":"Ecological population dynamics","checks":7,"contract":"Births new[0] = sum f_i*n_i; survivors new[i+1] = s_i*n_i; with plus_group the last class also retains s_last*n_last; ratio is total(t)/total(t-1) of the final year (None if the previous total was 0 or no years); return [final vector rounded 4, total rounded 4, ratio rounded 6].","evaluation_group":"w2-ecopop-leslie-projection","failed_approach":"Taking the total after advancing makes the ratio identically one.","family":"w2-ecopop-leslie-projection-growth-ratio-base","id":"FA-65466","implementations":{"attempt":{"sha256":"1e50e9a90e87a96f0926e5af08444fd5d330f57cb0ba1c0c7c92e51f8e5a1235","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(fecundity, survival, n0, years, plus_group):\n    m = len(n0)\n    n = [float(x) for x in n0]\n    ratio = None\n    prev_total = sum(n)\n    for _ in range(years):\n        new = [0.0] * m\n        new[0] = sum(fecundity[i] * n[i] for i in range(m))\n        for i in range(m - 1):\n            new[i + 1] = survival[i] * n[i]\n        if plus_group:\n            new[m - 1] += survival[m - 1] * n[m - 1]\n        n = new\n        prev_total = sum(n)\n        ratio = sum(n) / prev_total if prev_total > 0 else None\n    return [[round(x, 4) for x in n], round(sum(n), 4), None if ratio is None else round(ratio, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])]]\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":"2c711ab9f911a8d65f6d808c87d1e087b6f74450805213d97335ceff7512a15d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(fecundity, survival, n0, years, plus_group):\n    m = len(n0)\n    n = [float(x) for x in n0]\n    ratio = None\n    prev_total = sum(n)\n    for _ in range(years):\n        new = [0.0] * m\n        new[0] = sum(fecundity[i] * n[i] for i in range(m))\n        for i in range(m - 1):\n            new[i + 1] = survival[i] * n[i]\n        if plus_group:\n            new[m - 1] += survival[m - 1] * n[m - 1]\n        n = new\n        ratio = sum(n) / prev_total if prev_total > 0 else None\n    return [[round(x, 4) for x in n], round(sum(n), 4), None if ratio is None else round(ratio, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])]]\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":"6696b5dc59d2269be757fccd60d44e8a45a5f2df2b9898459461058bf9db7e4a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(fecundity, survival, n0, years, plus_group):\n    m = len(n0)\n    n = [float(x) for x in n0]\n    ratio = None\n    prev_total = sum(n)\n    for _ in range(years):\n        new = [0.0] * m\n        new[0] = sum(fecundity[i] * n[i] for i in range(m))\n        for i in range(m - 1):\n            new[i + 1] = survival[i] * n[i]\n        if plus_group:\n            new[m - 1] += survival[m - 1] * n[m - 1]\n        prev_total = sum(n)\n        n = new\n        ratio = sum(n) / prev_total if prev_total > 0 else None\n    return [[round(x, 4) for x in n], round(sum(n), 4), None if ratio is None else round(ratio, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: plus group fish',\n   ([0.0, 0.5, 2.0], [0.5, 0.6, 0.8], [200, 80, 40], 4, True),\n   [[322.9, 139.0, 171.16], 633.06, 1.221652]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])],\n [('regression: three-class bird',\n   ([0.0, 1.2, 1.8], [0.4, 0.7], [100, 50, 20], 3, False),\n   [[96.48, 44.4, 26.88], 167.76, 0.94566]),\n  ('control: extinct population', ([0.0, 1.0], [0.5], [0, 0], 2, False), [[0.0, 0.0], 0.0, None]),\n  ('control: zero years', ([0.0, 1.0], [0.5], [10, 10], 0, False), [[10.0, 10.0], 20.0, None]),\n  ('regression: juvenile breeders',\n   ([0.3, 0.9, 1.1], [0.6, 0.5, 0.2], [50, 30, 10], 3, True),\n   [[67.34, 36.96, 19.58], 123.88, 1.10805]),\n  ('regression: single step',\n   ([0.2, 1.5, 0.0], [0.8, 0.3], [10, 20, 30], 1, False),\n   [[32.0, 8.0, 6.0], 46.0, 0.766667]),\n  ('regression: senescent plus group',\n   ([0.0, 0.0, 3.0], [0.9, 0.9, 0.5], [0, 0, 10], 3, True),\n   [[7.5, 13.5, 25.55], 46.55, 1.046067]),\n  ('regression: four classes',\n   ([0.0, 0.0, 1.0, 2.0], [0.5, 0.6, 0.7], [40, 30, 20, 10], 5, False),\n   [[30.6, 14.4, 11.16, 9.66], 65.82, 0.94569])]]\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-ecopop-leslie-projection-growth-ratio-base","generated_at":"2026-09-29T14:47:34.135621+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Population projections set harvest quotas, conservation status and pest-control timing; a wrong update order, boundary or rate conversion silently changes management advice.","repair":"Restore the growth ratio base rule: `prev_total = sum(n) / n = new`.","root_cause":"The previous-year total is never refreshed before advancing.","sha256":"d102e6ed78c6fc0a1dfcc5871c34da487489c0c4673173a72678ae45a3bed96c","title":"Leslie matrix projection with optional plus group: growth ratio base · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.704,"exit_code":1,"observations":[{"actual":[[96.48,44.4,26.88],167.76,1.0],"check":"regression: three-class bird","expected":[[96.48,44.4,26.88],167.76,0.94566],"passed":false},{"actual":[[322.9,139.0,171.16],633.06,1.0],"check":"regression: plus group fish","expected":[[322.9,139.0,171.16],633.06,1.221652],"passed":false},{"actual":[[0.0,0.0],0.0,null],"check":"control: extinct population","expected":[[0.0,0.0],0.0,null],"passed":true},{"actual":[[10.0,10.0],20.0,null],"check":"control: zero years","expected":[[10.0,10.0],20.0,null],"passed":true},{"actual":[[67.34,36.96,19.58],123.88,1.0],"check":"regression: juvenile breeders","expected":[[67.34,36.96,19.58],123.88,1.10805],"passed":false},{"actual":[[32.0,8.0,6.0],46.0,1.0],"check":"regression: single step","expected":[[32.0,8.0,6.0],46.0,0.766667],"passed":false},{"actual":[[7.5,13.5,25.55],46.55,1.0],"check":"regression: senescent plus group","expected":[[7.5,13.5,25.55],46.55,1.046067],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: three-class bird\", \"actual\": [[96.48, 44.4, 26.88], 167.76, 1.0], \"expected\": [[96.48, 44.4, 26.88], 167.76, 0.94566], \"passed\": false}, {\"check\": \"regression: plus group fish\", \"actual\": [[322.9, 139.0, 171.16], 633.06, 1.0], \"expected\": [[322.9, 139.0, 171.16], 633.06, 1.221652], \"passed\": false}, {\"check\": \"control: extinct population\", \"actual\": [[0.0, 0.0], 0.0, null], \"expected\": [[0.0, 0.0], 0.0, null], \"passed\": true}, {\"check\": \"control: zero years\", \"actual\": [[10.0, 10.0], 20.0, null], \"expected\": [[10.0, 10.0], 20.0, null], \"passed\": true}, {\"check\": \"regression: juvenile breeders\", \"actual\": [[67.34, 36.96, 19.58], 123.88, 1.0], \"expected\": [[67.34, 36.96, 19.58], 123.88, 1.10805], \"passed\": false}, {\"check\": \"regression: single step\", \"actual\": [[32.0, 8.0, 6.0], 46.0, 1.0], \"expected\": [[32.0, 8.0, 6.0], 46.0, 0.766667], \"passed\": false}, {\"check\": \"regression: senescent plus group\", \"actual\": [[7.5, 13.5, 25.55], 46.55, 1.0], \"expected\": [[7.5, 13.5, 25.55], 46.55, 1.046067], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":50.103,"exit_code":1,"observations":[{"actual":[[96.48,44.4,26.88],167.76,0.986824],"check":"regression: three-class bird","expected":[[96.48,44.4,26.88],167.76,0.94566],"passed":false},{"actual":[[322.9,139.0,171.16],633.06,1.978312],"check":"regression: plus group fish","expected":[[322.9,139.0,171.16],633.06,1.221652],"passed":false},{"actual":[[0.0,0.0],0.0,null],"check":"control: extinct population","expected":[[0.0,0.0],0.0,null],"passed":true},{"actual":[[10.0,10.0],20.0,null],"check":"control: zero years","expected":[[10.0,10.0],20.0,null],"passed":true},{"actual":[[67.34,36.96,19.58],123.88,1.376444],"check":"regression: juvenile breeders","expected":[[67.34,36.96,19.58],123.88,1.10805],"passed":false},{"actual":[[32.0,8.0,6.0],46.0,0.766667],"check":"regression: single step","expected":[[32.0,8.0,6.0],46.0,0.766667],"passed":true},{"actual":[[7.5,13.5,25.55],46.55,4.655],"check":"regression: senescent plus group","expected":[[7.5,13.5,25.55],46.55,1.046067],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: three-class bird\", \"actual\": [[96.48, 44.4, 26.88], 167.76, 0.986824], \"expected\": [[96.48, 44.4, 26.88], 167.76, 0.94566], \"passed\": false}, {\"check\": \"regression: plus group fish\", \"actual\": [[322.9, 139.0, 171.16], 633.06, 1.978312], \"expected\": [[322.9, 139.0, 171.16], 633.06, 1.221652], \"passed\": false}, {\"check\": \"control: extinct population\", \"actual\": [[0.0, 0.0], 0.0, null], \"expected\": [[0.0, 0.0], 0.0, null], \"passed\": true}, {\"check\": \"control: zero years\", \"actual\": [[10.0, 10.0], 20.0, null], \"expected\": [[10.0, 10.0], 20.0, null], \"passed\": true}, {\"check\": \"regression: juvenile breeders\", \"actual\": [[67.34, 36.96, 19.58], 123.88, 1.376444], \"expected\": [[67.34, 36.96, 19.58], 123.88, 1.10805], \"passed\": false}, {\"check\": \"regression: single step\", \"actual\": [[32.0, 8.0, 6.0], 46.0, 0.766667], \"expected\": [[32.0, 8.0, 6.0], 46.0, 0.766667], \"passed\": true}, {\"check\": \"regression: senescent plus group\", \"actual\": [[7.5, 13.5, 25.55], 46.55, 4.655], \"expected\": [[7.5, 13.5, 25.55], 46.55, 1.046067], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.22,"exit_code":0,"observations":[{"actual":[[96.48,44.4,26.88],167.76,0.94566],"check":"regression: three-class bird","expected":[[96.48,44.4,26.88],167.76,0.94566],"passed":true},{"actual":[[322.9,139.0,171.16],633.06,1.221652],"check":"regression: plus group fish","expected":[[322.9,139.0,171.16],633.06,1.221652],"passed":true},{"actual":[[0.0,0.0],0.0,null],"check":"control: extinct population","expected":[[0.0,0.0],0.0,null],"passed":true},{"actual":[[10.0,10.0],20.0,null],"check":"control: zero years","expected":[[10.0,10.0],20.0,null],"passed":true},{"actual":[[67.34,36.96,19.58],123.88,1.10805],"check":"regression: juvenile breeders","expected":[[67.34,36.96,19.58],123.88,1.10805],"passed":true},{"actual":[[32.0,8.0,6.0],46.0,0.766667],"check":"regression: single step","expected":[[32.0,8.0,6.0],46.0,0.766667],"passed":true},{"actual":[[7.5,13.5,25.55],46.55,1.046067],"check":"regression: senescent plus group","expected":[[7.5,13.5,25.55],46.55,1.046067],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: three-class bird\", \"actual\": [[96.48, 44.4, 26.88], 167.76, 0.94566], \"expected\": [[96.48, 44.4, 26.88], 167.76, 0.94566], \"passed\": true}, {\"check\": \"regression: plus group fish\", \"actual\": [[322.9, 139.0, 171.16], 633.06, 1.221652], \"expected\": [[322.9, 139.0, 171.16], 633.06, 1.221652], \"passed\": true}, {\"check\": \"control: extinct population\", \"actual\": [[0.0, 0.0], 0.0, null], \"expected\": [[0.0, 0.0], 0.0, null], \"passed\": true}, {\"check\": \"control: zero years\", \"actual\": [[10.0, 10.0], 20.0, null], \"expected\": [[10.0, 10.0], 20.0, null], \"passed\": true}, {\"check\": \"regression: juvenile breeders\", \"actual\": [[67.34, 36.96, 19.58], 123.88, 1.10805], \"expected\": [[67.34, 36.96, 19.58], 123.88, 1.10805], \"passed\": true}, {\"check\": \"regression: single step\", \"actual\": [[32.0, 8.0, 6.0], 46.0, 0.766667], \"expected\": [[32.0, 8.0, 6.0], 46.0, 0.766667], \"passed\": true}, {\"check\": \"regression: senescent plus group\", \"actual\": [[7.5, 13.5, 25.55], 46.55, 1.046067], \"expected\": [[7.5, 13.5, 25.55], 46.55, 1.046067], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}