FA-59866 / Inventory cost layering / Open access
FIFO perpetual issue: depleted layer removal · case 01
Fully consumed layers remain in the layer list with zero quantity.
ROOT CAUSE
Layer removal is only performed when the whole issue has been satisfied, so emptied intermediate layers are skipped over but kept.
VERIFIED REPAIR
Pop a layer as soon as its remaining quantity reaches zero.
Unsuccessful approach: Removing emptied layers only at the end of the event loop still leaves empty layers when later events inspect the tail for merging.
Case contract
Input {layers:[[qty,unit_cost]] oldest first, events:[["recv",qty,unit_cost]|["issue",qty]]}. Issues consume the oldest layer first; an issue larger than on-hand is rejected whole and reported as "short"; a receipt at exactly the newest layer cost merges into it; receipts of zero or negative quantity are ignored. Return {cogs:[per-issue cost or "short"], layers}.
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):
layers = [list(l) for l in x['layers']]
out = []
for ev in x['events']:
if ev[0] == 'recv':
q, c = ev[1], ev[2]
if q <= 0:
continue
if layers and layers[-1][1] == c:
layers[-1][0] += q
else:
layers.append([q, c])
continue
need = ev[1]
onhand = sum(l[0] for l in layers)
if need > onhand:
out.append('short')
continue
cost = 0
while need > 0:
idx = 0
take = min(need, layers[idx][0])
cost += take * layers[idx][1]
layers[idx][0] -= take
need -= take
if layers[idx][0] == 0 and need == 0:
layers.pop(idx)
elif layers[idx][0] == 0:
layers.append(layers.pop(idx))
out.append(cost)
return {'cogs': out, 'layers': layers}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [1, 70]], 'events': [['issue', 5]]}, {'cogs': [270], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 4], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 13], ['issue', 4], ['recv', 1, 13]]}, {'cogs': [46], 'layers': [[4, 13]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 1, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[2, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 31], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [2, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': []}], ['price decline', {'layers': [[2, 61], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [122], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 1, 10]]}, {'cogs': [20], 'layers': [[3, 20], [1, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [2, 70]], 'events': [['issue', 6]]}, {'cogs': [340], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 5], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 14], ['issue', 4], ['recv', 1, 14]]}, {'cogs': [48], 'layers': [[4, 14]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 2, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[3, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 32], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [3, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[1, 9]]}], ['price decline', {'layers': [[2, 62], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [124], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 2, 10]]}, {'cogs': [20], 'layers': [[3, 20], [2, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 7]]}, {'cogs': [740], 'layers': [[8, 120]]}], ['exact depletion', {'layers': [[4, 50], [3, 70]], 'events': [['issue', 7]]}, {'cogs': [410], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 6], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 15], ['issue', 4], ['recv', 1, 15]]}, {'cogs': [50], 'layers': [[4, 15]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 3, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[4, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 33], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [4, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[2, 9]]}], ['price decline', {'layers': [[2, 63], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [126], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 3, 10]]}, {'cogs': [20], 'layers': [[3, 20], [3, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [4, 70]], 'events': [['issue', 8]]}, {'cogs': [480], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 7], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 16], ['issue', 4], ['recv', 1, 16]]}, {'cogs': [52], 'layers': [[4, 16]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 4, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[5, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 34], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [5, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[3, 9]]}], ['price decline', {'layers': [[2, 64], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [128], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 4, 10]]}, {'cogs': [20], 'layers': [[3, 20], [4, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [5, 70]], 'events': [['issue', 9]]}, {'cogs': [550], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 8], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 17], ['issue', 4], ['recv', 1, 17]]}, {'cogs': [54], 'layers': [[4, 17]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 5, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[6, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 35], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [6, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[4, 9]]}], ['price decline', {'layers': [[2, 65], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [130], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 5, 10]]}, {'cogs': [20], 'layers': [[3, 20], [5, 10]]}]]]
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 |
|---|---|---|---|
| span two layers | {'cogs': [860], 'layers': [[7, 120], [0, 100]]} | {'cogs': [860], 'layers': [[7, 120]]} | Failed |
| exact depletion | {'cogs': [270], 'layers': [[0, 50]]} | {'cogs': [270], 'layers': []} | Failed |
| short rejected | {'cogs': ['short', 180], 'layers': [[1, 90]]} | {'cogs': ['short', 180], 'layers': [[1, 90]]} | Passed |
| receipt then issue | {'cogs': [46], 'layers': [[3, 13], [0, 10], [1, 13]]} | {'cogs': [46], 'layers': [[4, 13]]} | Failed |
| same cost merge | {'cogs': [40], 'layers': [[2, 40], [3, 41]]} | {'cogs': [40], 'layers': [[2, 40], [3, 41]]} | Passed |
| zero receipt | {'cogs': [50], 'layers': [[4, 25]]} | {'cogs': [50], 'layers': [[4, 25]]} | Passed |
| multi issue | {'cogs': [5, 16, 9], 'layers': [[0, 7]]} | {'cogs': [5, 16, 9], 'layers': []} | Failed |
| price decline | {'cogs': [122], 'layers': [[3, 45]]} | {'cogs': [122], 'layers': [[3, 45]]} | Passed |
| exhaust layer then merge | {'cogs': [20], 'layers': [[3, 20], [1, 10]]} | {'cogs': [20], 'layers': [[3, 20], [1, 10]]} | Passed |
SHA-256 / 051e0b7e4b20e1a55efd273fefc09dec01a565726baf36e51a8ea00cace5e520
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
layers = [list(l) for l in x['layers']]
out = []
for ev in x['events']:
if ev[0] == 'recv':
q, c = ev[1], ev[2]
if q <= 0:
continue
if layers and layers[-1][1] == c:
layers[-1][0] += q
else:
layers.append([q, c])
continue
need = ev[1]
onhand = sum(l[0] for l in layers)
if need > onhand:
out.append('short')
continue
cost = 0
while need > 0:
idx = 0
take = min(need, layers[idx][0])
cost += take * layers[idx][1]
layers[idx][0] -= take
need -= take
if layers[idx][0] == 0 and need > 0:
layers.pop(idx)
elif layers[idx][0] == 0:
layers.append(layers.pop(idx))
out.append(cost)
return {'cogs': out, 'layers': layers}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [1, 70]], 'events': [['issue', 5]]}, {'cogs': [270], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 4], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 13], ['issue', 4], ['recv', 1, 13]]}, {'cogs': [46], 'layers': [[4, 13]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 1, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[2, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 31], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [2, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': []}], ['price decline', {'layers': [[2, 61], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [122], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 1, 10]]}, {'cogs': [20], 'layers': [[3, 20], [1, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [2, 70]], 'events': [['issue', 6]]}, {'cogs': [340], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 5], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 14], ['issue', 4], ['recv', 1, 14]]}, {'cogs': [48], 'layers': [[4, 14]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 2, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[3, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 32], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [3, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[1, 9]]}], ['price decline', {'layers': [[2, 62], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [124], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 2, 10]]}, {'cogs': [20], 'layers': [[3, 20], [2, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 7]]}, {'cogs': [740], 'layers': [[8, 120]]}], ['exact depletion', {'layers': [[4, 50], [3, 70]], 'events': [['issue', 7]]}, {'cogs': [410], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 6], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 15], ['issue', 4], ['recv', 1, 15]]}, {'cogs': [50], 'layers': [[4, 15]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 3, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[4, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 33], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [4, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[2, 9]]}], ['price decline', {'layers': [[2, 63], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [126], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 3, 10]]}, {'cogs': [20], 'layers': [[3, 20], [3, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [4, 70]], 'events': [['issue', 8]]}, {'cogs': [480], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 7], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 16], ['issue', 4], ['recv', 1, 16]]}, {'cogs': [52], 'layers': [[4, 16]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 4, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[5, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 34], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [5, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[3, 9]]}], ['price decline', {'layers': [[2, 64], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [128], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 4, 10]]}, {'cogs': [20], 'layers': [[3, 20], [4, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [5, 70]], 'events': [['issue', 9]]}, {'cogs': [550], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 8], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 17], ['issue', 4], ['recv', 1, 17]]}, {'cogs': [54], 'layers': [[4, 17]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 5, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[6, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 35], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [6, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[4, 9]]}], ['price decline', {'layers': [[2, 65], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [130], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 5, 10]]}, {'cogs': [20], 'layers': [[3, 20], [5, 10]]}]]]
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 |
|---|---|---|---|
| span two layers | {'cogs': [860], 'layers': [[7, 120]]} | {'cogs': [860], 'layers': [[7, 120]]} | Passed |
| exact depletion | {'cogs': [270], 'layers': [[0, 70]]} | {'cogs': [270], 'layers': []} | Failed |
| short rejected | {'cogs': ['short', 180], 'layers': [[1, 90]]} | {'cogs': ['short', 180], 'layers': [[1, 90]]} | Passed |
| receipt then issue | {'cogs': [46], 'layers': [[4, 13]]} | {'cogs': [46], 'layers': [[4, 13]]} | Passed |
| same cost merge | {'cogs': [40], 'layers': [[2, 40], [3, 41]]} | {'cogs': [40], 'layers': [[2, 40], [3, 41]]} | Passed |
| zero receipt | {'cogs': [50], 'layers': [[4, 25]]} | {'cogs': [50], 'layers': [[4, 25]]} | Passed |
| multi issue | {'cogs': [5, 16, 9], 'layers': [[0, 5], [0, 9]]} | {'cogs': [5, 16, 9], 'layers': []} | Failed |
| price decline | {'cogs': [122], 'layers': [[3, 45], [0, 61]]} | {'cogs': [122], 'layers': [[3, 45]]} | Failed |
| exhaust layer then merge | {'cogs': [20], 'layers': [[3, 20], [1, 10]]} | {'cogs': [20], 'layers': [[3, 20], [1, 10]]} | Passed |
SHA-256 / 31a7562be54f6ec3d2e2bda70462ef28b2ac1bb96b72653092c62a9d28288d67
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
layers = [list(l) for l in x['layers']]
out = []
for ev in x['events']:
if ev[0] == 'recv':
q, c = ev[1], ev[2]
if q <= 0:
continue
if layers and layers[-1][1] == c:
layers[-1][0] += q
else:
layers.append([q, c])
continue
need = ev[1]
onhand = sum(l[0] for l in layers)
if need > onhand:
out.append('short')
continue
cost = 0
while need > 0:
idx = 0
take = min(need, layers[idx][0])
cost += take * layers[idx][1]
layers[idx][0] -= take
need -= take
if layers[idx][0] == 0:
layers.pop(idx)
out.append(cost)
return {'cogs': out, 'layers': layers}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [1, 70]], 'events': [['issue', 5]]}, {'cogs': [270], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 4], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 13], ['issue', 4], ['recv', 1, 13]]}, {'cogs': [46], 'layers': [[4, 13]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 1, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[2, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 31], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [2, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': []}], ['price decline', {'layers': [[2, 61], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [122], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 1, 10]]}, {'cogs': [20], 'layers': [[3, 20], [1, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [2, 70]], 'events': [['issue', 6]]}, {'cogs': [340], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 5], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 14], ['issue', 4], ['recv', 1, 14]]}, {'cogs': [48], 'layers': [[4, 14]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 2, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[3, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 32], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [3, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[1, 9]]}], ['price decline', {'layers': [[2, 62], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [124], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 2, 10]]}, {'cogs': [20], 'layers': [[3, 20], [2, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 7]]}, {'cogs': [740], 'layers': [[8, 120]]}], ['exact depletion', {'layers': [[4, 50], [3, 70]], 'events': [['issue', 7]]}, {'cogs': [410], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 6], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 15], ['issue', 4], ['recv', 1, 15]]}, {'cogs': [50], 'layers': [[4, 15]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 3, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[4, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 33], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [4, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[2, 9]]}], ['price decline', {'layers': [[2, 63], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [126], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 3, 10]]}, {'cogs': [20], 'layers': [[3, 20], [3, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 8]]}, {'cogs': [860], 'layers': [[7, 120]]}], ['exact depletion', {'layers': [[4, 50], [4, 70]], 'events': [['issue', 8]]}, {'cogs': [480], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 7], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 16], ['issue', 4], ['recv', 1, 16]]}, {'cogs': [52], 'layers': [[4, 16]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 4, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[5, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 34], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [5, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[3, 9]]}], ['price decline', {'layers': [[2, 64], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [128], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 4, 10]]}, {'cogs': [20], 'layers': [[3, 20], [4, 10]]}]], [['span two layers', {'layers': [[5, 100], [10, 120]], 'events': [['issue', 9]]}, {'cogs': [980], 'layers': [[6, 120]]}], ['exact depletion', {'layers': [[4, 50], [5, 70]], 'events': [['issue', 9]]}, {'cogs': [550], 'layers': []}], ['short rejected', {'layers': [[3, 90]], 'events': [['issue', 8], ['issue', 2]]}, {'cogs': ['short', 180], 'layers': [[1, 90]]}], ['receipt then issue', {'layers': [[2, 10]], 'events': [['recv', 5, 17], ['issue', 4], ['recv', 1, 17]]}, {'cogs': [54], 'layers': [[4, 17]]}], ['same cost merge', {'layers': [[2, 40]], 'events': [['recv', 5, 40], ['recv', 3, 41], ['issue', 1]]}, {'cogs': [40], 'layers': [[6, 40], [3, 41]]}], ['zero receipt', {'layers': [[6, 25]], 'events': [['recv', 0, 35], ['issue', 2]]}, {'cogs': [50], 'layers': [[4, 25]]}], ['multi issue', {'layers': [[1, 5], [1, 7], [6, 9]], 'events': [['issue', 1], ['issue', 2], ['issue', 1]]}, {'cogs': [5, 16, 9], 'layers': [[4, 9]]}], ['price decline', {'layers': [[2, 65], [3, 45]], 'events': [['issue', 2]]}, {'cogs': [130], 'layers': [[3, 45]]}], ['exhaust layer then merge', {'layers': [[2, 10], [3, 20]], 'events': [['issue', 2], ['recv', 5, 10]]}, {'cogs': [20], 'layers': [[3, 20], [5, 10]]}]]]
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 |
|---|---|---|---|
| span two layers | {'cogs': [860], 'layers': [[7, 120]]} | {'cogs': [860], 'layers': [[7, 120]]} | Passed |
| exact depletion | {'cogs': [270], 'layers': []} | {'cogs': [270], 'layers': []} | Passed |
| short rejected | {'cogs': ['short', 180], 'layers': [[1, 90]]} | {'cogs': ['short', 180], 'layers': [[1, 90]]} | Passed |
| receipt then issue | {'cogs': [46], 'layers': [[4, 13]]} | {'cogs': [46], 'layers': [[4, 13]]} | Passed |
| same cost merge | {'cogs': [40], 'layers': [[2, 40], [3, 41]]} | {'cogs': [40], 'layers': [[2, 40], [3, 41]]} | Passed |
| zero receipt | {'cogs': [50], 'layers': [[4, 25]]} | {'cogs': [50], 'layers': [[4, 25]]} | Passed |
| multi issue | {'cogs': [5, 16, 9], 'layers': []} | {'cogs': [5, 16, 9], 'layers': []} | Passed |
| price decline | {'cogs': [122], 'layers': [[3, 45]]} | {'cogs': [122], 'layers': [[3, 45]]} | Passed |
| exhaust layer then merge | {'cogs': [20], 'layers': [[3, 20], [1, 10]]} | {'cogs': [20], 'layers': [[3, 20], [1, 10]]} | Passed |
SHA-256 / 5d2f5fa819b4b35b211e93e57fdeabccbc2c003be867d96b702f10267eb1ff6f
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:40.260100+00:00.
Case digest / 14ec9750cf84cee0567aab5190c1a50eb920f4fa87ccf4c52ebd47f081dcd528