{"abstract":"Transferred value is short by a few cents on every partial draw and the residue sticks in the source.","category":"Inventory cost layering","checks":8,"contract":"Layers are [qty, total value]. A transfer of qty draws FIFO from src; a partial draw takes floor(t*value/qty) and leaves the residue in src; a layer is removed when its quantity reaches zero. Freight is split across the drawn pieces by quantity (floor), residual cents to the first piece, and each piece is appended to dst in draw order as the newest layers. qty<=0 or qty above src stock returns {\"error\"}. Return {src, dst}.","evaluation_group":"w2-inventory-cost-layering-warehouse-transfer-layers","failed_approach":"Rounding the draw up pulls residue out of the source earlier than the stipulated floor rule.","family":"w2-inventory-cost-layering-warehouse-transfer-layers-partial-draw-valuation","id":"FA-60191","implementations":{"attempt":{"sha256":"79143ab0648f3d692ead69be3619464eb15f22fe643a3999bbb78abb2666542a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    src = [list(l) for l in x['src']]\n    dst = [list(l) for l in x['dst']]\n    q = x['qty']\n    if q <= 0 or q > sum(l[0] for l in src):\n        return {'error': 'invalid quantity'}\n    pieces = []\n    while q > 0:\n        lq, lv = src[0]\n        t = min(q, lq)\n        val = lv if t == lq else (t * lv + lq - 1) // lq\n        pieces.append([t, val])\n        src[0] = [lq - t, lv - val]\n        if src[0][0] == 0:\n            src.pop(0)\n        q -= t\n    fr = x['freight']\n    tq = x['qty']\n    shares = [fr * p[0] // tq for p in pieces]\n    shares[0] += fr - sum(shares)\n    for p, s in zip(pieces, shares):\n        dst.append([p[0], p[1] + s])\n    return {'src': src, 'dst': dst}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 11}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 78]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 1}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 75]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 8}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 8]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 14}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 62], [3, 188]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 4, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 12]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 12]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 5, 'freight': 101}, {'src': [[3, 156]], 'dst': [[2, 90], [3, 161], [2, 144]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 12}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 79]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 2}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 76]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 9}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 9]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 15}, {'src': [[2, 120]], 'dst': [[1, 53], [1, 63], [3, 189]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 5, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 13]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 13]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 13}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 80]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 3}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 77]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 10}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 10]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 16}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 63], [3, 189]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 6, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 14]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 14]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 5, 'freight': 101}, {'src': [[3, 156]], 'dst': [[2, 90], [3, 161], [2, 144]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 14}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 81]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 4}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 78]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 11}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 11]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 17}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 63], [3, 190]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 7, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 15]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 15]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 15}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 82]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 5}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 79]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 12}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 12]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 18}, {'src': [[2, 120]], 'dst': [[1, 55], [1, 63], [3, 190]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 8, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 16]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 16]]}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"adad834d5c2fca71ea7ffafbcd4983738d71140e5f5e75b4082b9fb58f862579","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    src = [list(l) for l in x['src']]\n    dst = [list(l) for l in x['dst']]\n    q = x['qty']\n    if q <= 0 or q > sum(l[0] for l in src):\n        return {'error': 'invalid quantity'}\n    pieces = []\n    while q > 0:\n        lq, lv = src[0]\n        t = min(q, lq)\n        val = lv if t == lq else t * (lv // lq)\n        pieces.append([t, val])\n        src[0] = [lq - t, lv - val]\n        if src[0][0] == 0:\n            src.pop(0)\n        q -= t\n    fr = x['freight']\n    tq = x['qty']\n    shares = [fr * p[0] // tq for p in pieces]\n    shares[0] += fr - sum(shares)\n    for p, s in zip(pieces, shares):\n        dst.append([p[0], p[1] + s])\n    return {'src': src, 'dst': dst}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 11}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 78]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 1}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 75]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 8}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 8]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 14}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 62], [3, 188]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 4, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 12]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 12]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 5, 'freight': 101}, {'src': [[3, 156]], 'dst': [[2, 90], [3, 161], [2, 144]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 12}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 79]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 2}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 76]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 9}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 9]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 15}, {'src': [[2, 120]], 'dst': [[1, 53], [1, 63], [3, 189]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 5, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 13]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 13]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 13}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 80]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 3}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 77]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 10}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 10]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 16}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 63], [3, 189]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 6, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 14]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 14]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 5, 'freight': 101}, {'src': [[3, 156]], 'dst': [[2, 90], [3, 161], [2, 144]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 14}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 81]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 4}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 78]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 11}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 11]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 17}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 63], [3, 190]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 7, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 15]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 15]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 15}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 82]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 5}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 79]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 12}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 12]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 18}, {'src': [[2, 120]], 'dst': [[1, 55], [1, 63], [3, 190]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 8, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 16]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 16]]}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"e3b6414e5516d7721e932d9774191511b78f141475dcac3be8fba5675d01187e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    src = [list(l) for l in x['src']]\n    dst = [list(l) for l in x['dst']]\n    q = x['qty']\n    if q <= 0 or q > sum(l[0] for l in src):\n        return {'error': 'invalid quantity'}\n    pieces = []\n    while q > 0:\n        lq, lv = src[0]\n        t = min(q, lq)\n        val = lv if t == lq else t * lv // lq\n        pieces.append([t, val])\n        src[0] = [lq - t, lv - val]\n        if src[0][0] == 0:\n            src.pop(0)\n        q -= t\n    fr = x['freight']\n    tq = x['qty']\n    shares = [fr * p[0] // tq for p in pieces]\n    shares[0] += fr - sum(shares)\n    for p, s in zip(pieces, shares):\n        dst.append([p[0], p[1] + s])\n    return {'src': src, 'dst': dst}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 11}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 78]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 1}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 75]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 8}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 8]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 14}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 62], [3, 188]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 4, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 12]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 12]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 5, 'freight': 101}, {'src': [[3, 156]], 'dst': [[2, 90], [3, 161], [2, 144]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 12}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 79]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 2}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 76]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 9}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 9]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 15}, {'src': [[2, 120]], 'dst': [[1, 53], [1, 63], [3, 189]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 5, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 13]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 13]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 13}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 80]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 3}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 77]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 10}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 10]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 16}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 63], [3, 189]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 6, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 14]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 14]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 5, 'freight': 101}, {'src': [[3, 156]], 'dst': [[2, 90], [3, 161], [2, 144]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 14}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 81]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 4}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 78]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 11}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 11]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 17}, {'src': [[2, 120]], 'dst': [[1, 54], [1, 63], [3, 190]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 7, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 15]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 15]]}]], [['span layers', {'src': [[3, 100], [5, 260]], 'dst': [[2, 90]], 'qty': 6, 'freight': 101}, {'src': [[2, 104]], 'dst': [[2, 90], [3, 151], [3, 206]]}], ['partial residue', {'src': [[3, 101], [4, 77]], 'dst': [], 'qty': 2, 'freight': 15}, {'src': [[1, 34], [4, 77]], 'dst': [[2, 82]]}], ['odd layer value', {'src': [[4, 99], [1, 5]], 'dst': [], 'qty': 3, 'freight': 5}, {'src': [[1, 25], [1, 5]], 'dst': [[3, 79]]}], ['free goods layer', {'src': [[5, 0], [2, 40]], 'dst': [[1, 10]], 'qty': 2, 'freight': 12}, {'src': [[3, 0], [2, 40]], 'dst': [[1, 10], [2, 12]]}], ['uneven freight', {'src': [[1, 50], [1, 60], [5, 300]], 'dst': [], 'qty': 5, 'freight': 18}, {'src': [[2, 120]], 'dst': [[1, 55], [1, 63], [3, 190]]}], ['insufficient', {'src': [[2, 20]], 'dst': [], 'qty': 8, 'freight': 5}, {'error': 'invalid quantity'}], ['nothing requested', {'src': [[2, 20]], 'dst': [], 'qty': 0, 'freight': 5}, {'error': 'invalid quantity'}], ['exact all', {'src': [[2, 21], [1, 16]], 'dst': [[4, 44]], 'qty': 3, 'freight': 0}, {'src': [], 'dst': [[4, 44], [2, 21], [1, 16]]}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-inventory-cost-layering-warehouse-transfer-layers-partial-draw-valuation","generated_at":"2026-09-29T14:46:43.417983+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Inventory valuation and cost-of-goods decisions depend on this rule.","repair":"Take floor(t * layer value / layer qty) in one step.","root_cause":"The partial draw truncates the unit cost before extending it by the drawn quantity.","sha256":"893af99d01a908f5233499a82338151a615b1ad07581050af866e22b631e9f8a","title":"Inter-warehouse transfer of cost layers: partial draw valuation · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.012,"exit_code":1,"observations":[{"actual":{"dst":[[2,90],[3,151],[3,206]],"src":[[2,104]]},"check":"span layers","expected":{"dst":[[2,90],[3,151],[3,206]],"src":[[2,104]]},"passed":true},{"actual":{"dst":[[2,79]],"src":[[1,33],[4,77]]},"check":"partial residue","expected":{"dst":[[2,78]],"src":[[1,34],[4,77]]},"passed":false},{"actual":{"dst":[[3,76]],"src":[[1,24],[1,5]]},"check":"odd layer value","expected":{"dst":[[3,75]],"src":[[1,25],[1,5]]},"passed":false},{"actual":{"dst":[[1,10],[2,8]],"src":[[3,0],[2,40]]},"check":"free goods layer","expected":{"dst":[[1,10],[2,8]],"src":[[3,0],[2,40]]},"passed":true},{"actual":{"dst":[[1,54],[1,62],[3,188]],"src":[[2,120]]},"check":"uneven freight","expected":{"dst":[[1,54],[1,62],[3,188]],"src":[[2,120]]},"passed":true},{"actual":{"error":"invalid quantity"},"check":"insufficient","expected":{"error":"invalid quantity"},"passed":true},{"actual":{"error":"invalid quantity"},"check":"nothing requested","expected":{"error":"invalid quantity"},"passed":true},{"actual":{"dst":[[4,44],[2,21],[1,12]],"src":[]},"check":"exact all","expected":{"dst":[[4,44],[2,21],[1,12]],"src":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"span layers\", \"actual\": {\"src\": [[2, 104]], \"dst\": [[2, 90], [3, 151], [3, 206]]}, \"expected\": {\"src\": [[2, 104]], \"dst\": [[2, 90], [3, 151], [3, 206]]}, \"passed\": true}, {\"check\": \"partial residue\", \"actual\": {\"src\": [[1, 33], [4, 77]], \"dst\": [[2, 79]]}, \"expected\": {\"src\": [[1, 34], [4, 77]], \"dst\": [[2, 78]]}, \"passed\": false}, {\"check\": \"odd layer value\", \"actual\": {\"src\": [[1, 24], [1, 5]], \"dst\": [[3, 76]]}, \"expected\": {\"src\": [[1, 25], [1, 5]], \"dst\": [[3, 75]]}, \"passed\": false}, {\"check\": \"free goods layer\", \"actual\": {\"src\": [[3, 0], [2, 40]], \"dst\": [[1, 10], [2, 8]]}, \"expected\": {\"src\": [[3, 0], [2, 40]], \"dst\": [[1, 10], [2, 8]]}, \"passed\": true}, {\"check\": \"uneven freight\", \"actual\": {\"src\": [[2, 120]], \"dst\": [[1, 54], [1, 62], [3, 188]]}, \"expected\": {\"src\": [[2, 120]], \"dst\": [[1, 54], [1, 62], [3, 188]]}, \"passed\": true}, {\"check\": \"insufficient\", \"actual\": {\"error\": \"invalid quantity\"}, \"expected\": {\"error\": \"invalid quantity\"}, \"passed\": true}, {\"check\": \"nothing requested\", \"actual\": {\"error\": \"invalid quantity\"}, \"expected\": {\"error\": \"invalid quantity\"}, \"passed\": true}, {\"check\": \"exact all\", \"actual\": {\"src\": [], \"dst\": [[4, 44], [2, 21], [1, 12]]}, \"expected\": {\"src\": [], \"dst\": [[4, 44], [2, 21], [1, 12]]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.314,"exit_code":1,"observations":[{"actual":{"dst":[[2,90],[3,151],[3,206]],"src":[[2,104]]},"check":"span layers","expected":{"dst":[[2,90],[3,151],[3,206]],"src":[[2,104]]},"passed":true},{"actual":{"dst":[[2,77]],"src":[[1,35],[4,77]]},"check":"partial residue","expected":{"dst":[[2,78]],"src":[[1,34],[4,77]]},"passed":false},{"actual":{"dst":[[3,73]],"src":[[1,27],[1,5]]},"check":"odd layer value","expected":{"dst":[[3,75]],"src":[[1,25],[1,5]]},"passed":false},{"actual":{"dst":[[1,10],[2,8]],"src":[[3,0],[2,40]]},"check":"free goods layer","expected":{"dst":[[1,10],[2,8]],"src":[[3,0],[2,40]]},"passed":true},{"actual":{"dst":[[1,54],[1,62],[3,188]],"src":[[2,120]]},"check":"uneven freight","expected":{"dst":[[1,54],[1,62],[3,188]],"src":[[2,120]]},"passed":true},{"actual":{"error":"invalid quantity"},"check":"insufficient","expected":{"error":"invalid quantity"},"passed":true},{"actual":{"error":"invalid quantity"},"check":"nothing requested","expected":{"error":"invalid quantity"},"passed":true},{"actual":{"dst":[[4,44],[2,21],[1,12]],"src":[]},"check":"exact all","expected":{"dst":[[4,44],[2,21],[1,12]],"src":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"span layers\", \"actual\": {\"src\": [[2, 104]], \"dst\": [[2, 90], [3, 151], [3, 206]]}, \"expected\": {\"src\": [[2, 104]], \"dst\": [[2, 90], [3, 151], [3, 206]]}, \"passed\": true}, {\"check\": \"partial residue\", \"actual\": {\"src\": [[1, 35], [4, 77]], \"dst\": [[2, 77]]}, \"expected\": {\"src\": [[1, 34], [4, 77]], \"dst\": [[2, 78]]}, \"passed\": false}, {\"check\": \"odd layer value\", \"actual\": {\"src\": [[1, 27], [1, 5]], \"dst\": [[3, 73]]}, \"expected\": {\"src\": [[1, 25], [1, 5]], \"dst\": [[3, 75]]}, \"passed\": false}, {\"check\": \"free goods layer\", \"actual\": {\"src\": [[3, 0], [2, 40]], \"dst\": [[1, 10], [2, 8]]}, \"expected\": {\"src\": [[3, 0], [2, 40]], \"dst\": [[1, 10], [2, 8]]}, \"passed\": true}, {\"check\": \"uneven freight\", \"actual\": {\"src\": [[2, 120]], \"dst\": [[1, 54], [1, 62], [3, 188]]}, \"expected\": {\"src\": [[2, 120]], \"dst\": [[1, 54], [1, 62], [3, 188]]}, \"passed\": true}, {\"check\": \"insufficient\", \"actual\": {\"error\": \"invalid quantity\"}, \"expected\": {\"error\": \"invalid quantity\"}, \"passed\": true}, {\"check\": \"nothing requested\", \"actual\": {\"error\": \"invalid quantity\"}, \"expected\": {\"error\": \"invalid quantity\"}, \"passed\": true}, {\"check\": \"exact all\", \"actual\": {\"src\": [], \"dst\": [[4, 44], [2, 21], [1, 12]]}, \"expected\": {\"src\": [], \"dst\": [[4, 44], [2, 21], [1, 12]]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.273,"exit_code":0,"observations":[{"actual":{"dst":[[2,90],[3,151],[3,206]],"src":[[2,104]]},"check":"span layers","expected":{"dst":[[2,90],[3,151],[3,206]],"src":[[2,104]]},"passed":true},{"actual":{"dst":[[2,78]],"src":[[1,34],[4,77]]},"check":"partial residue","expected":{"dst":[[2,78]],"src":[[1,34],[4,77]]},"passed":true},{"actual":{"dst":[[3,75]],"src":[[1,25],[1,5]]},"check":"odd layer value","expected":{"dst":[[3,75]],"src":[[1,25],[1,5]]},"passed":true},{"actual":{"dst":[[1,10],[2,8]],"src":[[3,0],[2,40]]},"check":"free goods layer","expected":{"dst":[[1,10],[2,8]],"src":[[3,0],[2,40]]},"passed":true},{"actual":{"dst":[[1,54],[1,62],[3,188]],"src":[[2,120]]},"check":"uneven freight","expected":{"dst":[[1,54],[1,62],[3,188]],"src":[[2,120]]},"passed":true},{"actual":{"error":"invalid quantity"},"check":"insufficient","expected":{"error":"invalid quantity"},"passed":true},{"actual":{"error":"invalid quantity"},"check":"nothing requested","expected":{"error":"invalid quantity"},"passed":true},{"actual":{"dst":[[4,44],[2,21],[1,12]],"src":[]},"check":"exact all","expected":{"dst":[[4,44],[2,21],[1,12]],"src":[]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"span layers\", \"actual\": {\"src\": [[2, 104]], \"dst\": [[2, 90], [3, 151], [3, 206]]}, \"expected\": {\"src\": [[2, 104]], \"dst\": [[2, 90], [3, 151], [3, 206]]}, \"passed\": true}, {\"check\": \"partial residue\", \"actual\": {\"src\": [[1, 34], [4, 77]], \"dst\": [[2, 78]]}, \"expected\": {\"src\": [[1, 34], [4, 77]], \"dst\": [[2, 78]]}, \"passed\": true}, {\"check\": \"odd layer value\", \"actual\": {\"src\": [[1, 25], [1, 5]], \"dst\": [[3, 75]]}, \"expected\": {\"src\": [[1, 25], [1, 5]], \"dst\": [[3, 75]]}, \"passed\": true}, {\"check\": \"free goods layer\", \"actual\": {\"src\": [[3, 0], [2, 40]], \"dst\": [[1, 10], [2, 8]]}, \"expected\": {\"src\": [[3, 0], [2, 40]], \"dst\": [[1, 10], [2, 8]]}, \"passed\": true}, {\"check\": \"uneven freight\", \"actual\": {\"src\": [[2, 120]], \"dst\": [[1, 54], [1, 62], [3, 188]]}, \"expected\": {\"src\": [[2, 120]], \"dst\": [[1, 54], [1, 62], [3, 188]]}, \"passed\": true}, {\"check\": \"insufficient\", \"actual\": {\"error\": \"invalid quantity\"}, \"expected\": {\"error\": \"invalid quantity\"}, \"passed\": true}, {\"check\": \"nothing requested\", \"actual\": {\"error\": \"invalid quantity\"}, \"expected\": {\"error\": \"invalid quantity\"}, \"passed\": true}, {\"check\": \"exact all\", \"actual\": {\"src\": [], \"dst\": [[4, 44], [2, 21], [1, 12]]}, \"expected\": {\"src\": [], \"dst\": [[4, 44], [2, 21], [1, 12]]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}