FAILURE MAP
← Case archive

FA-64131 / Medication dosing calculations / Open access

Rolling 24-hour cumulative dose limit: most recent dose selection · case 01

An early dose charted late in the list makes a too-soon request look allowed.

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

ROOT CAUSE

The last list entry is assumed to be the most recent administration although history is unordered.

VERIFIED REPAIR

Take the maximum administration time as the most recent dose.

Unsuccessful approach: Using the earliest time measures the interval from the first dose of the day.

Case contract

Input {history [[t_min, mg], ...] (any order), now, request_mg, max_mg, min_interval}. Doses with now - t < 1440 minutes count toward the rolling window (a dose exactly 24 h old has expired). The request is refused with TOO_SOON when now minus the most recent dose time is below min_interval, otherwise with DAILY_LIMIT when window + request exceeds max_mg; else OK. Return {allowed, reason, window_mg, remaining_mg = max(0, max_mg - window)}.

Why this case matters

Cumulative-dose guards are time-window computations over charted administrations; window edges and history ordering are common defect sites.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    now = x['now']
    window = sum(mg for t, mg in x['history'] if now - t < 1440)
    remaining = max(0, x['max_mg'] - window)
    if x['history']:
        last = x['history'][-1][0]
        if now - last < x['min_interval']:
            return {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': window, 'remaining_mg': remaining}
    if window + x['request_mg'] > x['max_mg']:
        return {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': window, 'remaining_mg': remaining}
    return {'allowed': True, 'reason': 'OK', 'window_mg': window, 'remaining_mg': remaining}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3100,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1100}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1401, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 610,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 340, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 335, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1100, 'max_mg': 3100, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1100}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 50, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3200,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1200}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1402, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 620,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 400, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 300},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 330, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1200, 'max_mg': 3200, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1200}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3050, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 100, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3300,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1300}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1403, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 630,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 460, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 360},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 325, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1300, 'max_mg': 3300, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1300}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3100, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 150, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3400,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1400}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1404, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 640,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 520, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 420},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 320, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1400, 'max_mg': 3400, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1400}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3150, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 200, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3500,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1500}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1405, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 650,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 580, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 480},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 315, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1500, 'max_mg': 3500, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1500}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3200, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 250, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})]]
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
dose exactly 24 hours old has expired{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}Passed
rolling window spans midnight{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 500, 'window_mg': 2000}{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 500, 'window_mg': 2000}Passed
unsorted history most recent dose{'allowed': True, 'reason': 'OK', 'remaining_mg': 2500, 'window_mg': 1500}{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2500, 'window_mg': 1500}Failed
interval exactly met{'allowed': True, 'reason': 'OK', 'remaining_mg': 2350, 'window_mg': 650}{'allowed': True, 'reason': 'OK', 'remaining_mg': 2350, 'window_mg': 650}Passed
interval shortly before minimum{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2350, 'window_mg': 650}{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2350, 'window_mg': 650}Passed
request reaches maximum exactly{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}Passed
over limit remaining clamped{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 0, 'window_mg': 3500}{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 0, 'window_mg': 3500}Passed
first dose control{'allowed': True, 'reason': 'OK', 'remaining_mg': 3000, 'window_mg': 0}{'allowed': True, 'reason': 'OK', 'remaining_mg': 3000, 'window_mg': 0}Passed

SHA-256 / 991e9483eab9cd44e175bef8b16373d77b8d5936f2070c131f5dd71c3200005c

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    now = x['now']
    window = sum(mg for t, mg in x['history'] if now - t < 1440)
    remaining = max(0, x['max_mg'] - window)
    if x['history']:
        last = min(t for t, mg in x['history'])
        if now - last < x['min_interval']:
            return {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': window, 'remaining_mg': remaining}
    if window + x['request_mg'] > x['max_mg']:
        return {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': window, 'remaining_mg': remaining}
    return {'allowed': True, 'reason': 'OK', 'window_mg': window, 'remaining_mg': remaining}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3100,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1100}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1401, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 610,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 340, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 335, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1100, 'max_mg': 3100, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1100}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 50, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3200,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1200}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1402, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 620,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 400, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 300},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 330, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1200, 'max_mg': 3200, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1200}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3050, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 100, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3300,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1300}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1403, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 630,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 460, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 360},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 325, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1300, 'max_mg': 3300, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1300}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3100, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 150, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3400,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1400}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1404, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 640,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 520, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 420},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 320, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1400, 'max_mg': 3400, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1400}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3150, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 200, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3500,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1500}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1405, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 650,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 580, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 480},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 315, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1500, 'max_mg': 3500, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1500}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3200, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 250, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})]]
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
dose exactly 24 hours old has expired{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}Passed
rolling window spans midnight{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 500, 'window_mg': 2000}{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 500, 'window_mg': 2000}Passed
unsorted history most recent dose{'allowed': True, 'reason': 'OK', 'remaining_mg': 2500, 'window_mg': 1500}{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2500, 'window_mg': 1500}Failed
interval exactly met{'allowed': True, 'reason': 'OK', 'remaining_mg': 2350, 'window_mg': 650}{'allowed': True, 'reason': 'OK', 'remaining_mg': 2350, 'window_mg': 650}Passed
interval shortly before minimum{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2350, 'window_mg': 650}{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2350, 'window_mg': 650}Passed
request reaches maximum exactly{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}Passed
over limit remaining clamped{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 0, 'window_mg': 3500}{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 0, 'window_mg': 3500}Passed
first dose control{'allowed': True, 'reason': 'OK', 'remaining_mg': 3000, 'window_mg': 0}{'allowed': True, 'reason': 'OK', 'remaining_mg': 3000, 'window_mg': 0}Passed

