FAILURE MAP
← Case archive

FA-65786 / Ecological population dynamics / Open access

Monthly population with seasonal breeding window: density-dependent births · case 01

Populations above the cap lose animals through negative births.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The density factor is not floored at zero.

VERIFIED REPAIR

Restore the density-dependent births rule: `max(0.0, 1 - n / cap)`.

Unsuccessful approach: Using the initial abundance fixes the density factor for the whole run.

Case contract

Calendar month of step t is ((start_month-1+t) mod 12)+1; the breeding window is inclusive and may wrap across the new year (start > end); each month survival is applied first, then in breeding months births fecundity*N*max(0,1-N/cap); return monthly N rounded 4.

Why this case matters

Population projections set harvest quotas, conservation status and pest-control timing; a wrong update order, boundary or rate conversion silently changes management advice.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(n0, monthly_survival, fecundity, breed_start, breed_end, start_month, months, cap):
    n = float(n0)
    traj = []
    for t in range(months):
        month = (start_month - 1 + t) % 12 + 1
        if breed_start <= breed_end:
            breeding = breed_start <= month <= breed_end
        else:
            breeding = month >= breed_start or month <= breed_end
        n *= monthly_survival
        if breeding:
            n += fecundity * n * (1 - n / cap)
        traj.append(round(n, 4))
    return traj
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: deer spring births[97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888][97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]Passed
regression: southern winter breeding wraps[47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636][47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]Passed
regression: december start[94.9267, 111.9581, 109.7189][94.9267, 111.9581, 109.7189]Passed
regression: single month window end[54.0, 66.9951, 60.2956][54.0, 66.9951, 60.2956]Passed
regression: above cap no births[459.7312, 436.3139, 421.5999][495.0, 490.05, 485.1495]Failed
control: no breeding months reached[38.0, 36.1, 34.295, 32.5802][38.0, 36.1, 34.295, 32.5802]Passed
regression: full year[28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377][28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]Passed

SHA-256 / 091b1d94d5d36a2223e07e53d4c8a89f4d4722561d82ef7b85bf47b6ff711cf2

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(n0, monthly_survival, fecundity, breed_start, breed_end, start_month, months, cap):
    n = float(n0)
    traj = []
    for t in range(months):
        month = (start_month - 1 + t) % 12 + 1
        if breed_start <= breed_end:
            breeding = breed_start <= month <= breed_end
        else:
            breeding = month >= breed_start or month <= breed_end
        n *= monthly_survival
        if breeding:
            n += fecundity * n * max(0.0, 1 - n0 / cap)
        traj.append(round(n, 4))
    return traj
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: deer spring births[97.0, 94.09, 118.6475, 149.6145, 145.1261, 140.7723][97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]Failed
regression: southern winter breeding wraps[47.5, 56.4062, 66.9824, 79.5416, 94.4557, 89.7329][47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]Failed
regression: december start[94.864, 112.4897, 110.2399][94.9267, 111.9581, 109.7189]Failed
regression: single month window end[54.0, 65.61, 59.049][54.0, 66.9951, 60.2956]Failed
regression: above cap no births[495.0, 490.05, 485.1495][495.0, 490.05, 485.1495]Passed
control: no breeding months reached[38.0, 36.1, 34.295, 32.5802][38.0, 36.1, 34.295, 32.5802]Passed
regression: full year[28.8, 27.648, 30.258, 33.1143, 36.2403, 34.7907, 33.3991, 32.0631, 30.7806, 29.5494, 28.3674, 27.2327][28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]Failed

SHA-256 / 5e4761763495ee5fe3a10c7b0745ccce390f36ac00233ac18e17b9698895779e

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(n0, monthly_survival, fecundity, breed_start, breed_end, start_month, months, cap):
    n = float(n0)
    traj = []
    for t in range(months):
        month = (start_month - 1 + t) % 12 + 1
        if breed_start <= breed_end:
            breeding = breed_start <= month <= breed_end
        else:
            breeding = month >= breed_start or month <= breed_end
        n *= monthly_survival
        if breeding:
            n += fecundity * n * max(0.0, 1 - n / cap)
        traj.append(round(n, 4))
    return traj
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: southern winter breeding wraps',
   (50, 0.95, 0.3, 11, 2, 10, 6, 300),
   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),
  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],
 [('regression: deer spring births',
   (100, 0.97, 0.4, 5, 6, 3, 6, 400),
   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),
  ('regression: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),
  ('regression: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),
  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),
  ('regression: full year',
   (30, 0.96, 0.2, 3, 5, 1, 12, 100),
   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),
  ('regression: late-autumn window through december',
   (80, 0.98, 0.3, 11, 12, 10, 4, 500),
   [78.4, 96.3397, 117.3885, 115.0407]),
  ('regression: start inside wrap',
   (70, 0.93, 0.35, 10, 3, 1, 4, 250),
   [81.9518, 94.7582, 108.0965, 100.5297])]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: deer spring births[97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888][97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]Passed
regression: southern winter breeding wraps[47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636][47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]Passed
regression: december start[94.9267, 111.9581, 109.7189][94.9267, 111.9581, 109.7189]Passed
regression: single month window end[54.0, 66.9951, 60.2956][54.0, 66.9951, 60.2956]Passed
regression: above cap no births[495.0, 490.05, 485.1495][495.0, 490.05, 485.1495]Passed
control: no breeding months reached[38.0, 36.1, 34.295, 32.5802][38.0, 36.1, 34.295, 32.5802]Passed
regression: full year[28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377][28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]Passed

SHA-256 / 26ca7c55643864c2e274cebe79f73ecb6ca432e555c74aeb2e73446ef7c09f77

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:47:37.231514+00:00.

Case digest / 0723f7e9dcb4eab8e27d67740d5772a69e578619a6c5cab71e76edc5bd66e26c