FA-60286 / Inventory cost layering / Open access
Periodic weighted average with vendor returns: vendor return valuation · case 01
Returned goods are removed at the blended average rather than their own invoice cost.
ROOT CAUSE
Vendor returns are valued at the pre-return pool average.
VERIFIED REPAIR
Remove each return at its purchase line cost.
Unsuccessful approach: Valuing every return at the latest purchase cost is still the wrong line.
Case contract
Input {begin:[qty,value], purchases:[[qty,value]], vendor_returns:[[purchase_index,qty]], ending_qty}. Each vendor return removes qty units and floor(value*qty/purchase_qty) value of that purchase. The pool is beginning plus purchases less returns; ending value = round-half-up(ending_qty*pool value/pool units); COGS = pool value - ending value. ending_qty outside [0, pool units] returns {"error"}. Return {units, pool, ending_value, cogs}.
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):
units = x['begin'][0] + sum(q for q, v in x['purchases'])
pool = x['begin'][1] + sum(v for q, v in x['purchases'])
for i, rq in x['vendor_returns']:
pq, pv = x['purchases'][i]
pool -= (x["begin"][1] + sum(v for q, v in x["purchases"])) * rq // (x["begin"][0] + sum(q for q, v in x["purchases"]))
units -= rq
e = x['ending_qty']
if e < 0 or e > units:
return {'error': 'invalid count'}
ending = (2 * e * pool + units) // (2 * units) if units else 0
return {'units': units, 'pool': pool, 'ending_value': ending, 'cogs': pool - ending}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1501]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4451, 'ending_value': 1526, 'cogs': 2925}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 781]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1261, 'ending_value': 378, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1410]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2501], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3001, 'ending_value': 1200, 'cogs': 1801}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1502]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4452, 'ending_value': 1526, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 782]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1262, 'ending_value': 379, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1411]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2502], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3002, 'ending_value': 1201, 'cogs': 1801}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1503]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4453, 'ending_value': 1527, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 783]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1263, 'ending_value': 379, 'cogs': 884}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1412]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1825, 'ending_value': 1027, 'cogs': 798}], ['pricey begin', {'begin': [5, 2503], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3003, 'ending_value': 1201, 'cogs': 1802}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1504]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4454, 'ending_value': 1527, 'cogs': 2927}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 784]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1264, 'ending_value': 379, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1413]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2504], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3004, 'ending_value': 1202, 'cogs': 1802}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1505]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4455, 'ending_value': 1527, 'cogs': 2928}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 785]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1265, 'ending_value': 380, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1414]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2505], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3005, 'ending_value': 1202, 'cogs': 1803}]]]
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 |
|---|---|---|---|
| basic | {'cogs': 2933, 'ending_value': 1531, 'pool': 4464, 'units': 35} | {'cogs': 2925, 'ending_value': 1526, 'pool': 4451, 'units': 35} | Failed |
| no returns | {'cogs': 883, 'ending_value': 378, 'pool': 1261, 'units': 10} | {'cogs': 883, 'ending_value': 378, 'pool': 1261, 'units': 10} | Passed |
| return second | {'cogs': 175, 'ending_value': 439, 'pool': 614, 'units': 7} | {'cogs': 155, 'ending_value': 389, 'pool': 544, 'units': 7} | Failed |
| too many counted | {'error': 'invalid count'} | {'error': 'invalid count'} | Passed |
| empty count | {'cogs': 600, 'ending_value': 0, 'pool': 600, 'units': 5} | {'cogs': 590, 'ending_value': 0, 'pool': 590, 'units': 5} | Failed |
| odd costs | {'cogs': 816, 'ending_value': 1050, 'pool': 1866, 'units': 16} | {'cogs': 798, 'ending_value': 1026, 'pool': 1824, 'units': 16} | Failed |
| pricey begin | {'cogs': 1801, 'ending_value': 1200, 'pool': 3001, 'units': 10} | {'cogs': 1801, 'ending_value': 1200, 'pool': 3001, 'units': 10} | Passed |
SHA-256 / 5d5cd550baaab398841950643c716c4bcfcf87795629df46e4858aba80982914
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
units = x['begin'][0] + sum(q for q, v in x['purchases'])
pool = x['begin'][1] + sum(v for q, v in x['purchases'])
for i, rq in x['vendor_returns']:
pq, pv = x['purchases'][i]
pool -= x["purchases"][-1][1] * rq // x["purchases"][-1][0]
units -= rq
e = x['ending_qty']
if e < 0 or e > units:
return {'error': 'invalid count'}
ending = (2 * e * pool + units) // (2 * units) if units else 0
return {'units': units, 'pool': pool, 'ending_value': ending, 'cogs': pool - ending}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1501]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4451, 'ending_value': 1526, 'cogs': 2925}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 781]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1261, 'ending_value': 378, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1410]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2501], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3001, 'ending_value': 1200, 'cogs': 1801}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1502]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4452, 'ending_value': 1526, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 782]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1262, 'ending_value': 379, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1411]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2502], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3002, 'ending_value': 1201, 'cogs': 1801}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1503]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4453, 'ending_value': 1527, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 783]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1263, 'ending_value': 379, 'cogs': 884}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1412]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1825, 'ending_value': 1027, 'cogs': 798}], ['pricey begin', {'begin': [5, 2503], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3003, 'ending_value': 1201, 'cogs': 1802}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1504]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4454, 'ending_value': 1527, 'cogs': 2927}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 784]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1264, 'ending_value': 379, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1413]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2504], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3004, 'ending_value': 1202, 'cogs': 1802}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1505]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4455, 'ending_value': 1527, 'cogs': 2928}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 785]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1265, 'ending_value': 380, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1414]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2505], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3005, 'ending_value': 1202, 'cogs': 1803}]]]
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 |
|---|---|---|---|
| basic | {'cogs': 2859, 'ending_value': 1492, 'pool': 4351, 'units': 35} | {'cogs': 2925, 'ending_value': 1526, 'pool': 4451, 'units': 35} | Failed |
| no returns | {'cogs': 883, 'ending_value': 378, 'pool': 1261, 'units': 10} | {'cogs': 883, 'ending_value': 378, 'pool': 1261, 'units': 10} | Passed |
| return second | {'cogs': 155, 'ending_value': 389, 'pool': 544, 'units': 7} | {'cogs': 155, 'ending_value': 389, 'pool': 544, 'units': 7} | Passed |
| too many counted | {'error': 'invalid count'} | {'error': 'invalid count'} | Passed |
| empty count | {'cogs': 590, 'ending_value': 0, 'pool': 590, 'units': 5} | {'cogs': 590, 'ending_value': 0, 'pool': 590, 'units': 5} | Passed |
| odd costs | {'cogs': 791, 'ending_value': 1017, 'pool': 1808, 'units': 16} | {'cogs': 798, 'ending_value': 1026, 'pool': 1824, 'units': 16} | Failed |
| pricey begin | {'cogs': 1801, 'ending_value': 1200, 'pool': 3001, 'units': 10} | {'cogs': 1801, 'ending_value': 1200, 'pool': 3001, 'units': 10} | Passed |
SHA-256 / 95fb593790b30cce53cce3d048354cc6c44e77bd8b41b39b2673eb9e0f13183a
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
units = x['begin'][0] + sum(q for q, v in x['purchases'])
pool = x['begin'][1] + sum(v for q, v in x['purchases'])
for i, rq in x['vendor_returns']:
pq, pv = x['purchases'][i]
pool -= pv * rq // pq
units -= rq
e = x['ending_qty']
if e < 0 or e > units:
return {'error': 'invalid count'}
ending = (2 * e * pool + units) // (2 * units) if units else 0
return {'units': units, 'pool': pool, 'ending_value': ending, 'cogs': pool - ending}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1501]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4451, 'ending_value': 1526, 'cogs': 2925}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 781]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1261, 'ending_value': 378, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1410]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2501], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3001, 'ending_value': 1200, 'cogs': 1801}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1502]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4452, 'ending_value': 1526, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 782]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1262, 'ending_value': 379, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1411]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2502], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3002, 'ending_value': 1201, 'cogs': 1801}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1503]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4453, 'ending_value': 1527, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 783]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1263, 'ending_value': 379, 'cogs': 884}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1412]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1825, 'ending_value': 1027, 'cogs': 798}], ['pricey begin', {'begin': [5, 2503], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3003, 'ending_value': 1201, 'cogs': 1802}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1504]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4454, 'ending_value': 1527, 'cogs': 2927}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 784]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1264, 'ending_value': 379, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1413]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2504], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3004, 'ending_value': 1202, 'cogs': 1802}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1505]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4455, 'ending_value': 1527, 'cogs': 2928}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 785]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1265, 'ending_value': 380, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1414]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2505], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3005, 'ending_value': 1202, 'cogs': 1803}]]]
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 |
|---|---|---|---|
| basic | {'cogs': 2925, 'ending_value': 1526, 'pool': 4451, 'units': 35} | {'cogs': 2925, 'ending_value': 1526, 'pool': 4451, 'units': 35} | Passed |
| no returns | {'cogs': 883, 'ending_value': 378, 'pool': 1261, 'units': 10} | {'cogs': 883, 'ending_value': 378, 'pool': 1261, 'units': 10} | Passed |
| return second | {'cogs': 155, 'ending_value': 389, 'pool': 544, 'units': 7} | {'cogs': 155, 'ending_value': 389, 'pool': 544, 'units': 7} | Passed |
| too many counted | {'error': 'invalid count'} | {'error': 'invalid count'} | Passed |
| empty count | {'cogs': 590, 'ending_value': 0, 'pool': 590, 'units': 5} | {'cogs': 590, 'ending_value': 0, 'pool': 590, 'units': 5} | Passed |
| odd costs | {'cogs': 798, 'ending_value': 1026, 'pool': 1824, 'units': 16} | {'cogs': 798, 'ending_value': 1026, 'pool': 1824, 'units': 16} | Passed |
| pricey begin | {'cogs': 1801, 'ending_value': 1200, 'pool': 3001, 'units': 10} | {'cogs': 1801, 'ending_value': 1200, 'pool': 3001, 'units': 10} | Passed |
SHA-256 / aec8083932a6b9f18deae3d637a9883b4370defb82f687947de97bf8175659c4
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:44.191138+00:00.
Case digest / 1974016e580bcacc8a3e510880c06d03be5a69122b01d4d6ecde4d39840ca466