{"abstract":"The host equilibrium is understated by a factor lam.","category":"Ecological population dynamics","checks":7,"contract":"Escape fraction exp(-a*P); H' = lam*H*escape and P' = c*H*(1-escape) computed from the same generation; equilibrium [lam*ln(lam)/((lam-1)*a*c), ln(lam)/a] rounded 4 when lam>1, a>0, c>0 else None; return [equilibrium, trajectory of [H,P] rounded 4].","evaluation_group":"w2-ecopop-nicholson-bailey","failed_approach":"Dropping c ignores parasitoids per attacked host.","family":"w2-ecopop-nicholson-bailey-host-equilibrium","id":"FA-65636","implementations":{"attempt":{"sha256":"776a7af5bb5542a60630f2c331c6a5f7d4eb75db05e8a10af1556ab18bca9729","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(lam, a, c, h0, p0, gens):\n    if lam <= 1 or a <= 0 or c <= 0:\n        eq = None\n    else:\n        eq = [round(lam * math.log(lam) / ((lam - 1) * a), 4), round(math.log(lam) / a, 4)]\n    h, p = float(h0), float(p0)\n    traj = []\n    for _ in range(gens):\n        escape = math.exp(-a * p)\n        h, p = lam * h * escape, c * h * (1 - escape)\n        traj.append([round(h, 4), round(p, 4)])\n    return [eq, traj]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])]]\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":"c22ce82557238bf27b08062cfd168bf22756988a60b46c90705271f80c96db60","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(lam, a, c, h0, p0, gens):\n    if lam <= 1 or a <= 0 or c <= 0:\n        eq = None\n    else:\n        eq = [round(math.log(lam) / ((lam - 1) * a * c), 4), round(math.log(lam) / a, 4)]\n    h, p = float(h0), float(p0)\n    traj = []\n    for _ in range(gens):\n        escape = math.exp(-a * p)\n        h, p = lam * h * escape, c * h * (1 - escape)\n        traj.append([round(h, 4), round(p, 4)])\n    return [eq, traj]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])]]\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":"e9b0817a8d49a688ae9329e65713fa19970cff75dec592fa87e2f242814e06b4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(lam, a, c, h0, p0, gens):\n    if lam <= 1 or a <= 0 or c <= 0:\n        eq = None\n    else:\n        eq = [round(lam * math.log(lam) / ((lam - 1) * a * c), 4), round(math.log(lam) / a, 4)]\n    h, p = float(h0), float(p0)\n    traj = []\n    for _ in range(gens):\n        escape = math.exp(-a * p)\n        h, p = lam * h * escape, c * h * (1 - escape)\n        traj.append([round(h, 4), round(p, 4)])\n    return [eq, traj]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('regression: no hosts',\n   (2.0, 0.1, 1.0, 0, 10, 3),\n   [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])],\n [('regression: greenhouse whitefly',\n   (2.0, 0.05, 1.0, 30, 10, 5),\n   [[27.7259, 13.8629],\n    [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]]),\n  ('regression: fecund host',\n   (5.0, 0.1, 0.8, 20, 5, 4),\n   [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]]),\n  ('regression: no parasitoids',\n   (1.5, 0.1, 1.0, 10, 0, 4),\n   [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]]),\n  ('control: non-growing host',\n   (1.0, 0.1, 1.0, 10, 2, 3),\n   [None, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]]),\n  ('regression: inefficient parasitoid',\n   (3.0, 0.01, 0.5, 100, 20, 4),\n   [[329.5837, 109.8612],\n    [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]]),\n  ('control: invalid search', (2.0, 0.0, 1.0, 10, 2, 3), [None, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]]),\n  ('regression: gregarious parasitoid',\n   (2.5, 0.03, 2.0, 40, 8, 5),\n   [[25.4525, 30.543],\n    [[78.6628, 17.0698], [117.8447, 63.0498], [44.4411, 200.1366], [0.2743, 88.6628], [0.048, 0.5102]]])]]\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-nicholson-bailey-host-equilibrium","generated_at":"2026-09-29T14:47:35.942448+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 host equilibrium rule: `lam * math.log(lam) / ((lam - 1) * a * c)`.","root_cause":"The lam multiplier in H* is omitted.","sha256":"8740e9c15a07b3b2b7bbaf43b15fdc50c99c4ab9df621d4dcf9bc113cb376a1e","title":"Nicholson-Bailey host-parasitoid generations: host equilibrium · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.309,"exit_code":1,"observations":[{"actual":[[27.7259,13.8629],[[36.3918,11.8041],[40.3377,16.223],[35.848,22.4138],[23.3768,24.1595],[13.97,16.3918]]],"check":"regression: greenhouse whitefly","expected":[[27.7259,13.8629],[[36.3918,11.8041],[40.3377,16.223],[35.848,22.4138],[23.3768,24.1595],[13.97,16.3918]]],"passed":true},{"actual":[[20.118,16.0944],[[60.6531,6.2955],[161.5892,22.6682],[83.7366,115.8735],[0.0039,66.9887]]],"check":"regression: fecund host","expected":[[25.1475,16.0944],[[60.6531,6.2955],[161.5892,22.6682],[83.7366,115.8735],[0.0039,66.9887]]],"passed":false},{"actual":[[12.164,4.0547],[[15.0,0.0],[22.5,0.0],[33.75,0.0],[50.625,0.0]]],"check":"regression: no parasitoids","expected":[[12.164,4.0547],[[15.0,0.0],[22.5,0.0],[33.75,0.0],[50.625,0.0]]],"passed":true},{"actual":[[13.8629,6.9315],[[0.0,0.0],[0.0,0.0],[0.0,0.0]]],"check":"regression: no hosts","expected":[[13.8629,6.9315],[[0.0,0.0],[0.0,0.0],[0.0,0.0]]],"passed":true},{"actual":[null,[[8.1873,1.8127],[6.8299,1.3574],[5.963,0.8669]]],"check":"control: non-growing host","expected":[null,[[8.1873,1.8127],[6.8299,1.3574],[5.963,0.8669]]],"passed":true},{"actual":[[164.7918,109.8612],[[245.6192,9.0635],[673.01,10.6413],[1815.2157,33.969],[3877.2504,261.3994]]],"check":"regression: inefficient parasitoid","expected":[[329.5837,109.8612],[[245.6192,9.0635],[673.01,10.6413],[1815.2157,33.969],[3877.2504,261.3994]]],"passed":false},{"actual":[null,[[20.0,0.0],[40.0,0.0],[80.0,0.0]]],"check":"control: invalid search","expected":[null,[[20.0,0.0],[40.0,0.0],[80.0,0.0]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: greenhouse whitefly\", \"actual\": [[27.7259, 13.8629], [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]], \"expected\": [[27.7259, 13.8629], [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]], \"passed\": true}, {\"check\": \"regression: fecund host\", \"actual\": [[20.118, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]], \"expected\": [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]], \"passed\": false}, {\"check\": \"regression: no parasitoids\", \"actual\": [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]], \"expected\": [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]], \"passed\": true}, {\"check\": \"regression: no hosts\", \"actual\": [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], \"expected\": [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], \"passed\": true}, {\"check\": \"control: non-growing host\", \"actual\": [null, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]], \"expected\": [null, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]], \"passed\": true}, {\"check\": \"regression: inefficient parasitoid\", \"actual\": [[164.7918, 109.8612], [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]], \"expected\": [[329.5837, 109.8612], [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]], \"passed\": false}, {\"check\": \"control: invalid search\", \"actual\": [null, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]], \"expected\": [null, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.478,"exit_code":1,"observations":[{"actual":[[13.8629,13.8629],[[36.3918,11.8041],[40.3377,16.223],[35.848,22.4138],[23.3768,24.1595],[13.97,16.3918]]],"check":"regression: greenhouse whitefly","expected":[[27.7259,13.8629],[[36.3918,11.8041],[40.3377,16.223],[35.848,22.4138],[23.3768,24.1595],[13.97,16.3918]]],"passed":false},{"actual":[[5.0295,16.0944],[[60.6531,6.2955],[161.5892,22.6682],[83.7366,115.8735],[0.0039,66.9887]]],"check":"regression: fecund host","expected":[[25.1475,16.0944],[[60.6531,6.2955],[161.5892,22.6682],[83.7366,115.8735],[0.0039,66.9887]]],"passed":false},{"actual":[[8.1093,4.0547],[[15.0,0.0],[22.5,0.0],[33.75,0.0],[50.625,0.0]]],"check":"regression: no parasitoids","expected":[[12.164,4.0547],[[15.0,0.0],[22.5,0.0],[33.75,0.0],[50.625,0.0]]],"passed":false},{"actual":[[6.9315,6.9315],[[0.0,0.0],[0.0,0.0],[0.0,0.0]]],"check":"regression: no hosts","expected":[[13.8629,6.9315],[[0.0,0.0],[0.0,0.0],[0.0,0.0]]],"passed":false},{"actual":[null,[[8.1873,1.8127],[6.8299,1.3574],[5.963,0.8669]]],"check":"control: non-growing host","expected":[null,[[8.1873,1.8127],[6.8299,1.3574],[5.963,0.8669]]],"passed":true},{"actual":[[109.8612,109.8612],[[245.6192,9.0635],[673.01,10.6413],[1815.2157,33.969],[3877.2504,261.3994]]],"check":"regression: inefficient parasitoid","expected":[[329.5837,109.8612],[[245.6192,9.0635],[673.01,10.6413],[1815.2157,33.969],[3877.2504,261.3994]]],"passed":false},{"actual":[null,[[20.0,0.0],[40.0,0.0],[80.0,0.0]]],"check":"control: invalid search","expected":[null,[[20.0,0.0],[40.0,0.0],[80.0,0.0]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: greenhouse whitefly\", \"actual\": [[13.8629, 13.8629], [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]], \"expected\": [[27.7259, 13.8629], [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]], \"passed\": false}, {\"check\": \"regression: fecund host\", \"actual\": [[5.0295, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]], \"expected\": [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]], \"passed\": false}, {\"check\": \"regression: no parasitoids\", \"actual\": [[8.1093, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]], \"expected\": [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]], \"passed\": false}, {\"check\": \"regression: no hosts\", \"actual\": [[6.9315, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], \"expected\": [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], \"passed\": false}, {\"check\": \"control: non-growing host\", \"actual\": [null, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]], \"expected\": [null, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]], \"passed\": true}, {\"check\": \"regression: inefficient parasitoid\", \"actual\": [[109.8612, 109.8612], [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]], \"expected\": [[329.5837, 109.8612], [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]], \"passed\": false}, {\"check\": \"control: invalid search\", \"actual\": [null, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]], \"expected\": [null, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.11,"exit_code":0,"observations":[{"actual":[[27.7259,13.8629],[[36.3918,11.8041],[40.3377,16.223],[35.848,22.4138],[23.3768,24.1595],[13.97,16.3918]]],"check":"regression: greenhouse whitefly","expected":[[27.7259,13.8629],[[36.3918,11.8041],[40.3377,16.223],[35.848,22.4138],[23.3768,24.1595],[13.97,16.3918]]],"passed":true},{"actual":[[25.1475,16.0944],[[60.6531,6.2955],[161.5892,22.6682],[83.7366,115.8735],[0.0039,66.9887]]],"check":"regression: fecund host","expected":[[25.1475,16.0944],[[60.6531,6.2955],[161.5892,22.6682],[83.7366,115.8735],[0.0039,66.9887]]],"passed":true},{"actual":[[12.164,4.0547],[[15.0,0.0],[22.5,0.0],[33.75,0.0],[50.625,0.0]]],"check":"regression: no parasitoids","expected":[[12.164,4.0547],[[15.0,0.0],[22.5,0.0],[33.75,0.0],[50.625,0.0]]],"passed":true},{"actual":[[13.8629,6.9315],[[0.0,0.0],[0.0,0.0],[0.0,0.0]]],"check":"regression: no hosts","expected":[[13.8629,6.9315],[[0.0,0.0],[0.0,0.0],[0.0,0.0]]],"passed":true},{"actual":[null,[[8.1873,1.8127],[6.8299,1.3574],[5.963,0.8669]]],"check":"control: non-growing host","expected":[null,[[8.1873,1.8127],[6.8299,1.3574],[5.963,0.8669]]],"passed":true},{"actual":[[329.5837,109.8612],[[245.6192,9.0635],[673.01,10.6413],[1815.2157,33.969],[3877.2504,261.3994]]],"check":"regression: inefficient parasitoid","expected":[[329.5837,109.8612],[[245.6192,9.0635],[673.01,10.6413],[1815.2157,33.969],[3877.2504,261.3994]]],"passed":true},{"actual":[null,[[20.0,0.0],[40.0,0.0],[80.0,0.0]]],"check":"control: invalid search","expected":[null,[[20.0,0.0],[40.0,0.0],[80.0,0.0]]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: greenhouse whitefly\", \"actual\": [[27.7259, 13.8629], [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]], \"expected\": [[27.7259, 13.8629], [[36.3918, 11.8041], [40.3377, 16.223], [35.848, 22.4138], [23.3768, 24.1595], [13.97, 16.3918]]], \"passed\": true}, {\"check\": \"regression: fecund host\", \"actual\": [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]], \"expected\": [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]], \"passed\": true}, {\"check\": \"regression: no parasitoids\", \"actual\": [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]], \"expected\": [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]], \"passed\": true}, {\"check\": \"regression: no hosts\", \"actual\": [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], \"expected\": [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]], \"passed\": true}, {\"check\": \"control: non-growing host\", \"actual\": [null, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]], \"expected\": [null, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]], \"passed\": true}, {\"check\": \"regression: inefficient parasitoid\", \"actual\": [[329.5837, 109.8612], [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]], \"expected\": [[329.5837, 109.8612], [[245.6192, 9.0635], [673.01, 10.6413], [1815.2157, 33.969], [3877.2504, 261.3994]]], \"passed\": true}, {\"check\": \"control: invalid search\", \"actual\": [null, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]], \"expected\": [null, [[20.0, 0.0], [40.0, 0.0], [80.0, 0.0]]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}