FA-59951 / Inventory cost layering / Open access
Landed cost allocation to receipt layers: duty half-cent rounding · case 01
Duty amounts ending in exactly half a cent are rounded down.
ROOT CAUSE
Duty is truncated instead of rounded half up.
VERIFIED REPAIR
Add half of the 10000 divisor before integer division.
Unsuccessful approach: Adding 4999 rounds half down and still loses the exact half cent.
Case contract
Input {lines:[{sku,qty,unit_cost,weight(per unit)}], freight, duty_bp, basis:"weight"|"value"}. Freight is allocated in proportion to qty*weight (or line value); floor shares are topped up one cent at a time by largest remainder, ties to the earlier line. If the weight basis sums to zero, fall back to value; if that is zero too return {"error"}. Duty is round-half-up(line value*duty_bp/10000) on merchandise value only. Landed total = value+freight share+duty; unit = round-half-up(landed/qty).
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):
lines = x['lines']
freight = x['freight']
vals = [l['qty'] * l['unit_cost'] for l in lines]
if x['basis'] == 'weight':
base = [l['qty'] * l['weight'] for l in lines]
else:
base = list(vals)
tb = sum(base)
if tb == 0:
base = list(vals)
tb = sum(base)
if tb == 0:
return {'error': 'no allocation basis'}
shares = [freight * b // tb for b in base]
rems = [freight * b % tb for b in base]
left = freight - sum(shares)
order = sorted(range(len(lines)), key=lambda i: (-rems[i], i))
for i in order[:left]:
shares[i] += 1
out = []
for i, l in enumerate(lines):
duty = (vals[i] * x['duty_bp']) // 10000
total = vals[i] + shares[i] + duty
unit = (2 * total + l['qty']) // (2 * l['qty'])
out.append({'sku': l['sku'], 'freight': shares[i], 'duty': duty, 'landed': total, 'unit': unit})
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 4}], 'freight': 1001, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 834, 'duty': 75, 'landed': 3909, 'unit': 391}, {'sku': 'B', 'freight': 167, 'duty': 125, 'landed': 5292, 'unit': 5292}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 116, 'unit': 116}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 104, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}, {'sku': 'B', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}, {'sku': 'C', 'freight': 34, 'duty': 1, 'landed': 135, 'unit': 135}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 11, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 3, 'duty': 0, 'landed': 13, 'unit': 13}, {'sku': 'C', 'freight': 6, 'duty': 0, 'landed': 16, 'unit': 16}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 301, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 241, 'duty': 40, 'landed': 1081, 'unit': 541}, {'sku': 'B', 'freight': 60, 'duty': 10, 'landed': 270, 'unit': 270}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 50, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 300, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 6, 'landed': 606, 'unit': 303}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1201, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 601, 'landed': 7340, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 360, 'landed': 3618, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 5}], 'freight': 1002, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 802, 'duty': 75, 'landed': 3877, 'unit': 388}, {'sku': 'B', 'freight': 200, 'duty': 125, 'landed': 5325, 'unit': 5325}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 101, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 117, 'unit': 117}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 107, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}, {'sku': 'B', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}, {'sku': 'C', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 12, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 3, 'duty': 0, 'landed': 13, 'unit': 13}, {'sku': 'C', 'freight': 7, 'duty': 0, 'landed': 17, 'unit': 17}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 302, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 242, 'duty': 40, 'landed': 1082, 'unit': 541}, {'sku': 'B', 'freight': 60, 'duty': 10, 'landed': 270, 'unit': 270}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 100, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 350, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 7, 'landed': 707, 'unit': 354}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1202, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 601, 'landed': 7340, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 360, 'landed': 3618, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 6}], 'freight': 1003, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 772, 'duty': 75, 'landed': 3847, 'unit': 385}, {'sku': 'B', 'freight': 231, 'duty': 125, 'landed': 5356, 'unit': 5356}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 102, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 118, 'unit': 118}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 110, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}, {'sku': 'B', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}, {'sku': 'C', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 13, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 7, 'duty': 0, 'landed': 17, 'unit': 17}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 303, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 242, 'duty': 40, 'landed': 1082, 'unit': 541}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 150, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 400, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 8, 'landed': 808, 'unit': 404}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1203, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 602, 'landed': 7341, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 7}], 'freight': 1004, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 744, 'duty': 75, 'landed': 3819, 'unit': 382}, {'sku': 'B', 'freight': 260, 'duty': 125, 'landed': 5385, 'unit': 5385}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 103, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 338, 'duty': 0, 'landed': 2438, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 17, 'duty': 0, 'landed': 120, 'unit': 120}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 113, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}, {'sku': 'B', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}, {'sku': 'C', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 14, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 8, 'duty': 0, 'landed': 18, 'unit': 18}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 304, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 243, 'duty': 40, 'landed': 1083, 'unit': 542}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 200, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 9, 'landed': 909, 'unit': 455}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1204, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 602, 'landed': 7341, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 8}], 'freight': 1005, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 718, 'duty': 75, 'landed': 3793, 'unit': 379}, {'sku': 'B', 'freight': 287, 'duty': 125, 'landed': 5412, 'unit': 5412}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 104, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 338, 'duty': 0, 'landed': 2438, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 17, 'duty': 0, 'landed': 121, 'unit': 121}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 116, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 39, 'duty': 1, 'landed': 140, 'unit': 140}, {'sku': 'B', 'freight': 39, 'duty': 1, 'landed': 140, 'unit': 140}, {'sku': 'C', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 15, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 9, 'duty': 0, 'landed': 19, 'unit': 19}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 305, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 244, 'duty': 40, 'landed': 1084, 'unit': 542}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 250, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 500, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 10, 'landed': 1010, 'unit': 505}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1205, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 603, 'landed': 7342, 'unit': 1836}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]]]
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 |
|---|---|---|---|
| weight basis | [{'duty': 75, 'freight': 834, 'landed': 3909, 'sku': 'A', 'unit': 391}, {'duty': 125, 'freight': 167, 'landed': 5292, 'sku': 'B', 'unit': 5292}] | [{'duty': 75, 'freight': 834, 'landed': 3909, 'sku': 'A', 'unit': 391}, {'duty': 125, 'freight': 167, 'landed': 5292, 'sku': 'B', 'unit': 5292}] | Passed |
| value basis | [{'duty': 0, 'freight': 339, 'landed': 2439, 'sku': 'A', 'unit': 813}, {'duty': 0, 'freight': 145, 'landed': 1045, 'sku': 'B', 'unit': 523}, {'duty': 0, 'freight': 16, 'landed': 116, 'sku': 'C', 'unit': 116}] | [{'duty': 0, 'freight': 339, 'landed': 2439, 'sku': 'A', 'unit': 813}, {'duty': 0, 'freight': 145, 'landed': 1045, 'sku': 'B', 'unit': 523}, {'duty': 0, 'freight': 16, 'landed': 116, 'sku': 'C', 'unit': 116}] | Passed |
| remainder spread | [{'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'A', 'unit': 136}, {'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'B', 'unit': 136}, {'duty': 1, 'freight': 34, 'landed': 135, 'sku': 'C', 'unit': 135}] | [{'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'A', 'unit': 136}, {'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'B', 'unit': 136}, {'duty': 1, 'freight': 34, 'landed': 135, 'sku': 'C', 'unit': 135}] | Passed |
| uneven remainders | [{'duty': 0, 'freight': 2, 'landed': 12, 'sku': 'A', 'unit': 12}, {'duty': 0, 'freight': 3, 'landed': 13, 'sku': 'B', 'unit': 13}, {'duty': 0, 'freight': 6, 'landed': 16, 'sku': 'C', 'unit': 16}] | [{'duty': 0, 'freight': 2, 'landed': 12, 'sku': 'A', 'unit': 12}, {'duty': 0, 'freight': 3, 'landed': 13, 'sku': 'B', 'unit': 13}, {'duty': 0, 'freight': 6, 'landed': 16, 'sku': 'C', 'unit': 16}] | Passed |
| zero weights | [{'duty': 40, 'freight': 241, 'landed': 1081, 'sku': 'A', 'unit': 541}, {'duty': 10, 'freight': 60, 'landed': 270, 'sku': 'B', 'unit': 270}] | [{'duty': 40, 'freight': 241, 'landed': 1081, 'sku': 'A', 'unit': 541}, {'duty': 10, 'freight': 60, 'landed': 270, 'sku': 'B', 'unit': 270}] | Passed |
| nothing to allocate | {'error': 'no allocation basis'} | {'error': 'no allocation basis'} | Passed |
| half cent duty | [{'duty': 1, 'freight': 0, 'landed': 151, 'sku': 'A', 'unit': 151}, {'duty': 6, 'freight': 0, 'landed': 606, 'sku': 'B', 'unit': 303}] | [{'duty': 2, 'freight': 0, 'landed': 152, 'sku': 'A', 'unit': 152}, {'duty': 6, 'freight': 0, 'landed': 606, 'sku': 'B', 'unit': 303}] | Failed |
| heavy duty | [{'duty': 600, 'freight': 1739, 'landed': 7339, 'sku': 'A', 'unit': 1835}, {'duty': 359, 'freight': 261, 'landed': 3617, 'sku': 'B', 'unit': 1206}] | [{'duty': 601, 'freight': 1739, 'landed': 7340, 'sku': 'A', 'unit': 1835}, {'duty': 360, 'freight': 261, 'landed': 3618, 'sku': 'B', 'unit': 1206}] | Failed |
SHA-256 / 90cf33fb671e827f8e3b75b8de25c5d0a80da71fb2566015f093d34c89b4b54a
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
lines = x['lines']
freight = x['freight']
vals = [l['qty'] * l['unit_cost'] for l in lines]
if x['basis'] == 'weight':
base = [l['qty'] * l['weight'] for l in lines]
else:
base = list(vals)
tb = sum(base)
if tb == 0:
base = list(vals)
tb = sum(base)
if tb == 0:
return {'error': 'no allocation basis'}
shares = [freight * b // tb for b in base]
rems = [freight * b % tb for b in base]
left = freight - sum(shares)
order = sorted(range(len(lines)), key=lambda i: (-rems[i], i))
for i in order[:left]:
shares[i] += 1
out = []
for i, l in enumerate(lines):
duty = (vals[i] * x['duty_bp'] + 4999) // 10000
total = vals[i] + shares[i] + duty
unit = (2 * total + l['qty']) // (2 * l['qty'])
out.append({'sku': l['sku'], 'freight': shares[i], 'duty': duty, 'landed': total, 'unit': unit})
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 4}], 'freight': 1001, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 834, 'duty': 75, 'landed': 3909, 'unit': 391}, {'sku': 'B', 'freight': 167, 'duty': 125, 'landed': 5292, 'unit': 5292}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 116, 'unit': 116}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 104, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}, {'sku': 'B', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}, {'sku': 'C', 'freight': 34, 'duty': 1, 'landed': 135, 'unit': 135}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 11, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 3, 'duty': 0, 'landed': 13, 'unit': 13}, {'sku': 'C', 'freight': 6, 'duty': 0, 'landed': 16, 'unit': 16}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 301, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 241, 'duty': 40, 'landed': 1081, 'unit': 541}, {'sku': 'B', 'freight': 60, 'duty': 10, 'landed': 270, 'unit': 270}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 50, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 300, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 6, 'landed': 606, 'unit': 303}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1201, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 601, 'landed': 7340, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 360, 'landed': 3618, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 5}], 'freight': 1002, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 802, 'duty': 75, 'landed': 3877, 'unit': 388}, {'sku': 'B', 'freight': 200, 'duty': 125, 'landed': 5325, 'unit': 5325}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 101, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 117, 'unit': 117}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 107, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}, {'sku': 'B', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}, {'sku': 'C', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 12, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 3, 'duty': 0, 'landed': 13, 'unit': 13}, {'sku': 'C', 'freight': 7, 'duty': 0, 'landed': 17, 'unit': 17}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 302, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 242, 'duty': 40, 'landed': 1082, 'unit': 541}, {'sku': 'B', 'freight': 60, 'duty': 10, 'landed': 270, 'unit': 270}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 100, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 350, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 7, 'landed': 707, 'unit': 354}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1202, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 601, 'landed': 7340, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 360, 'landed': 3618, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 6}], 'freight': 1003, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 772, 'duty': 75, 'landed': 3847, 'unit': 385}, {'sku': 'B', 'freight': 231, 'duty': 125, 'landed': 5356, 'unit': 5356}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 102, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 118, 'unit': 118}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 110, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}, {'sku': 'B', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}, {'sku': 'C', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 13, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 7, 'duty': 0, 'landed': 17, 'unit': 17}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 303, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 242, 'duty': 40, 'landed': 1082, 'unit': 541}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 150, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 400, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 8, 'landed': 808, 'unit': 404}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1203, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 602, 'landed': 7341, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 7}], 'freight': 1004, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 744, 'duty': 75, 'landed': 3819, 'unit': 382}, {'sku': 'B', 'freight': 260, 'duty': 125, 'landed': 5385, 'unit': 5385}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 103, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 338, 'duty': 0, 'landed': 2438, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 17, 'duty': 0, 'landed': 120, 'unit': 120}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 113, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}, {'sku': 'B', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}, {'sku': 'C', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 14, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 8, 'duty': 0, 'landed': 18, 'unit': 18}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 304, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 243, 'duty': 40, 'landed': 1083, 'unit': 542}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 200, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 9, 'landed': 909, 'unit': 455}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1204, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 602, 'landed': 7341, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 8}], 'freight': 1005, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 718, 'duty': 75, 'landed': 3793, 'unit': 379}, {'sku': 'B', 'freight': 287, 'duty': 125, 'landed': 5412, 'unit': 5412}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 104, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 338, 'duty': 0, 'landed': 2438, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 17, 'duty': 0, 'landed': 121, 'unit': 121}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 116, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 39, 'duty': 1, 'landed': 140, 'unit': 140}, {'sku': 'B', 'freight': 39, 'duty': 1, 'landed': 140, 'unit': 140}, {'sku': 'C', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 15, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 9, 'duty': 0, 'landed': 19, 'unit': 19}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 305, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 244, 'duty': 40, 'landed': 1084, 'unit': 542}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 250, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 500, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 10, 'landed': 1010, 'unit': 505}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1205, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 603, 'landed': 7342, 'unit': 1836}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]]]
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 |
|---|---|---|---|
| weight basis | [{'duty': 75, 'freight': 834, 'landed': 3909, 'sku': 'A', 'unit': 391}, {'duty': 125, 'freight': 167, 'landed': 5292, 'sku': 'B', 'unit': 5292}] | [{'duty': 75, 'freight': 834, 'landed': 3909, 'sku': 'A', 'unit': 391}, {'duty': 125, 'freight': 167, 'landed': 5292, 'sku': 'B', 'unit': 5292}] | Passed |
| value basis | [{'duty': 0, 'freight': 339, 'landed': 2439, 'sku': 'A', 'unit': 813}, {'duty': 0, 'freight': 145, 'landed': 1045, 'sku': 'B', 'unit': 523}, {'duty': 0, 'freight': 16, 'landed': 116, 'sku': 'C', 'unit': 116}] | [{'duty': 0, 'freight': 339, 'landed': 2439, 'sku': 'A', 'unit': 813}, {'duty': 0, 'freight': 145, 'landed': 1045, 'sku': 'B', 'unit': 523}, {'duty': 0, 'freight': 16, 'landed': 116, 'sku': 'C', 'unit': 116}] | Passed |
| remainder spread | [{'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'A', 'unit': 136}, {'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'B', 'unit': 136}, {'duty': 1, 'freight': 34, 'landed': 135, 'sku': 'C', 'unit': 135}] | [{'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'A', 'unit': 136}, {'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'B', 'unit': 136}, {'duty': 1, 'freight': 34, 'landed': 135, 'sku': 'C', 'unit': 135}] | Passed |
| uneven remainders | [{'duty': 0, 'freight': 2, 'landed': 12, 'sku': 'A', 'unit': 12}, {'duty': 0, 'freight': 3, 'landed': 13, 'sku': 'B', 'unit': 13}, {'duty': 0, 'freight': 6, 'landed': 16, 'sku': 'C', 'unit': 16}] | [{'duty': 0, 'freight': 2, 'landed': 12, 'sku': 'A', 'unit': 12}, {'duty': 0, 'freight': 3, 'landed': 13, 'sku': 'B', 'unit': 13}, {'duty': 0, 'freight': 6, 'landed': 16, 'sku': 'C', 'unit': 16}] | Passed |
| zero weights | [{'duty': 40, 'freight': 241, 'landed': 1081, 'sku': 'A', 'unit': 541}, {'duty': 10, 'freight': 60, 'landed': 270, 'sku': 'B', 'unit': 270}] | [{'duty': 40, 'freight': 241, 'landed': 1081, 'sku': 'A', 'unit': 541}, {'duty': 10, 'freight': 60, 'landed': 270, 'sku': 'B', 'unit': 270}] | Passed |
| nothing to allocate | {'error': 'no allocation basis'} | {'error': 'no allocation basis'} | Passed |
| half cent duty | [{'duty': 1, 'freight': 0, 'landed': 151, 'sku': 'A', 'unit': 151}, {'duty': 6, 'freight': 0, 'landed': 606, 'sku': 'B', 'unit': 303}] | [{'duty': 2, 'freight': 0, 'landed': 152, 'sku': 'A', 'unit': 152}, {'duty': 6, 'freight': 0, 'landed': 606, 'sku': 'B', 'unit': 303}] | Failed |
| heavy duty | [{'duty': 600, 'freight': 1739, 'landed': 7339, 'sku': 'A', 'unit': 1835}, {'duty': 360, 'freight': 261, 'landed': 3618, 'sku': 'B', 'unit': 1206}] | [{'duty': 601, 'freight': 1739, 'landed': 7340, 'sku': 'A', 'unit': 1835}, {'duty': 360, 'freight': 261, 'landed': 3618, 'sku': 'B', 'unit': 1206}] | Failed |
SHA-256 / 3f711dfe841300d90e3618add5bd6b7d914ff1f4243ea63d62210e84abd83483
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
lines = x['lines']
freight = x['freight']
vals = [l['qty'] * l['unit_cost'] for l in lines]
if x['basis'] == 'weight':
base = [l['qty'] * l['weight'] for l in lines]
else:
base = list(vals)
tb = sum(base)
if tb == 0:
base = list(vals)
tb = sum(base)
if tb == 0:
return {'error': 'no allocation basis'}
shares = [freight * b // tb for b in base]
rems = [freight * b % tb for b in base]
left = freight - sum(shares)
order = sorted(range(len(lines)), key=lambda i: (-rems[i], i))
for i in order[:left]:
shares[i] += 1
out = []
for i, l in enumerate(lines):
duty = (vals[i] * x['duty_bp'] + 5000) // 10000
total = vals[i] + shares[i] + duty
unit = (2 * total + l['qty']) // (2 * l['qty'])
out.append({'sku': l['sku'], 'freight': shares[i], 'duty': duty, 'landed': total, 'unit': unit})
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 4}], 'freight': 1001, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 834, 'duty': 75, 'landed': 3909, 'unit': 391}, {'sku': 'B', 'freight': 167, 'duty': 125, 'landed': 5292, 'unit': 5292}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 116, 'unit': 116}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 104, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}, {'sku': 'B', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}, {'sku': 'C', 'freight': 34, 'duty': 1, 'landed': 135, 'unit': 135}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 11, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 3, 'duty': 0, 'landed': 13, 'unit': 13}, {'sku': 'C', 'freight': 6, 'duty': 0, 'landed': 16, 'unit': 16}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 301, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 241, 'duty': 40, 'landed': 1081, 'unit': 541}, {'sku': 'B', 'freight': 60, 'duty': 10, 'landed': 270, 'unit': 270}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 50, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 300, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 6, 'landed': 606, 'unit': 303}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1201, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 601, 'landed': 7340, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 360, 'landed': 3618, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 5}], 'freight': 1002, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 802, 'duty': 75, 'landed': 3877, 'unit': 388}, {'sku': 'B', 'freight': 200, 'duty': 125, 'landed': 5325, 'unit': 5325}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 101, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 117, 'unit': 117}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 107, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}, {'sku': 'B', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}, {'sku': 'C', 'freight': 35, 'duty': 1, 'landed': 136, 'unit': 136}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 12, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 3, 'duty': 0, 'landed': 13, 'unit': 13}, {'sku': 'C', 'freight': 7, 'duty': 0, 'landed': 17, 'unit': 17}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 302, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 242, 'duty': 40, 'landed': 1082, 'unit': 541}, {'sku': 'B', 'freight': 60, 'duty': 10, 'landed': 270, 'unit': 270}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 100, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 350, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 7, 'landed': 707, 'unit': 354}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1202, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 601, 'landed': 7340, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 360, 'landed': 3618, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 6}], 'freight': 1003, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 772, 'duty': 75, 'landed': 3847, 'unit': 385}, {'sku': 'B', 'freight': 231, 'duty': 125, 'landed': 5356, 'unit': 5356}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 102, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 339, 'duty': 0, 'landed': 2439, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 16, 'duty': 0, 'landed': 118, 'unit': 118}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 110, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}, {'sku': 'B', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}, {'sku': 'C', 'freight': 36, 'duty': 1, 'landed': 137, 'unit': 137}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 13, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 7, 'duty': 0, 'landed': 17, 'unit': 17}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 303, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 242, 'duty': 40, 'landed': 1082, 'unit': 541}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 150, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 400, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 8, 'landed': 808, 'unit': 404}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1203, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 602, 'landed': 7341, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 7}], 'freight': 1004, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 744, 'duty': 75, 'landed': 3819, 'unit': 382}, {'sku': 'B', 'freight': 260, 'duty': 125, 'landed': 5385, 'unit': 5385}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 103, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 338, 'duty': 0, 'landed': 2438, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 17, 'duty': 0, 'landed': 120, 'unit': 120}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 113, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}, {'sku': 'B', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}, {'sku': 'C', 'freight': 37, 'duty': 1, 'landed': 138, 'unit': 138}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 14, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 8, 'duty': 0, 'landed': 18, 'unit': 18}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 304, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 243, 'duty': 40, 'landed': 1083, 'unit': 542}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 200, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 9, 'landed': 909, 'unit': 455}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1204, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 602, 'landed': 7341, 'unit': 1835}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]], [['weight basis', {'lines': [{'sku': 'A', 'qty': 10, 'unit_cost': 300, 'weight': 2}, {'sku': 'B', 'qty': 1, 'unit_cost': 5000, 'weight': 8}], 'freight': 1005, 'duty_bp': 250, 'basis': 'weight'}, [{'sku': 'A', 'freight': 718, 'duty': 75, 'landed': 3793, 'unit': 379}, {'sku': 'B', 'freight': 287, 'duty': 125, 'landed': 5412, 'unit': 5412}]], ['value basis', {'lines': [{'sku': 'A', 'qty': 3, 'unit_cost': 700, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 450, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 104, 'weight': 9}], 'freight': 500, 'duty_bp': 0, 'basis': 'value'}, [{'sku': 'A', 'freight': 338, 'duty': 0, 'landed': 2438, 'unit': 813}, {'sku': 'B', 'freight': 145, 'duty': 0, 'landed': 1045, 'unit': 523}, {'sku': 'C', 'freight': 17, 'duty': 0, 'landed': 121, 'unit': 121}]], ['remainder spread', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 100, 'weight': 1}, {'sku': 'C', 'qty': 1, 'unit_cost': 100, 'weight': 1}], 'freight': 116, 'duty_bp': 100, 'basis': 'weight'}, [{'sku': 'A', 'freight': 39, 'duty': 1, 'landed': 140, 'unit': 140}, {'sku': 'B', 'freight': 39, 'duty': 1, 'landed': 140, 'unit': 140}, {'sku': 'C', 'freight': 38, 'duty': 1, 'landed': 139, 'unit': 139}]], ['uneven remainders', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 10, 'weight': 1}, {'sku': 'B', 'qty': 1, 'unit_cost': 10, 'weight': 2}, {'sku': 'C', 'qty': 1, 'unit_cost': 10, 'weight': 4}], 'freight': 15, 'duty_bp': 0, 'basis': 'weight'}, [{'sku': 'A', 'freight': 2, 'duty': 0, 'landed': 12, 'unit': 12}, {'sku': 'B', 'freight': 4, 'duty': 0, 'landed': 14, 'unit': 14}, {'sku': 'C', 'freight': 9, 'duty': 0, 'landed': 19, 'unit': 19}]], ['zero weights', {'lines': [{'sku': 'A', 'qty': 2, 'unit_cost': 400, 'weight': 0}, {'sku': 'B', 'qty': 1, 'unit_cost': 200, 'weight': 0}], 'freight': 305, 'duty_bp': 500, 'basis': 'weight'}, [{'sku': 'A', 'freight': 244, 'duty': 40, 'landed': 1084, 'unit': 542}, {'sku': 'B', 'freight': 61, 'duty': 10, 'landed': 271, 'unit': 271}]], ['nothing to allocate', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 0, 'weight': 0}], 'freight': 250, 'duty_bp': 0, 'basis': 'weight'}, {'error': 'no allocation basis'}], ['half cent duty', {'lines': [{'sku': 'A', 'qty': 1, 'unit_cost': 150, 'weight': 1}, {'sku': 'B', 'qty': 2, 'unit_cost': 500, 'weight': 1}], 'freight': 0, 'duty_bp': 100, 'basis': 'value'}, [{'sku': 'A', 'freight': 0, 'duty': 2, 'landed': 152, 'unit': 152}, {'sku': 'B', 'freight': 0, 'duty': 10, 'landed': 1010, 'unit': 505}]], ['heavy duty', {'lines': [{'sku': 'A', 'qty': 4, 'unit_cost': 1250, 'weight': 5}, {'sku': 'B', 'qty': 3, 'unit_cost': 999, 'weight': 1}], 'freight': 2000, 'duty_bp': 1205, 'basis': 'weight'}, [{'sku': 'A', 'freight': 1739, 'duty': 603, 'landed': 7342, 'unit': 1836}, {'sku': 'B', 'freight': 261, 'duty': 361, 'landed': 3619, 'unit': 1206}]]]]
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 |
|---|---|---|---|
| weight basis | [{'duty': 75, 'freight': 834, 'landed': 3909, 'sku': 'A', 'unit': 391}, {'duty': 125, 'freight': 167, 'landed': 5292, 'sku': 'B', 'unit': 5292}] | [{'duty': 75, 'freight': 834, 'landed': 3909, 'sku': 'A', 'unit': 391}, {'duty': 125, 'freight': 167, 'landed': 5292, 'sku': 'B', 'unit': 5292}] | Passed |
| value basis | [{'duty': 0, 'freight': 339, 'landed': 2439, 'sku': 'A', 'unit': 813}, {'duty': 0, 'freight': 145, 'landed': 1045, 'sku': 'B', 'unit': 523}, {'duty': 0, 'freight': 16, 'landed': 116, 'sku': 'C', 'unit': 116}] | [{'duty': 0, 'freight': 339, 'landed': 2439, 'sku': 'A', 'unit': 813}, {'duty': 0, 'freight': 145, 'landed': 1045, 'sku': 'B', 'unit': 523}, {'duty': 0, 'freight': 16, 'landed': 116, 'sku': 'C', 'unit': 116}] | Passed |
| remainder spread | [{'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'A', 'unit': 136}, {'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'B', 'unit': 136}, {'duty': 1, 'freight': 34, 'landed': 135, 'sku': 'C', 'unit': 135}] | [{'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'A', 'unit': 136}, {'duty': 1, 'freight': 35, 'landed': 136, 'sku': 'B', 'unit': 136}, {'duty': 1, 'freight': 34, 'landed': 135, 'sku': 'C', 'unit': 135}] | Passed |
| uneven remainders | [{'duty': 0, 'freight': 2, 'landed': 12, 'sku': 'A', 'unit': 12}, {'duty': 0, 'freight': 3, 'landed': 13, 'sku': 'B', 'unit': 13}, {'duty': 0, 'freight': 6, 'landed': 16, 'sku': 'C', 'unit': 16}] | [{'duty': 0, 'freight': 2, 'landed': 12, 'sku': 'A', 'unit': 12}, {'duty': 0, 'freight': 3, 'landed': 13, 'sku': 'B', 'unit': 13}, {'duty': 0, 'freight': 6, 'landed': 16, 'sku': 'C', 'unit': 16}] | Passed |
| zero weights | [{'duty': 40, 'freight': 241, 'landed': 1081, 'sku': 'A', 'unit': 541}, {'duty': 10, 'freight': 60, 'landed': 270, 'sku': 'B', 'unit': 270}] | [{'duty': 40, 'freight': 241, 'landed': 1081, 'sku': 'A', 'unit': 541}, {'duty': 10, 'freight': 60, 'landed': 270, 'sku': 'B', 'unit': 270}] | Passed |
| nothing to allocate | {'error': 'no allocation basis'} | {'error': 'no allocation basis'} | Passed |
| half cent duty | [{'duty': 2, 'freight': 0, 'landed': 152, 'sku': 'A', 'unit': 152}, {'duty': 6, 'freight': 0, 'landed': 606, 'sku': 'B', 'unit': 303}] | [{'duty': 2, 'freight': 0, 'landed': 152, 'sku': 'A', 'unit': 152}, {'duty': 6, 'freight': 0, 'landed': 606, 'sku': 'B', 'unit': 303}] | Passed |
| heavy duty | [{'duty': 601, 'freight': 1739, 'landed': 7340, 'sku': 'A', 'unit': 1835}, {'duty': 360, 'freight': 261, 'landed': 3618, 'sku': 'B', 'unit': 1206}] | [{'duty': 601, 'freight': 1739, 'landed': 7340, 'sku': 'A', 'unit': 1835}, {'duty': 360, 'freight': 261, 'landed': 3618, 'sku': 'B', 'unit': 1206}] | Passed |
SHA-256 / f3aa231924f2db838a03a9ad659799839c656cf82913c571f03dfe78e707352e
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:41.084119+00:00.
Case digest / 61972f4e30aac6d414452025b42cb66fc4c3e21aef1fcfe3f404aa86d59539f5