SHA-256 / 62d1214d2905a29ea7833166df13c6f3817cdf58bca524c2e134f8da2ff1474c

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    now = x['now']
    window = sum(mg for t, mg in x['history'] if now - t < 1440)
    remaining = max(0, x['max_mg'] - window)
    if x['history']:
        last = max(t for t, mg in x['history'])
        if now - last < x['min_interval']:
            return {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': window, 'remaining_mg': remaining}
    if window + x['request_mg'] > x['max_mg']:
        return {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': window, 'remaining_mg': remaining}
    return {'allowed': True, 'reason': 'OK', 'window_mg': window, 'remaining_mg': remaining}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3100,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1100}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1401, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 610,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 340, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 335, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1100, 'max_mg': 3100, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1100}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 50, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3200,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1200}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1402, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 620,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 400, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 300},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 330, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1200, 'max_mg': 3200, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1200}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3050, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 100, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3300,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1300}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1403, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 630,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 460, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 360},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 325, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1300, 'max_mg': 3300, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1300}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3100, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 150, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3400,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1400}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1404, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 640,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 520, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 420},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 320, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1400, 'max_mg': 3400, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1400}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3150, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 200, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})],
 [('dose exactly 24 hours old has expired',
   {'history': [[0, 1000], [600, 1000], [1200, 1000]],
    'now': 1440,
    'request_mg': 1000,
    'max_mg': 3500,
    'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1500}),
  ('rolling window spans midnight',
   {'history': [[1300, 1000], [1405, 1000]],
    'now': 1700,
    'request_mg': 1000,
    'max_mg': 2500,
    'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 2000, 'remaining_mg': 500}),
  ('unsorted history most recent dose',
   {'history': [[500, 500], [100, 500], [300, 500]],
    'now': 650,
    'request_mg': 500,
    'max_mg': 4000,
    'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 1500, 'remaining_mg': 2500}),
  ('interval exactly met',
   {'history': [[100, 650]], 'now': 580, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 480},
   {'allowed': True, 'reason': 'OK', 'window_mg': 650, 'remaining_mg': 2350}),
  ('interval shortly before minimum',
   {'history': [[100, 650]], 'now': 315, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': False, 'reason': 'TOO_SOON', 'window_mg': 650, 'remaining_mg': 2350}),
  ('request reaches maximum exactly',
   {'history': [[0, 1000], [300, 1000]], 'now': 600, 'request_mg': 1500, 'max_mg': 3500, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 2000, 'remaining_mg': 1500}),
  ('over limit remaining clamped',
   {'history': [[0, 2000], [400, 1500]], 'now': 900, 'request_mg': 500, 'max_mg': 3200, 'min_interval': 240},
   {'allowed': False, 'reason': 'DAILY_LIMIT', 'window_mg': 3500, 'remaining_mg': 0}),
  ('first dose control',
   {'history': [], 'now': 250, 'request_mg': 650, 'max_mg': 3000, 'min_interval': 240},
   {'allowed': True, 'reason': 'OK', 'window_mg': 0, 'remaining_mg': 3000})]]
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
dose exactly 24 hours old has expired{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}Passed
rolling window spans midnight{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 500, 'window_mg': 2000}{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 500, 'window_mg': 2000}Passed
unsorted history most recent dose{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2500, 'window_mg': 1500}{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2500, 'window_mg': 1500}Passed
interval exactly met{'allowed': True, 'reason': 'OK', 'remaining_mg': 2350, 'window_mg': 650}{'allowed': True, 'reason': 'OK', 'remaining_mg': 2350, 'window_mg': 650}Passed
interval shortly before minimum{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2350, 'window_mg': 650}{'allowed': False, 'reason': 'TOO_SOON', 'remaining_mg': 2350, 'window_mg': 650}Passed
request reaches maximum exactly{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}{'allowed': True, 'reason': 'OK', 'remaining_mg': 1100, 'window_mg': 2000}Passed
over limit remaining clamped{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 0, 'window_mg': 3500}{'allowed': False, 'reason': 'DAILY_LIMIT', 'remaining_mg': 0, 'window_mg': 3500}Passed
first dose control{'allowed': True, 'reason': 'OK', 'remaining_mg': 3000, 'window_mg': 0}{'allowed': True, 'reason': 'OK', 'remaining_mg': 3000, 'window_mg': 0}Passed

SHA-256 / 411085205a45e6404e129ecb635f2a12041e25f1e4d07fd107439950dae9f5e1

Verification & scope

A deterministic toy software model with explicitly stipulated thresholds and formulas; it is not clinical guidance, not a validated medical calculator, and makes no claim of conformance to any published protocol. Numbered variants vary patient and order inputs. 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:21.209554+00:00.

Case digest / 5183eacab7d37208fb29e903fedb52804448685fd13c0794505814a1dd054884