{"abstract":"Parasitoid emergence is computed from next generation's hosts.","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":"Undoing only the growth factor still leaves the escape factor applied to H.","family":"w2-ecopop-nicholson-bailey-simultaneous-generation-update","id":"FA-65621","implementations":{"attempt":{"sha256":"31a1e43b72b492e5b4ae37fae7d8b136d7ccbbfafbf80c531ff2d0c22a67f238","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 = lam * h * escape\n        p = c * (h / lam) * (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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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":"05526c71b486294d716e9b58af24744428553de3fa4eb6b9f852377f6b7235e9","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 = lam * h * escape\n        p = 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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":"da61ea71a7afcaedf7faedb55d1af209e3d350e732eb65b2042a8ecd4b2a71d4","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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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  ('control: 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: no hosts', (2.0, 0.1, 1.0, 0, 10, 3), [[13.8629, 6.9315], [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]]),\n  ('regression: 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-simultaneous-generation-update","generated_at":"2026-09-29T14:47:35.820654+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 simultaneous generation update rule: `h, p = lam * h * escape, c * h * (1 - escape)`.","root_cause":"The host update is applied before the parasitoid update reads H.","sha256":"f3c85eeb21ec8fcd4a7d97af4253f4626098a5d6a3fb504df80055f2e950a01e","title":"Nicholson-Bailey host-parasitoid generations: simultaneous generation update · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.45,"exit_code":1,"observations":[{"actual":[[27.7259,13.8629],[[36.3918,7.1595],[50.8823,7.6555],[69.4,11.0358],[79.9375,16.95],[68.504,19.5755]]],"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":[[25.1475,16.0944],[[60.6531,3.8184],[207.0098,10.5127],[361.7434,37.6506],[41.9011,6.5489]]],"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":"control: 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":"control: 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.4841],[7.0581,0.9735],[6.4034,0.594]]],"check":"regression: non-growing host","expected":[null,[[8.1873,1.8127],[6.8299,1.3574],[5.963,0.8669]]],"passed":false},{"actual":[[329.5837,109.8612],[[245.6192,7.4205],[684.1584,8.1551],[1891.7378,24.6915],[4433.5148,161.6706]]],"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, 7.1595], [50.8823, 7.6555], [69.4, 11.0358], [79.9375, 16.95], [68.504, 19.5755]]], \"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\": [[25.1475, 16.0944], [[60.6531, 3.8184], [207.0098, 10.5127], [361.7434, 37.6506], [41.9011, 6.5489]]], \"expected\": [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]], \"passed\": false}, {\"check\": \"control: 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\": \"control: 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\": \"regression: non-growing host\", \"actual\": [null, [[8.1873, 1.4841], [7.0581, 0.9735], [6.4034, 0.594]]], \"expected\": [null, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]], \"passed\": false}, {\"check\": \"regression: inefficient parasitoid\", \"actual\": [[329.5837, 109.8612], [[245.6192, 7.4205], [684.1584, 8.1551], [1891.7378, 24.6915], [4433.5148, 161.6706]]], \"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":41.809,"exit_code":1,"observations":[{"actual":[[27.7259,13.8629],[[36.3918,14.3191],[35.5713,18.1867],[28.6557,17.1134],[24.3573,14.0055],[24.1843,12.178]]],"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":[[25.1475,16.0944],[[60.6531,19.0921],[44.9431,30.6262],[10.5089,8.0139],[23.5768,10.3983]]],"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":"control: 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":"control: 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.4841],[7.0581,0.9735],[6.4034,0.594]]],"check":"regression: non-growing host","expected":[null,[[8.1873,1.8127],[6.8299,1.3574],[5.963,0.8669]]],"passed":false},{"actual":[[329.5837,109.8612],[[245.6192,22.2616],[589.7972,58.8552],[982.2429,218.485],[331.4909,147.1]]],"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, 14.3191], [35.5713, 18.1867], [28.6557, 17.1134], [24.3573, 14.0055], [24.1843, 12.178]]], \"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\": [[25.1475, 16.0944], [[60.6531, 19.0921], [44.9431, 30.6262], [10.5089, 8.0139], [23.5768, 10.3983]]], \"expected\": [[25.1475, 16.0944], [[60.6531, 6.2955], [161.5892, 22.6682], [83.7366, 115.8735], [0.0039, 66.9887]]], \"passed\": false}, {\"check\": \"control: 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\": \"control: 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\": \"regression: non-growing host\", \"actual\": [null, [[8.1873, 1.4841], [7.0581, 0.9735], [6.4034, 0.594]]], \"expected\": [null, [[8.1873, 1.8127], [6.8299, 1.3574], [5.963, 0.8669]]], \"passed\": false}, {\"check\": \"regression: inefficient parasitoid\", \"actual\": [[329.5837, 109.8612], [[245.6192, 22.2616], [589.7972, 58.8552], [982.2429, 218.485], [331.4909, 147.1]]], \"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":42.926,"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":"control: 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":"control: 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":"regression: 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\": \"control: 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\": \"control: 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\": \"regression: 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"}