{"abstract":"Light multi-piece shipments are billed below the per-piece minimum.","category":"Shipping rate zone lookup","checks":8,"contract":"pieces lb; each piece rounds up to a whole lb and the shipment total is their sum. Qualifies when there are at least 2 pieces, total >= 200 lb and average piece weight >= 10 lb (total >= 10*n); otherwise [\"PARCEL\", total]. Charge = ceil(total * cents per cwt / 100) for zone (rates list zones 2-8), at least min_piece * pieces. Return [total, charge].","contract_signature":"pieces, zone, rates, min_piece","evaluation_group":"w2-shipping-zone-hundredweight","failed_approach":"Taking the minimum of the two caps the charge instead of flooring it.","family":"w2-shipping-zone-hundredweight-per-piece-minimum","id":"FA-95571","implementations":{"attempt":{"sha256":"490689cbaa0902008f1a5fbcd0f51964ba57cfe38ee5ce59086201de783747e3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(pieces, zone, rates, min_piece):\n    ws = [math.ceil(w) for w in pieces]\n    total = sum(ws)\n    n = len(ws)\n    if n < 2 or total < 200 or total < 10 * n:\n        return ['PARCEL', total]\n    rate = rates[zone - 2]\n    charge = -(-total * rate // 100)\n    return [total, min(charge, min_piece * n)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['minimum charge', [[100, 100], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 5000], [200, 10000]], ['threshold via rounding', [[99.5, 100], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [200, 8074]], ['per piece round', [[100.2, 100.2], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [202, 8155]], ['light average', [[150, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 200]], ['many one pound pieces', [[120, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 4, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], ['PARCEL', 210]], ['two exact', [[100, 100], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [200, 15110]], ['single piece', [[250], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 250]], ['generated mix 6', [[10, 10.4, 10.4], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 500], ['PARCEL', 32]]], [['generated mix 61', [[19.2, 9.2, 9.6, 9.2, 9.2, 9.2, 9.6, 9.2, 9.2, 9.2, 9.2, 9.2, 9.6, 9.6, 10.2, 10.2, 9.6, 10.2, 19.2, 10.2, 9.6, 9.2, 10.2, 9.2, 9.2], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], [275, 150000]], ['generated mix 2', [[40.9, 40.5, 50.5, 40.9, 40.5], 7, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 3000], [215, 15000]], ['light average', [[150, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 200]], ['average exactly 10', [[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], [200, 9024]], ['rounded pieces reach average', [[9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], [250, 14103]], ['per piece round', [[100.2, 100.2], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [202, 8155]], ['generated mix 8', [[11, 10.4], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 22]], ['generated mix 16', [[67.3, 67.3, 76.3], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 3000], [213, 9611]]], [['generated mix 38', [[10.4, 10, 10, 20, 11, 11, 10, 10, 11, 10.4, 20, 20, 11, 11, 11, 10, 20, 10, 10.4, 11], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [250, 30000]], ['generated mix 22', [[150, 160], 7, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [310, 21412]], ['many one pound pieces', [[120, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 4, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], ['PARCEL', 210]], ['two exact', [[100, 100], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [200, 15110]], ['threshold via rounding', [[99.5, 100], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [200, 8074]], ['light average', [[150, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 200]], ['generated mix 18', [[20, 11, 10, 10.4, 10, 10, 10, 10, 10.4, 10, 20, 11, 10, 11, 20, 10, 11, 10.4, 10.4, 10.4, 10, 20, 11, 10, 20], 6, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [310, 37500]], ['generated mix 27', [[11, 11, 1, 2, 1, 1, 2, 1.4, 1.4, 11, 2, 1.4, 11, 1.4, 2, 2, 1, 11, 2, 2, 2, 1.4, 1.4, 1, 2], 7, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], ['PARCEL', 90]]], [['generated mix 75', [[66.3, 67.3, 76.3, 66.3, 76.3, 67.3, 66.3, 66.3, 67.3, 66.3, 66.7, 66.7, 66.3, 67.3, 76.3, 76.3, 66.7, 66.7, 76.3, 66.7], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 3000], [1394, 60000]], ['generated mix 39', [[40.9, 40.9, 50.5, 40.5, 40.5, 40.5, 40.5, 40.5, 50.5, 40.9, 41.5, 50.5, 40.9, 40.9, 50.5, 40.5, 50.5, 41.5, 40.5, 50.5], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 3000], [882, 60000]], ['per piece round', [[100.2, 100.2], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [202, 8155]], ['single piece', [[250], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 250]], ['minimum charge', [[100, 100], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 5000], [200, 10000]], ['many one pound pieces', [[120, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 4, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], ['PARCEL', 210]], ['generated mix 29', [[151], 6, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], ['PARCEL', 151]], ['generated mix 37', [[1.4, 11, 11], 6, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 24]]], [['generated mix 44', [[110.2, 100.2, 100.2], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], [313, 18000]], ['generated mix 45', [[66.7, 66.3, 76.3, 67.3, 67.3], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [347, 14009]], ['light average', [[150, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 200]], ['average exactly 10', [[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], [200, 9024]], ['rounded pieces reach average', [[9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], [250, 14103]], ['per piece round', [[100.2, 100.2], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [202, 8155]], ['generated mix 40', [[66.7, 76.3], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 144]], ['generated mix 50', [[150, 150], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], [300, 13536]]]]\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":"5bae870b335430fb5a93dc88ff8bc3927f744a4cd92f913d90aab70af62b227b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(pieces, zone, rates, min_piece):\n    ws = [math.ceil(w) for w in pieces]\n    total = sum(ws)\n    n = len(ws)\n    if n < 2 or total < 200 or total < 10 * n:\n        return ['PARCEL', total]\n    rate = rates[zone - 2]\n    charge = -(-total * rate // 100)\n    return [total, max(charge, min_piece)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['minimum charge', [[100, 100], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 5000], [200, 10000]], ['threshold via rounding', [[99.5, 100], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [200, 8074]], ['per piece round', [[100.2, 100.2], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [202, 8155]], ['light average', [[150, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 200]], ['many one pound pieces', [[120, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 4, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], ['PARCEL', 210]], ['two exact', [[100, 100], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [200, 15110]], ['single piece', [[250], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 250]], ['generated mix 6', [[10, 10.4, 10.4], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 500], ['PARCEL', 32]]], [['generated mix 61', [[19.2, 9.2, 9.6, 9.2, 9.2, 9.2, 9.6, 9.2, 9.2, 9.2, 9.2, 9.2, 9.6, 9.6, 10.2, 10.2, 9.6, 10.2, 19.2, 10.2, 9.6, 9.2, 10.2, 9.2, 9.2], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], [275, 150000]], ['generated mix 2', [[40.9, 40.5, 50.5, 40.9, 40.5], 7, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 3000], [215, 15000]], ['light average', [[150, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 200]], ['average exactly 10', [[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], [200, 9024]], ['rounded pieces reach average', [[9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], [250, 14103]], ['per piece round', [[100.2, 100.2], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [202, 8155]], ['generated mix 8', [[11, 10.4], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 22]], ['generated mix 16', [[67.3, 67.3, 76.3], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 3000], [213, 9611]]], [['generated mix 38', [[10.4, 10, 10, 20, 11, 11, 10, 10, 11, 10.4, 20, 20, 11, 11, 11, 10, 20, 10, 10.4, 11], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [250, 30000]], ['generated mix 22', [[150, 160], 7, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [310, 21412]], ['many one pound pieces', [[120, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 4, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], ['PARCEL', 210]], ['two exact', [[100, 100], 8, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [200, 15110]], ['threshold via rounding', [[99.5, 100], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [200, 8074]], ['light average', [[150, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 200]], ['generated mix 18', [[20, 11, 10, 10.4, 10, 10, 10, 10, 10.4, 10, 20, 11, 10, 11, 20, 10, 11, 10.4, 10.4, 10.4, 10, 20, 11, 10, 20], 6, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [310, 37500]], ['generated mix 27', [[11, 11, 1, 2, 1, 1, 2, 1.4, 1.4, 11, 2, 1.4, 11, 1.4, 2, 2, 1, 11, 2, 2, 2, 1.4, 1.4, 1, 2], 7, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], ['PARCEL', 90]]], [['generated mix 75', [[66.3, 67.3, 76.3, 66.3, 76.3, 67.3, 66.3, 66.3, 67.3, 66.3, 66.7, 66.7, 66.3, 67.3, 76.3, 76.3, 66.7, 66.7, 76.3, 66.7], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 3000], [1394, 60000]], ['generated mix 39', [[40.9, 40.9, 50.5, 40.5, 40.5, 40.5, 40.5, 40.5, 50.5, 40.9, 41.5, 50.5, 40.9, 40.9, 50.5, 40.5, 50.5, 41.5, 40.5, 50.5], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 3000], [882, 60000]], ['per piece round', [[100.2, 100.2], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [202, 8155]], ['single piece', [[250], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 250]], ['minimum charge', [[100, 100], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 5000], [200, 10000]], ['many one pound pieces', [[120, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 4, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], ['PARCEL', 210]], ['generated mix 29', [[151], 6, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], ['PARCEL', 151]], ['generated mix 37', [[1.4, 11, 11], 6, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 24]]], [['generated mix 44', [[110.2, 100.2, 100.2], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], [313, 18000]], ['generated mix 45', [[66.7, 66.3, 76.3, 67.3, 67.3], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [347, 14009]], ['light average', [[150, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 200]], ['average exactly 10', [[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], [200, 9024]], ['rounded pieces reach average', [[9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2, 9.2], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 100], [250, 14103]], ['per piece round', [[100.2, 100.2], 2, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], [202, 8155]], ['generated mix 40', [[66.7, 76.3], 5, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 1500], ['PARCEL', 144]], ['generated mix 50', [[150, 150], 3, [4037, 4512, 5093, 5641, 6218, 6907, 7555], 6000], [300, 13536]]]]\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 qualification and rate rules. 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-shipping-zone-hundredweight-per-piece-minimum","generated_at":"2026-09-29T14:52:14.913563+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Hundredweight programs price qualifying multi-piece shipments by aggregate weight.","root_cause":"The minimum charge is applied once per shipment instead of per piece.","sha256":"fbf797a256848879f16b5b83bdf7a0891e1ca86331ff8338467fc3ce98658539","title":"Hundredweight: minimum not multiplied by pieces · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":42.958,"exit_code":1,"observations":[{"actual":[200,8074],"check":"minimum charge","expected":[200,10000],"passed":false},{"actual":[200,3000],"check":"threshold via rounding","expected":[200,8074],"passed":false},{"actual":[202,3000],"check":"per piece round","expected":[202,8155],"passed":false},{"actual":["PARCEL",200],"check":"light average","expected":["PARCEL",200],"passed":true},{"actual":["PARCEL",210],"check":"many one pound pieces","expected":["PARCEL",210],"passed":true},{"actual":[200,3000],"check":"two exact","expected":[200,15110],"passed":false},{"actual":["PARCEL",250],"check":"single piece","expected":["PARCEL",250],"passed":true},{"actual":["PARCEL",32],"check":"generated mix 6","expected":["PARCEL",32],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"minimum charge\", \"actual\": [200, 8074], \"expected\": [200, 10000], \"passed\": false}, {\"check\": \"threshold via rounding\", \"actual\": [200, 3000], \"expected\": [200, 8074], \"passed\": false}, {\"check\": \"per piece round\", \"actual\": [202, 3000], \"expected\": [202, 8155], \"passed\": false}, {\"check\": \"light average\", \"actual\": [\"PARCEL\", 200], \"expected\": [\"PARCEL\", 200], \"passed\": true}, {\"check\": \"many one pound pieces\", \"actual\": [\"PARCEL\", 210], \"expected\": [\"PARCEL\", 210], \"passed\": true}, {\"check\": \"two exact\", \"actual\": [200, 3000], \"expected\": [200, 15110], \"passed\": false}, {\"check\": \"single piece\", \"actual\": [\"PARCEL\", 250], \"expected\": [\"PARCEL\", 250], \"passed\": true}, {\"check\": \"generated mix 6\", \"actual\": [\"PARCEL\", 32], \"expected\": [\"PARCEL\", 32], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.968,"exit_code":1,"observations":[{"actual":[200,8074],"check":"minimum charge","expected":[200,10000],"passed":false},{"actual":[200,8074],"check":"threshold via rounding","expected":[200,8074],"passed":true},{"actual":[202,8155],"check":"per piece round","expected":[202,8155],"passed":true},{"actual":["PARCEL",200],"check":"light average","expected":["PARCEL",200],"passed":true},{"actual":["PARCEL",210],"check":"many one pound pieces","expected":["PARCEL",210],"passed":true},{"actual":[200,15110],"check":"two exact","expected":[200,15110],"passed":true},{"actual":["PARCEL",250],"check":"single piece","expected":["PARCEL",250],"passed":true},{"actual":["PARCEL",32],"check":"generated mix 6","expected":["PARCEL",32],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"minimum charge\", \"actual\": [200, 8074], \"expected\": [200, 10000], \"passed\": false}, {\"check\": \"threshold via rounding\", \"actual\": [200, 8074], \"expected\": [200, 8074], \"passed\": true}, {\"check\": \"per piece round\", \"actual\": [202, 8155], \"expected\": [202, 8155], \"passed\": true}, {\"check\": \"light average\", \"actual\": [\"PARCEL\", 200], \"expected\": [\"PARCEL\", 200], \"passed\": true}, {\"check\": \"many one pound pieces\", \"actual\": [\"PARCEL\", 210], \"expected\": [\"PARCEL\", 210], \"passed\": true}, {\"check\": \"two exact\", \"actual\": [200, 15110], \"expected\": [200, 15110], \"passed\": true}, {\"check\": \"single piece\", \"actual\": [\"PARCEL\", 250], \"expected\": [\"PARCEL\", 250], \"passed\": true}, {\"check\": \"generated mix 6\", \"actual\": [\"PARCEL\", 32], \"expected\": [\"PARCEL\", 32], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}