{"abstract":"Yields are inflated by a factor 1/q.","category":"Ecological population dynamics","checks":7,"contract":"MSY = rK/4 at B=K/2 and E_msy = r/(2q); equilibrium biomass under effort E is K(1-qE/r) when qE<r else 0; yield = qEB; status 'overfished' when E>E_msy, 'at-msy' when equal, else 'sustainable'; return [MSY, Bmsy, Emsy, B, yield, status] rounded; None for invalid inputs.","evaluation_group":"w2-ecopop-schaefer-msy","failed_approach":"Yield computed on virgin biomass ignores depletion.","family":"w2-ecopop-schaefer-msy-equilibrium-yield","id":"FA-65566","implementations":{"attempt":{"sha256":"9963b9f889247d83c47b97ae73d3ee26f2bfb1b143fb8736e6d85d34aacb9cfa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(r, k, effort, q):\n    if r <= 0 or k <= 0 or q <= 0 or effort < 0:\n        return None\n    msy = r * k / 4\n    bmsy = k / 2\n    emsy = r / (2 * q)\n    b = k * (1 - q * effort / r) if q * effort < r else 0.0\n    y = q * effort * k\n    if effort > emsy:\n        status = 'overfished'\n    elif effort == emsy:\n        status = 'at-msy'\n    else:\n        status = 'sustainable'\n    return [round(msy, 4), round(bmsy, 4), round(emsy, 6), round(b, 4), round(y, 4), status]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None)],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None)],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])]]\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":"be95d3d096a08a9c649454ffe7d36a9a7fe31430e80e314cdf3b6d266ddf6ef2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(r, k, effort, q):\n    if r <= 0 or k <= 0 or q <= 0 or effort < 0:\n        return None\n    msy = r * k / 4\n    bmsy = k / 2\n    emsy = r / (2 * q)\n    b = k * (1 - q * effort / r) if q * effort < r else 0.0\n    y = effort * b\n    if effort > emsy:\n        status = 'overfished'\n    elif effort == emsy:\n        status = 'at-msy'\n    else:\n        status = 'sustainable'\n    return [round(msy, 4), round(bmsy, 4), round(emsy, 6), round(b, 4), round(y, 4), status]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None)],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None)],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])]]\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":"c8a4d970dfae98ccdf3c74b2e6118c721eb5b5b83013c991f3dacb144cf57f3a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(r, k, effort, q):\n    if r <= 0 or k <= 0 or q <= 0 or effort < 0:\n        return None\n    msy = r * k / 4\n    bmsy = k / 2\n    emsy = r / (2 * q)\n    b = k * (1 - q * effort / r) if q * effort < r else 0.0\n    y = q * effort * b\n    if effort > emsy:\n        status = 'overfished'\n    elif effort == emsy:\n        status = 'at-msy'\n    else:\n        status = 'sustainable'\n    return [round(msy, 4), round(bmsy, 4), round(emsy, 6), round(b, 4), round(y, 4), status]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None)],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: effort at msy', (0.5, 2000, 250, 0.001), [250.0, 1000.0, 250.0, 1000.0, 250.0, 'at-msy']),\n  ('regression: overfished',\n   (0.3, 5000, 250, 0.001),\n   [375.0, 2500.0, 150.0, 833.3333, 208.3333, 'overfished']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None)],\n [('regression: tuna fishery moderate effort',\n   (0.4, 10000, 100, 0.001),\n   [1000.0, 5000.0, 200.0, 7500.0, 750.0, 'sustainable']),\n  ('regression: collapse effort', (0.2, 3000, 300, 0.001), [150.0, 1500.0, 100.0, 0.0, 0.0, 'overfished']),\n  ('control: no fishing', (0.6, 800, 0, 0.002), [120.0, 400.0, 150.0, 800.0, 0.0, 'sustainable']),\n  ('regression: high catchability', (0.8, 1500, 50, 0.01), [300.0, 750.0, 40.0, 562.5, 281.25, 'overfished']),\n  ('regression: slightly over msy',\n   (0.5, 2000, 250.4, 0.001),\n   [250.0, 1000.0, 250.0, 998.4, 249.9994, 'overfished']),\n  ('control: invalid q', (0.5, 2000, 100, 0.0), None),\n  ('regression: light fishing',\n   (1.2, 400, 20, 0.005),\n   [120.0, 200.0, 120.0, 366.6667, 36.6667, 'sustainable'])]]\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-schaefer-msy-equilibrium-yield","generated_at":"2026-09-29T14:47:35.289360+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 equilibrium yield rule: `y = q * effort * b`.","root_cause":"Yield omits catchability.","sha256":"cfc59b7bb44cb654a44c43f0ece2a66295ffc7fd56fcb3a93864071a141734cb","title":"Schaefer surplus-production harvest reference points: equilibrium yield · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.719,"exit_code":1,"observations":[{"actual":[1000.0,5000.0,200.0,7500.0,1000.0,"sustainable"],"check":"regression: tuna fishery moderate effort","expected":[1000.0,5000.0,200.0,7500.0,750.0,"sustainable"],"passed":false},{"actual":[250.0,1000.0,250.0,1000.0,500.0,"at-msy"],"check":"regression: effort at msy","expected":[250.0,1000.0,250.0,1000.0,250.0,"at-msy"],"passed":false},{"actual":[375.0,2500.0,150.0,833.3333,1250.0,"overfished"],"check":"regression: overfished","expected":[375.0,2500.0,150.0,833.3333,208.3333,"overfished"],"passed":false},{"actual":[150.0,1500.0,100.0,0.0,900.0,"overfished"],"check":"regression: collapse effort","expected":[150.0,1500.0,100.0,0.0,0.0,"overfished"],"passed":false},{"actual":[120.0,400.0,150.0,800.0,0.0,"sustainable"],"check":"control: no fishing","expected":[120.0,400.0,150.0,800.0,0.0,"sustainable"],"passed":true},{"actual":[300.0,750.0,40.0,562.5,750.0,"overfished"],"check":"regression: high catchability","expected":[300.0,750.0,40.0,562.5,281.25,"overfished"],"passed":false},{"actual":null,"check":"control: invalid q","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: tuna fishery moderate effort\", \"actual\": [1000.0, 5000.0, 200.0, 7500.0, 1000.0, \"sustainable\"], \"expected\": [1000.0, 5000.0, 200.0, 7500.0, 750.0, \"sustainable\"], \"passed\": false}, {\"check\": \"regression: effort at msy\", \"actual\": [250.0, 1000.0, 250.0, 1000.0, 500.0, \"at-msy\"], \"expected\": [250.0, 1000.0, 250.0, 1000.0, 250.0, \"at-msy\"], \"passed\": false}, {\"check\": \"regression: overfished\", \"actual\": [375.0, 2500.0, 150.0, 833.3333, 1250.0, \"overfished\"], \"expected\": [375.0, 2500.0, 150.0, 833.3333, 208.3333, \"overfished\"], \"passed\": false}, {\"check\": \"regression: collapse effort\", \"actual\": [150.0, 1500.0, 100.0, 0.0, 900.0, \"overfished\"], \"expected\": [150.0, 1500.0, 100.0, 0.0, 0.0, \"overfished\"], \"passed\": false}, {\"check\": \"control: no fishing\", \"actual\": [120.0, 400.0, 150.0, 800.0, 0.0, \"sustainable\"], \"expected\": [120.0, 400.0, 150.0, 800.0, 0.0, \"sustainable\"], \"passed\": true}, {\"check\": \"regression: high catchability\", \"actual\": [300.0, 750.0, 40.0, 562.5, 750.0, \"overfished\"], \"expected\": [300.0, 750.0, 40.0, 562.5, 281.25, \"overfished\"], \"passed\": false}, {\"check\": \"control: invalid q\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.194,"exit_code":1,"observations":[{"actual":[1000.0,5000.0,200.0,7500.0,750000.0,"sustainable"],"check":"regression: tuna fishery moderate effort","expected":[1000.0,5000.0,200.0,7500.0,750.0,"sustainable"],"passed":false},{"actual":[250.0,1000.0,250.0,1000.0,250000.0,"at-msy"],"check":"regression: effort at msy","expected":[250.0,1000.0,250.0,1000.0,250.0,"at-msy"],"passed":false},{"actual":[375.0,2500.0,150.0,833.3333,208333.3333,"overfished"],"check":"regression: overfished","expected":[375.0,2500.0,150.0,833.3333,208.3333,"overfished"],"passed":false},{"actual":[150.0,1500.0,100.0,0.0,0.0,"overfished"],"check":"regression: collapse effort","expected":[150.0,1500.0,100.0,0.0,0.0,"overfished"],"passed":true},{"actual":[120.0,400.0,150.0,800.0,0.0,"sustainable"],"check":"control: no fishing","expected":[120.0,400.0,150.0,800.0,0.0,"sustainable"],"passed":true},{"actual":[300.0,750.0,40.0,562.5,28125.0,"overfished"],"check":"regression: high catchability","expected":[300.0,750.0,40.0,562.5,281.25,"overfished"],"passed":false},{"actual":null,"check":"control: invalid q","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: tuna fishery moderate effort\", \"actual\": [1000.0, 5000.0, 200.0, 7500.0, 750000.0, \"sustainable\"], \"expected\": [1000.0, 5000.0, 200.0, 7500.0, 750.0, \"sustainable\"], \"passed\": false}, {\"check\": \"regression: effort at msy\", \"actual\": [250.0, 1000.0, 250.0, 1000.0, 250000.0, \"at-msy\"], \"expected\": [250.0, 1000.0, 250.0, 1000.0, 250.0, \"at-msy\"], \"passed\": false}, {\"check\": \"regression: overfished\", \"actual\": [375.0, 2500.0, 150.0, 833.3333, 208333.3333, \"overfished\"], \"expected\": [375.0, 2500.0, 150.0, 833.3333, 208.3333, \"overfished\"], \"passed\": false}, {\"check\": \"regression: collapse effort\", \"actual\": [150.0, 1500.0, 100.0, 0.0, 0.0, \"overfished\"], \"expected\": [150.0, 1500.0, 100.0, 0.0, 0.0, \"overfished\"], \"passed\": true}, {\"check\": \"control: no fishing\", \"actual\": [120.0, 400.0, 150.0, 800.0, 0.0, \"sustainable\"], \"expected\": [120.0, 400.0, 150.0, 800.0, 0.0, \"sustainable\"], \"passed\": true}, {\"check\": \"regression: high catchability\", \"actual\": [300.0, 750.0, 40.0, 562.5, 28125.0, \"overfished\"], \"expected\": [300.0, 750.0, 40.0, 562.5, 281.25, \"overfished\"], \"passed\": false}, {\"check\": \"control: invalid q\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.475,"exit_code":0,"observations":[{"actual":[1000.0,5000.0,200.0,7500.0,750.0,"sustainable"],"check":"regression: tuna fishery moderate effort","expected":[1000.0,5000.0,200.0,7500.0,750.0,"sustainable"],"passed":true},{"actual":[250.0,1000.0,250.0,1000.0,250.0,"at-msy"],"check":"regression: effort at msy","expected":[250.0,1000.0,250.0,1000.0,250.0,"at-msy"],"passed":true},{"actual":[375.0,2500.0,150.0,833.3333,208.3333,"overfished"],"check":"regression: overfished","expected":[375.0,2500.0,150.0,833.3333,208.3333,"overfished"],"passed":true},{"actual":[150.0,1500.0,100.0,0.0,0.0,"overfished"],"check":"regression: collapse effort","expected":[150.0,1500.0,100.0,0.0,0.0,"overfished"],"passed":true},{"actual":[120.0,400.0,150.0,800.0,0.0,"sustainable"],"check":"control: no fishing","expected":[120.0,400.0,150.0,800.0,0.0,"sustainable"],"passed":true},{"actual":[300.0,750.0,40.0,562.5,281.25,"overfished"],"check":"regression: high catchability","expected":[300.0,750.0,40.0,562.5,281.25,"overfished"],"passed":true},{"actual":null,"check":"control: invalid q","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: tuna fishery moderate effort\", \"actual\": [1000.0, 5000.0, 200.0, 7500.0, 750.0, \"sustainable\"], \"expected\": [1000.0, 5000.0, 200.0, 7500.0, 750.0, \"sustainable\"], \"passed\": true}, {\"check\": \"regression: effort at msy\", \"actual\": [250.0, 1000.0, 250.0, 1000.0, 250.0, \"at-msy\"], \"expected\": [250.0, 1000.0, 250.0, 1000.0, 250.0, \"at-msy\"], \"passed\": true}, {\"check\": \"regression: overfished\", \"actual\": [375.0, 2500.0, 150.0, 833.3333, 208.3333, \"overfished\"], \"expected\": [375.0, 2500.0, 150.0, 833.3333, 208.3333, \"overfished\"], \"passed\": true}, {\"check\": \"regression: collapse effort\", \"actual\": [150.0, 1500.0, 100.0, 0.0, 0.0, \"overfished\"], \"expected\": [150.0, 1500.0, 100.0, 0.0, 0.0, \"overfished\"], \"passed\": true}, {\"check\": \"control: no fishing\", \"actual\": [120.0, 400.0, 150.0, 800.0, 0.0, \"sustainable\"], \"expected\": [120.0, 400.0, 150.0, 800.0, 0.0, \"sustainable\"], \"passed\": true}, {\"check\": \"regression: high catchability\", \"actual\": [300.0, 750.0, 40.0, 562.5, 281.25, \"overfished\"], \"expected\": [300.0, 750.0, 40.0, 562.5, 281.25, \"overfished\"], \"passed\": true}, {\"check\": \"control: invalid q\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}