{"abstract":"Hosts escape too often at moderate parasitoid densities.","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":"Escape depends on host density instead of searching parasitoids.","family":"w2-ecopop-nicholson-bailey-escape-fraction","id":"FA-65626","implementations":{"attempt":{"sha256":"918f2a6e8d2a7a143ce95273a87b0b5465809892e781d381fb667f7e12f3b2c8","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 * h)\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  ('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  ('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 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  ('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: 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  ('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: 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 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":"b8aa010c307eaa669a10f6e08da00f552dc785f254bdd309f019544d6b2d233b","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 = max(0.0, 1 - 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  ('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  ('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 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  ('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: 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  ('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: 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 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":"aec3336255f9a8ee807c9f8f8cf3ec441f692b8dba4f02e6c119a60d4a04cbde","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  ('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  ('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 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  ('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: 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  ('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: 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 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-escape-fraction","generated_at":"2026-09-29T14:47:35.839375+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 escape fraction rule: `escape = math.exp(-a * p)`.","root_cause":"The Poisson zero term is linearised.","sha256":"dfcefbe12d8131d64c8bb021add740c08191df8fd1179f74dbc2d3f1f6ac5f94","title":"Nicholson-Bailey host-parasitoid generations: escape fraction · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.94,"exit_code":1,"observations":[{"actual":[[27.7259,13.8629],[[13.3878,23.3061],[13.7097,6.533],[13.8151,6.8021],[13.8482,6.891],[13.8584,6.919]]],"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],[[13.5335,13.8346],[17.4835,8.0295],[15.216,11.5522],[16.613,9.5147]]],"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],[[5.5182,6.3212],[4.7669,2.3403],[4.4392,1.8074],[4.2717,1.5914]]],"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":[[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,[[3.6788,6.3212],[2.5465,1.1323],[1.974,0.5725]]],"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],[[110.3638,31.606],[109.8105,36.8802],[109.8662,36.5942],[109.8607,36.623]]],"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], [[13.3878, 23.3061], [13.7097, 6.533], [13.8151, 6.8021], [13.8482, 6.891], [13.8584, 6.919]]], \"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], [[13.5335, 13.8346], [17.4835, 8.0295], [15.216, 11.5522], [16.613, 9.5147]]], \"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], [[5.5182, 6.3212], [4.7669, 2.3403], [4.4392, 1.8074], [4.2717, 1.5914]]], \"expected\": [[12.164, 4.0547], [[15.0, 0.0], [22.5, 0.0], [33.75, 0.0], [50.625, 0.0]]], \"passed\": false}, {\"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, [[3.6788, 6.3212], [2.5465, 1.1323], [1.974, 0.5725]]], \"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], [[110.3638, 31.606], [109.8105, 36.8802], [109.8662, 36.5942], [109.8607, 36.623]]], \"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.521,"exit_code":1,"observations":[{"actual":[[27.7259,13.8629],[[30.0,15.0],[15.0,22.5],[0.0,15.0],[0.0,0.0],[0.0,0.0]]],"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],[[50.0,8.0],[50.0,32.0],[0.0,40.0],[0.0,0.0]]],"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":"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.0,2.0],[6.4,1.6],[5.376,1.024]]],"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],[[240.0,10.0],[648.0,12.0],[1710.72,38.88],[3136.7762,332.564]]],"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], [[30.0, 15.0], [15.0, 22.5], [0.0, 15.0], [0.0, 0.0], [0.0, 0.0]]], \"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], [[50.0, 8.0], [50.0, 32.0], [0.0, 40.0], [0.0, 0.0]]], \"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\": \"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.0, 2.0], [6.4, 1.6], [5.376, 1.024]]], \"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], [[240.0, 10.0], [648.0, 12.0], [1710.72, 38.88], [3136.7762, 332.564]]], \"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":41.815,"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":"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\": \"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\": \"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"}