FA-60256 / Inventory cost layering / Open access
Layer aging and slow-moving reserve: age direction · case 01
Every layer is treated as in transit and the aging report is empty.
ROOT CAUSE
Age is computed as receipt day minus today.
VERIFIED REPAIR
Age = today - receipt day.
Unsuccessful approach: Taking the absolute difference ages future receipts as if they were old stock.
Case contract
Input {layers:[[receipt_day,qty,unit]], today, buckets:[upper age bounds, inclusive], reserve_bp:[rate per bucket incl. overflow]}. Age = today - receipt_day; layers with negative age are in transit and excluded. A layer falls in the first bucket whose bound is >= age, else the overflow bucket. Reserve = sum over buckets of round-half-up(value*bp/10000). Return {values, reserve}.
Why this case matters
Inventory valuation and cost-of-goods decisions depend on this rule.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
bounds = x['buckets']
vals = [0] * (len(bounds) + 1)
for day, q, c in x['layers']:
age = day - x['today']
if age < 0:
continue
i = 0
while i < len(bounds) and age > bounds[i]:
i += 1
vals[i] += q * c
reserve = sum((v * bp + 5000) // 10000 for v, bp in zip(vals, x['reserve_bp']))
return {'values': vals, 'reserve': reserve}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 101], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 101, 21], 'reserve': 36}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4001]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4001, 0], 'reserve': 1200}], ['in transit', {'layers': [[106, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 26]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [52, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 51]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1050], 'reserve': 1050}], ['empty', {'layers': [], 'today': 101, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 42]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 84, 0], 'reserve': 42}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 102], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 102, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4002]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4002, 0], 'reserve': 1201}], ['in transit', {'layers': [[107, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 27]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [54, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 52]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1051], 'reserve': 1051}], ['empty', {'layers': [], 'today': 102, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 43]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 86, 0], 'reserve': 43}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 103], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 103, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4003]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4003, 0], 'reserve': 1201}], ['in transit', {'layers': [[108, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 28]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [56, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 53]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1052], 'reserve': 1052}], ['empty', {'layers': [], 'today': 103, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 44]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 88, 0], 'reserve': 44}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 104], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 104, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4004]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4004, 0], 'reserve': 1201}], ['in transit', {'layers': [[109, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 29]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [58, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 54]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1053], 'reserve': 1053}], ['empty', {'layers': [], 'today': 104, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 45]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 90, 0], 'reserve': 45}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 105], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 105, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4005]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4005, 0], 'reserve': 1201}], ['in transit', {'layers': [[110, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 30]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [60, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 55]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1054], 'reserve': 1054}], ['empty', {'layers': [], 'today': 105, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 46]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 92, 0], 'reserve': 46}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| mixed ages | {'reserve': 0, 'values': [50, 0, 0, 0]} | {'reserve': 36, 'values': [110, 0, 101, 21]} | Failed |
| bucket edges | {'reserve': 0, 'values': [0, 0, 0, 0]} | {'reserve': 1200, 'values': [1000, 2000, 4001, 0]} | Failed |
| in transit | {'reserve': 0, 'values': [200, 0, 0, 0]} | {'reserve': 0, 'values': [10, 0, 0, 0]} | Failed |
| same day | {'reserve': 1, 'values': [52, 0]} | {'reserve': 1, 'values': [52, 0]} | Passed |
| very old | {'reserve': 0, 'values': [0, 0, 0]} | {'reserve': 1050, 'values': [0, 0, 1050]} | Failed |
| empty | {'reserve': 0, 'values': [0, 0, 0]} | {'reserve': 0, 'values': [0, 0, 0]} | Passed |
| one step | {'reserve': 0, 'values': [0, 0, 0]} | {'reserve': 42, 'values': [80, 84, 0]} | Failed |
SHA-256 / 0c585a6ece6d3227bcdac715993440d4b8937df6d757f76107c9af13e5a609e3
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
bounds = x['buckets']
vals = [0] * (len(bounds) + 1)
for day, q, c in x['layers']:
age = abs(day - x['today'])
if age < 0:
continue
i = 0
while i < len(bounds) and age > bounds[i]:
i += 1
vals[i] += q * c
reserve = sum((v * bp + 5000) // 10000 for v, bp in zip(vals, x['reserve_bp']))
return {'values': vals, 'reserve': reserve}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 101], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 101, 21], 'reserve': 36}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4001]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4001, 0], 'reserve': 1200}], ['in transit', {'layers': [[106, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 26]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [52, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 51]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1050], 'reserve': 1050}], ['empty', {'layers': [], 'today': 101, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 42]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 84, 0], 'reserve': 42}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 102], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 102, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4002]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4002, 0], 'reserve': 1201}], ['in transit', {'layers': [[107, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 27]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [54, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 52]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1051], 'reserve': 1051}], ['empty', {'layers': [], 'today': 102, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 43]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 86, 0], 'reserve': 43}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 103], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 103, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4003]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4003, 0], 'reserve': 1201}], ['in transit', {'layers': [[108, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 28]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [56, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 53]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1052], 'reserve': 1052}], ['empty', {'layers': [], 'today': 103, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 44]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 88, 0], 'reserve': 44}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 104], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 104, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4004]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4004, 0], 'reserve': 1201}], ['in transit', {'layers': [[109, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 29]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [58, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 54]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1053], 'reserve': 1053}], ['empty', {'layers': [], 'today': 104, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 45]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 90, 0], 'reserve': 45}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 105], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 105, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4005]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4005, 0], 'reserve': 1201}], ['in transit', {'layers': [[110, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 30]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [60, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 55]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1054], 'reserve': 1054}], ['empty', {'layers': [], 'today': 105, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 46]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 92, 0], 'reserve': 46}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| mixed ages | {'reserve': 36, 'values': [110, 0, 101, 21]} | {'reserve': 36, 'values': [110, 0, 101, 21]} | Passed |
| bucket edges | {'reserve': 1200, 'values': [1000, 2000, 4001, 0]} | {'reserve': 1200, 'values': [1000, 2000, 4001, 0]} | Passed |
| in transit | {'reserve': 0, 'values': [210, 0, 0, 0]} | {'reserve': 0, 'values': [10, 0, 0, 0]} | Failed |
| same day | {'reserve': 1, 'values': [52, 0]} | {'reserve': 1, 'values': [52, 0]} | Passed |
| very old | {'reserve': 1050, 'values': [0, 0, 1050]} | {'reserve': 1050, 'values': [0, 0, 1050]} | Passed |
| empty | {'reserve': 0, 'values': [0, 0, 0]} | {'reserve': 0, 'values': [0, 0, 0]} | Passed |
| one step | {'reserve': 42, 'values': [80, 84, 0]} | {'reserve': 42, 'values': [80, 84, 0]} | Passed |
SHA-256 / e1ca5bcf60ac368a4ebfd1bccddf57da4db0eb738e8861eb3d8f682d91ab5a3e
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
bounds = x['buckets']
vals = [0] * (len(bounds) + 1)
for day, q, c in x['layers']:
age = x['today'] - day
if age < 0:
continue
i = 0
while i < len(bounds) and age > bounds[i]:
i += 1
vals[i] += q * c
reserve = sum((v * bp + 5000) // 10000 for v, bp in zip(vals, x['reserve_bp']))
return {'values': vals, 'reserve': reserve}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 101], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 101, 21], 'reserve': 36}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4001]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4001, 0], 'reserve': 1200}], ['in transit', {'layers': [[106, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 26]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [52, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 51]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1050], 'reserve': 1050}], ['empty', {'layers': [], 'today': 101, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 42]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 84, 0], 'reserve': 42}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 102], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 102, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4002]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4002, 0], 'reserve': 1201}], ['in transit', {'layers': [[107, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 27]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [54, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 52]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1051], 'reserve': 1051}], ['empty', {'layers': [], 'today': 102, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 43]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 86, 0], 'reserve': 43}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 103], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 103, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4003]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4003, 0], 'reserve': 1201}], ['in transit', {'layers': [[108, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 28]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [56, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 53]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1052], 'reserve': 1052}], ['empty', {'layers': [], 'today': 103, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 44]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 88, 0], 'reserve': 44}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 104], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 104, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4004]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4004, 0], 'reserve': 1201}], ['in transit', {'layers': [[109, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 29]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [58, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 54]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1053], 'reserve': 1053}], ['empty', {'layers': [], 'today': 104, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 45]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 90, 0], 'reserve': 45}]], [['mixed ages', {'layers': [[100, 5, 10], [70, 2, 30], [30, 1, 105], [5, 3, 7]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [110, 0, 105, 21], 'reserve': 37}], ['bucket edges', {'layers': [[70, 1, 1000], [40, 1, 2000], [10, 1, 4005]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [1000, 2000, 4005, 0], 'reserve': 1201}], ['in transit', {'layers': [[110, 4, 50], [90, 1, 10]], 'today': 100, 'buckets': [30, 60, 90], 'reserve_bp': [0, 1000, 2500, 5000]}, {'values': [10, 0, 0, 0], 'reserve': 0}], ['same day', {'layers': [[100, 2, 30]], 'today': 100, 'buckets': [30], 'reserve_bp': [100, 9000]}, {'values': [60, 0], 'reserve': 1}], ['very old', {'layers': [[1, 3, 333], [-200, 1, 55]], 'today': 300, 'buckets': [60, 120], 'reserve_bp': [0, 2000, 10000]}, {'values': [0, 0, 1054], 'reserve': 1054}], ['empty', {'layers': [], 'today': 105, 'buckets': [30, 60], 'reserve_bp': [0, 1000, 3000]}, {'values': [0, 0, 0], 'reserve': 0}], ['one step', {'layers': [[69, 2, 40], [68, 2, 46]], 'today': 100, 'buckets': [31, 32], 'reserve_bp': [0, 5000, 10000]}, {'values': [80, 92, 0], 'reserve': 46}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| mixed ages | {'reserve': 36, 'values': [110, 0, 101, 21]} | {'reserve': 36, 'values': [110, 0, 101, 21]} | Passed |
| bucket edges | {'reserve': 1200, 'values': [1000, 2000, 4001, 0]} | {'reserve': 1200, 'values': [1000, 2000, 4001, 0]} | Passed |
| in transit | {'reserve': 0, 'values': [10, 0, 0, 0]} | {'reserve': 0, 'values': [10, 0, 0, 0]} | Passed |
| same day | {'reserve': 1, 'values': [52, 0]} | {'reserve': 1, 'values': [52, 0]} | Passed |
| very old | {'reserve': 1050, 'values': [0, 0, 1050]} | {'reserve': 1050, 'values': [0, 0, 1050]} | Passed |
| empty | {'reserve': 0, 'values': [0, 0, 0]} | {'reserve': 0, 'values': [0, 0, 0]} | Passed |
| one step | {'reserve': 42, 'values': [80, 84, 0]} | {'reserve': 42, 'values': [80, 84, 0]} | Passed |
SHA-256 / 1f0c153919e310af93c42db05dd85f718a76a7e90357a5ae935e81ed55d9612a
Verification & scope
Stipulated bounded teaching model with explicit toy rules; not an accounting-standard implementation. 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:46:43.977467+00:00.
Case digest / 5749a677d661d2a2d5aa3e3bb0fa5fa8137bc0325b13d7cb1fc6ca3350176064