{"abstract":"Small stocks survive quotas that should wipe them out before spawning.","category":"Ecological population dynamics","checks":7,"contract":"Each year the quota is removed first; if the stock is then <= 0 the trajectory records 0.0 and stops; otherwise the survivors grow by r*N*(1-N/K); the trajectory starts with the unharvested N0; values rounded to 4; None for K<=0 or negative N0.","evaluation_group":"w2-ecopop-harvested-logistic","failed_approach":"Computing growth from the pre-harvest stock still credits removed fish with reproduction.","family":"w2-ecopop-harvested-logistic-harvest-timing","id":"FA-65346","implementations":{"attempt":{"sha256":"3e3069a35e8739f42e9a514f372d94b33d935618a7b6ddeda6c62a07ba6cf22d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(n0, r, k, harvest, years):\n    if k <= 0 or n0 < 0:\n        return None\n    n = float(n0)\n    traj = [round(n, 4)]\n    for _ in range(years):\n        grown = r * n * (1 - n / k)\n        n -= harvest\n        if n <= 0:\n            traj.append(0.0)\n            break\n        n = n + grown\n        traj.append(round(n, 4))\n    return traj\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('regression: quota equals stock exactly', (50, 0.5, 400, 50, 5), [50.0, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('regression: quota equals stock exactly', (50, 0.5, 400, 50, 5), [50.0, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])]]\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":"047daef8f86d7f03c4fe5b3cda395581601d01e58ed414deb2311331c0fa3ccd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(n0, r, k, harvest, years):\n    if k <= 0 or n0 < 0:\n        return None\n    n = float(n0)\n    traj = [round(n, 4)]\n    for _ in range(years):\n        n = n + r * n * (1 - n / k)\n        n -= harvest\n        if n <= 0:\n            traj.append(0.0)\n            break\n        traj.append(round(n, 4))\n    return traj\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('regression: quota equals stock exactly', (50, 0.5, 400, 50, 5), [50.0, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('regression: quota equals stock exactly', (50, 0.5, 400, 50, 5), [50.0, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])]]\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":"0dcdd2dc18d411e1ba98489b3aff259c88be6ec2606eaeb1c90efba342c45f54","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(n0, r, k, harvest, years):\n    if k <= 0 or n0 < 0:\n        return None\n    n = float(n0)\n    traj = [round(n, 4)]\n    for _ in range(years):\n        n -= harvest\n        if n <= 0:\n            traj.append(0.0)\n            break\n        n = n + r * n * (1 - n / k)\n        traj.append(round(n, 4))\n    return traj\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('regression: quota equals stock exactly', (50, 0.5, 400, 50, 5), [50.0, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('regression: quota exceeds growth collapse',\n   (300, 0.3, 1000, 120, 10),\n   [300.0, 224.28, 132.3017, 15.9468, 0.0]),\n  ('regression: quota equals stock exactly', (50, 0.5, 400, 50, 5), [50.0, 0.0]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0])],\n [('regression: cod-like stock light quota',\n   (500, 0.4, 1000, 20, 8),\n   [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772]),\n  ('control: no harvest recovery',\n   (100, 0.6, 800, 0, 7),\n   [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084]),\n  ('regression: above carrying capacity',\n   (1200, 0.5, 1000, 10, 6),\n   [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131]),\n  ('control: invalid carrying capacity', (100, 0.5, 0, 10, 5), None),\n  ('control: zero years', (100, 0.5, 500, 10, 0), [100.0]),\n  ('regression: slow grower',\n   (800, 0.1, 1000, 15, 9),\n   [800.0, 801.8775, 803.6476, 805.3159, 806.8876, 808.3677, 809.7613, 811.0728, 812.3069, 813.4678]),\n  ('regression: two-year collapse', (60, 0.2, 500, 40, 6), [60.0, 23.84, 0.0])]]\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-harvested-logistic-harvest-timing","generated_at":"2026-09-29T14:47:33.184556+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 harvest timing rule: `n -= harvest / if n <= 0: / traj.append(0.0) / break / n = n + r * n * (1 - n / k)`.","root_cause":"The quota is taken after reproduction instead of before.","sha256":"d52dc15f810ea093ee472ca45eb61e5da6598dc96e1587870a5535b5fc8330bb","title":"Discrete logistic population with constant quota harvest: harvest timing · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.741,"exit_code":1,"observations":[{"actual":[500.0,580.0,657.44,727.5251,786.818,833.9122,869.3132,894.7563,912.4233],"check":"regression: cod-like stock light quota","expected":[500.0,579.84,658.4077,730.745,792.9796,843.1725,881.3963,909.1534,928.5772],"passed":false},{"actual":[300.0,243.0,178.1853,102.1159,0.0],"check":"regression: quota exceeds growth collapse","expected":[300.0,224.28,132.3017,15.9468,0.0],"passed":false},{"actual":[50.0,0.0],"check":"regression: quota equals stock exactly","expected":[50.0,0.0],"passed":true},{"actual":[100.0,152.5,226.5578,323.9962,439.6637,558.4838,659.646,729.084],"check":"control: no harvest recovery","expected":[100.0,152.5,226.5578,323.9962,439.6637,558.4838,659.646,729.084],"passed":true},{"actual":[1200.0,1070.0,1022.55,1001.0207,990.5099,985.2099,982.4956],"check":"regression: above carrying capacity","expected":[1200.0,1076.95,1031.2338,1010.3915,1000.1957,995.0498,992.4131],"passed":false},{"actual":null,"check":"control: invalid carrying capacity","expected":null,"passed":true},{"actual":[100.0],"check":"control: zero years","expected":[100.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: cod-like stock light quota\", \"actual\": [500.0, 580.0, 657.44, 727.5251, 786.818, 833.9122, 869.3132, 894.7563, 912.4233], \"expected\": [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772], \"passed\": false}, {\"check\": \"regression: quota exceeds growth collapse\", \"actual\": [300.0, 243.0, 178.1853, 102.1159, 0.0], \"expected\": [300.0, 224.28, 132.3017, 15.9468, 0.0], \"passed\": false}, {\"check\": \"regression: quota equals stock exactly\", \"actual\": [50.0, 0.0], \"expected\": [50.0, 0.0], \"passed\": true}, {\"check\": \"control: no harvest recovery\", \"actual\": [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084], \"expected\": [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084], \"passed\": true}, {\"check\": \"regression: above carrying capacity\", \"actual\": [1200.0, 1070.0, 1022.55, 1001.0207, 990.5099, 985.2099, 982.4956], \"expected\": [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131], \"passed\": false}, {\"check\": \"control: invalid carrying capacity\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: zero years\", \"actual\": [100.0], \"expected\": [100.0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.491,"exit_code":1,"observations":[{"actual":[500.0,580.0,657.44,727.5251,786.818,833.9122,869.3132,894.7563,912.4233],"check":"regression: cod-like stock light quota","expected":[500.0,579.84,658.4077,730.745,792.9796,843.1725,881.3963,909.1534,928.5772],"passed":false},{"actual":[300.0,243.0,178.1853,102.1159,9.6224,0.0],"check":"regression: quota exceeds growth collapse","expected":[300.0,224.28,132.3017,15.9468,0.0],"passed":false},{"actual":[50.0,21.875,0.0],"check":"regression: quota equals stock exactly","expected":[50.0,0.0],"passed":false},{"actual":[100.0,152.5,226.5578,323.9962,439.6637,558.4838,659.646,729.084],"check":"control: no harvest recovery","expected":[100.0,152.5,226.5578,323.9962,439.6637,558.4838,659.646,729.084],"passed":true},{"actual":[1200.0,1070.0,1022.55,1001.0207,990.5099,985.2099,982.4956],"check":"regression: above carrying capacity","expected":[1200.0,1076.95,1031.2338,1010.3915,1000.1957,995.0498,992.4131],"passed":false},{"actual":null,"check":"control: invalid carrying capacity","expected":null,"passed":true},{"actual":[100.0],"check":"control: zero years","expected":[100.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: cod-like stock light quota\", \"actual\": [500.0, 580.0, 657.44, 727.5251, 786.818, 833.9122, 869.3132, 894.7563, 912.4233], \"expected\": [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772], \"passed\": false}, {\"check\": \"regression: quota exceeds growth collapse\", \"actual\": [300.0, 243.0, 178.1853, 102.1159, 9.6224, 0.0], \"expected\": [300.0, 224.28, 132.3017, 15.9468, 0.0], \"passed\": false}, {\"check\": \"regression: quota equals stock exactly\", \"actual\": [50.0, 21.875, 0.0], \"expected\": [50.0, 0.0], \"passed\": false}, {\"check\": \"control: no harvest recovery\", \"actual\": [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084], \"expected\": [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084], \"passed\": true}, {\"check\": \"regression: above carrying capacity\", \"actual\": [1200.0, 1070.0, 1022.55, 1001.0207, 990.5099, 985.2099, 982.4956], \"expected\": [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131], \"passed\": false}, {\"check\": \"control: invalid carrying capacity\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: zero years\", \"actual\": [100.0], \"expected\": [100.0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.638,"exit_code":0,"observations":[{"actual":[500.0,579.84,658.4077,730.745,792.9796,843.1725,881.3963,909.1534,928.5772],"check":"regression: cod-like stock light quota","expected":[500.0,579.84,658.4077,730.745,792.9796,843.1725,881.3963,909.1534,928.5772],"passed":true},{"actual":[300.0,224.28,132.3017,15.9468,0.0],"check":"regression: quota exceeds growth collapse","expected":[300.0,224.28,132.3017,15.9468,0.0],"passed":true},{"actual":[50.0,0.0],"check":"regression: quota equals stock exactly","expected":[50.0,0.0],"passed":true},{"actual":[100.0,152.5,226.5578,323.9962,439.6637,558.4838,659.646,729.084],"check":"control: no harvest recovery","expected":[100.0,152.5,226.5578,323.9962,439.6637,558.4838,659.646,729.084],"passed":true},{"actual":[1200.0,1076.95,1031.2338,1010.3915,1000.1957,995.0498,992.4131],"check":"regression: above carrying capacity","expected":[1200.0,1076.95,1031.2338,1010.3915,1000.1957,995.0498,992.4131],"passed":true},{"actual":null,"check":"control: invalid carrying capacity","expected":null,"passed":true},{"actual":[100.0],"check":"control: zero years","expected":[100.0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: cod-like stock light quota\", \"actual\": [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772], \"expected\": [500.0, 579.84, 658.4077, 730.745, 792.9796, 843.1725, 881.3963, 909.1534, 928.5772], \"passed\": true}, {\"check\": \"regression: quota exceeds growth collapse\", \"actual\": [300.0, 224.28, 132.3017, 15.9468, 0.0], \"expected\": [300.0, 224.28, 132.3017, 15.9468, 0.0], \"passed\": true}, {\"check\": \"regression: quota equals stock exactly\", \"actual\": [50.0, 0.0], \"expected\": [50.0, 0.0], \"passed\": true}, {\"check\": \"control: no harvest recovery\", \"actual\": [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084], \"expected\": [100.0, 152.5, 226.5578, 323.9962, 439.6637, 558.4838, 659.646, 729.084], \"passed\": true}, {\"check\": \"regression: above carrying capacity\", \"actual\": [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131], \"expected\": [1200.0, 1076.95, 1031.2338, 1010.3915, 1000.1957, 995.0498, 992.4131], \"passed\": true}, {\"check\": \"control: invalid carrying capacity\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: zero years\", \"actual\": [100.0], \"expected\": [100.0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}