{"abstract":"Tasks ask for pallets or inners at locations that cannot present them.","category":"Warehouse slotting and bin packing","checks":8,"contract":"qty eaches; pack [eaches per inner, per case, per pallet] with 0 meaning the level does not exist; allowed unit codes for the pick location. Greedy from largest allowed defined unit: PAL, CS, IP, EA. Return [[unit, count]] for nonzero counts in that order, then [\"UNPICKABLE\", eaches] if a remainder cannot be expressed.","evaluation_group":"w2-warehouse-slotting-uom-breakdown","failed_approach":"Assuming cases are always allowed still picks cases from each-only locations.","family":"w2-warehouse-slotting-uom-breakdown-allowed-units","id":"FA-95261","implementations":{"attempt":{"sha256":"d346a04c47e0d42e743e1b5f37fc318f88302d07bbbec68cb677f2820ca06c43","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(qty, pack, allowed):\n    levels = [('PAL', pack[2]), ('CS', pack[1]), ('IP', pack[0]), ('EA', 1)]\n    rem = qty\n    out = []\n    for unit, size in levels:\n        if size <= 0 or (unit not in allowed and unit != 'CS'):\n            continue\n        n = rem // size\n        if n:\n            out.append([unit, n])\n            rem -= n * size\n    if rem:\n        out.append(['UNPICKABLE', rem])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['pallet not allowed', [500, [6, 24, 240], ['CS', 'EA']], [['CS', 20], ['EA', 20]]], ['case and each', [50, [6, 24, 0], ['CS', 'EA']], [['CS', 2], ['EA', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['generated mix 8', [1000, [0, 48, 0], ['CS', 'IP']], [['CS', 20], ['UNPICKABLE', 40]]]], [['generated mix 9', [250, [6, 48, 480], ['PAL', 'CS']], [['CS', 5], ['UNPICKABLE', 10]]], ['generated mix 31', [500, [0, 48, 960], ['EA']], [['EA', 500]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['generated mix 10', [13, [6, 12, 0], ['PAL', 'CS', 'IP', 'EA']], [['CS', 1], ['EA', 1]]], ['generated mix 18', [50, [0, 24, 240], ['CS']], [['CS', 2], ['UNPICKABLE', 2]]]], [['generated mix 24', [50, [4, 12, 0], ['IP', 'EA']], [['IP', 12], ['EA', 2]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['generated mix 20', [0, [6, 12, 0], ['PAL', 'CS', 'IP']], []], ['generated mix 29', [500, [4, 12, 0], ['CS', 'IP', 'EA']], [['CS', 41], ['IP', 2]]], ['generated mix 37', [500, [0, 48, 960], ['CS', 'EA']], [['CS', 10], ['EA', 20]]]], [['generated mix 49', [24, [0, 48, 0], ['PAL', 'CS', 'IP']], [['UNPICKABLE', 24]]], ['generated mix 30', [13, [4, 12, 240], ['PAL', 'IP', 'EA']], [['IP', 3], ['EA', 1]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['pallet not allowed', [500, [6, 24, 240], ['CS', 'EA']], [['CS', 20], ['EA', 20]]], ['case and each', [50, [6, 24, 0], ['CS', 'EA']], [['CS', 2], ['EA', 2]]], ['generated mix 32', [25, [4, 24, 240], ['PAL', 'CS', 'EA']], [['CS', 1], ['EA', 1]]], ['generated mix 40', [3, [4, 48, 480], ['IP']], [['UNPICKABLE', 3]]]], [['generated mix 67', [5, [4, 24, 0], ['PAL', 'CS', 'IP']], [['IP', 1], ['UNPICKABLE', 1]]], ['generated mix 72', [25, [4, 12, 120], ['PAL', 'EA']], [['EA', 25]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['generated mix 42', [120, [0, 12, 120], ['PAL', 'IP', 'EA']], [['PAL', 1]]], ['generated mix 50', [120, [6, 24, 0], ['PAL', 'CS', 'EA']], [['CS', 5]]]]]\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":"9b72d30b497746970f2b5e62547156557ecc2312266e8f2b49694a7754da6f14","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(qty, pack, allowed):\n    levels = [('PAL', pack[2]), ('CS', pack[1]), ('IP', pack[0]), ('EA', 1)]\n    rem = qty\n    out = []\n    for unit, size in levels:\n        if size <= 0:\n            continue\n        n = rem // size\n        if n:\n            out.append([unit, n])\n            rem -= n * size\n    if rem:\n        out.append(['UNPICKABLE', rem])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['pallet not allowed', [500, [6, 24, 240], ['CS', 'EA']], [['CS', 20], ['EA', 20]]], ['case and each', [50, [6, 24, 0], ['CS', 'EA']], [['CS', 2], ['EA', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['generated mix 8', [1000, [0, 48, 0], ['CS', 'IP']], [['CS', 20], ['UNPICKABLE', 40]]]], [['generated mix 9', [250, [6, 48, 480], ['PAL', 'CS']], [['CS', 5], ['UNPICKABLE', 10]]], ['generated mix 31', [500, [0, 48, 960], ['EA']], [['EA', 500]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['generated mix 10', [13, [6, 12, 0], ['PAL', 'CS', 'IP', 'EA']], [['CS', 1], ['EA', 1]]], ['generated mix 18', [50, [0, 24, 240], ['CS']], [['CS', 2], ['UNPICKABLE', 2]]]], [['generated mix 24', [50, [4, 12, 0], ['IP', 'EA']], [['IP', 12], ['EA', 2]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['generated mix 20', [0, [6, 12, 0], ['PAL', 'CS', 'IP']], []], ['generated mix 29', [500, [4, 12, 0], ['CS', 'IP', 'EA']], [['CS', 41], ['IP', 2]]], ['generated mix 37', [500, [0, 48, 960], ['CS', 'EA']], [['CS', 10], ['EA', 20]]]], [['generated mix 49', [24, [0, 48, 0], ['PAL', 'CS', 'IP']], [['UNPICKABLE', 24]]], ['generated mix 30', [13, [4, 12, 240], ['PAL', 'IP', 'EA']], [['IP', 3], ['EA', 1]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['pallet not allowed', [500, [6, 24, 240], ['CS', 'EA']], [['CS', 20], ['EA', 20]]], ['case and each', [50, [6, 24, 0], ['CS', 'EA']], [['CS', 2], ['EA', 2]]], ['generated mix 32', [25, [4, 24, 240], ['PAL', 'CS', 'EA']], [['CS', 1], ['EA', 1]]], ['generated mix 40', [3, [4, 48, 480], ['IP']], [['UNPICKABLE', 3]]]], [['generated mix 67', [5, [4, 24, 0], ['PAL', 'CS', 'IP']], [['IP', 1], ['UNPICKABLE', 1]]], ['generated mix 72', [25, [4, 12, 120], ['PAL', 'EA']], [['EA', 25]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['generated mix 42', [120, [0, 12, 120], ['PAL', 'IP', 'EA']], [['PAL', 1]]], ['generated mix 50', [120, [6, 24, 0], ['PAL', 'CS', 'EA']], [['CS', 5]]]]]\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":"630b1aab4ff2d1cc5854297729ab487a8ad93b0183e0f5c977e1abcd514624a0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(qty, pack, allowed):\n    levels = [('PAL', pack[2]), ('CS', pack[1]), ('IP', pack[0]), ('EA', 1)]\n    rem = qty\n    out = []\n    for unit, size in levels:\n        if unit not in allowed or size <= 0:\n            continue\n        n = rem // size\n        if n:\n            out.append([unit, n])\n            rem -= n * size\n    if rem:\n        out.append(['UNPICKABLE', rem])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['pallet not allowed', [500, [6, 24, 240], ['CS', 'EA']], [['CS', 20], ['EA', 20]]], ['case and each', [50, [6, 24, 0], ['CS', 'EA']], [['CS', 2], ['EA', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['generated mix 8', [1000, [0, 48, 0], ['CS', 'IP']], [['CS', 20], ['UNPICKABLE', 40]]]], [['generated mix 9', [250, [6, 48, 480], ['PAL', 'CS']], [['CS', 5], ['UNPICKABLE', 10]]], ['generated mix 31', [500, [0, 48, 960], ['EA']], [['EA', 500]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['generated mix 10', [13, [6, 12, 0], ['PAL', 'CS', 'IP', 'EA']], [['CS', 1], ['EA', 1]]], ['generated mix 18', [50, [0, 24, 240], ['CS']], [['CS', 2], ['UNPICKABLE', 2]]]], [['generated mix 24', [50, [4, 12, 0], ['IP', 'EA']], [['IP', 12], ['EA', 2]]], ['undefined inner', [13, [0, 12, 0], ['IP', 'EA']], [['EA', 13]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['generated mix 20', [0, [6, 12, 0], ['PAL', 'CS', 'IP']], []], ['generated mix 29', [500, [4, 12, 0], ['CS', 'IP', 'EA']], [['CS', 41], ['IP', 2]]], ['generated mix 37', [500, [0, 48, 960], ['CS', 'EA']], [['CS', 10], ['EA', 20]]]], [['generated mix 49', [24, [0, 48, 0], ['PAL', 'CS', 'IP']], [['UNPICKABLE', 24]]], ['generated mix 30', [13, [4, 12, 240], ['PAL', 'IP', 'EA']], [['IP', 3], ['EA', 1]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['pallet not allowed', [500, [6, 24, 240], ['CS', 'EA']], [['CS', 20], ['EA', 20]]], ['case and each', [50, [6, 24, 0], ['CS', 'EA']], [['CS', 2], ['EA', 2]]], ['generated mix 32', [25, [4, 24, 240], ['PAL', 'CS', 'EA']], [['CS', 1], ['EA', 1]]], ['generated mix 40', [3, [4, 48, 480], ['IP']], [['UNPICKABLE', 3]]]], [['generated mix 67', [5, [4, 24, 0], ['PAL', 'CS', 'IP']], [['IP', 1], ['UNPICKABLE', 1]]], ['generated mix 72', [25, [4, 12, 120], ['PAL', 'EA']], [['EA', 25]]], ['inner only', [13, [4, 12, 0], ['IP']], [['IP', 3], ['UNPICKABLE', 1]]], ['full breakdown', [251, [6, 24, 240], ['PAL', 'CS', 'IP', 'EA']], [['PAL', 1], ['IP', 1], ['EA', 5]]], ['no each picking', [50, [6, 24, 0], ['CS', 'IP']], [['CS', 2], ['UNPICKABLE', 2]]], ['zero qty', [0, [6, 24, 240], ['EA']], []], ['generated mix 42', [120, [0, 12, 120], ['PAL', 'IP', 'EA']], [['PAL', 1]]], ['generated mix 50', [120, [6, 24, 0], ['PAL', 'CS', 'EA']], [['CS', 5]]]]]\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":"Greedy stipulated conversion with integer pack sizes. 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-warehouse-slotting-uom-breakdown-allowed-units","generated_at":"2026-09-29T14:52:12.062117+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Pick tasks are expressed in the largest unit a location can present.","repair":"Skip units not allowed at the pick location.","root_cause":"The location allowed-unit list is ignored.","sha256":"4ea14c57f29eac69b795a8afecbbf8697bd44c5f556af9e15d0d8e63db26f562","title":"UOM breakdown: disallowed units picked · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.957,"exit_code":1,"observations":[{"actual":[["CS",2],["UNPICKABLE",2]],"check":"no each picking","expected":[["CS",2],["UNPICKABLE",2]],"passed":true},{"actual":[["CS",1],["UNPICKABLE",1]],"check":"inner only","expected":[["IP",3],["UNPICKABLE",1]],"passed":false},{"actual":[["PAL",1],["IP",1],["EA",5]],"check":"full breakdown","expected":[["PAL",1],["IP",1],["EA",5]],"passed":true},{"actual":[["CS",1],["EA",1]],"check":"undefined inner","expected":[["EA",13]],"passed":false},{"actual":[["CS",20],["EA",20]],"check":"pallet not allowed","expected":[["CS",20],["EA",20]],"passed":true},{"actual":[["CS",2],["EA",2]],"check":"case and each","expected":[["CS",2],["EA",2]],"passed":true},{"actual":[],"check":"zero qty","expected":[],"passed":true},{"actual":[["CS",20],["UNPICKABLE",40]],"check":"generated mix 8","expected":[["CS",20],["UNPICKABLE",40]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"no each picking\", \"actual\": [[\"CS\", 2], [\"UNPICKABLE\", 2]], \"expected\": [[\"CS\", 2], [\"UNPICKABLE\", 2]], \"passed\": true}, {\"check\": \"inner only\", \"actual\": [[\"CS\", 1], [\"UNPICKABLE\", 1]], \"expected\": [[\"IP\", 3], [\"UNPICKABLE\", 1]], \"passed\": false}, {\"check\": \"full breakdown\", \"actual\": [[\"PAL\", 1], [\"IP\", 1], [\"EA\", 5]], \"expected\": [[\"PAL\", 1], [\"IP\", 1], [\"EA\", 5]], \"passed\": true}, {\"check\": \"undefined inner\", \"actual\": [[\"CS\", 1], [\"EA\", 1]], \"expected\": [[\"EA\", 13]], \"passed\": false}, {\"check\": \"pallet not allowed\", \"actual\": [[\"CS\", 20], [\"EA\", 20]], \"expected\": [[\"CS\", 20], [\"EA\", 20]], \"passed\": true}, {\"check\": \"case and each\", \"actual\": [[\"CS\", 2], [\"EA\", 2]], \"expected\": [[\"CS\", 2], [\"EA\", 2]], \"passed\": true}, {\"check\": \"zero qty\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"generated mix 8\", \"actual\": [[\"CS\", 20], [\"UNPICKABLE\", 40]], \"expected\": [[\"CS\", 20], [\"UNPICKABLE\", 40]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.98,"exit_code":1,"observations":[{"actual":[["CS",2],["EA",2]],"check":"no each picking","expected":[["CS",2],["UNPICKABLE",2]],"passed":false},{"actual":[["CS",1],["EA",1]],"check":"inner only","expected":[["IP",3],["UNPICKABLE",1]],"passed":false},{"actual":[["PAL",1],["IP",1],["EA",5]],"check":"full breakdown","expected":[["PAL",1],["IP",1],["EA",5]],"passed":true},{"actual":[["CS",1],["EA",1]],"check":"undefined inner","expected":[["EA",13]],"passed":false},{"actual":[["PAL",2],["IP",3],["EA",2]],"check":"pallet not allowed","expected":[["CS",20],["EA",20]],"passed":false},{"actual":[["CS",2],["EA",2]],"check":"case and each","expected":[["CS",2],["EA",2]],"passed":true},{"actual":[],"check":"zero qty","expected":[],"passed":true},{"actual":[["CS",20],["EA",40]],"check":"generated mix 8","expected":[["CS",20],["UNPICKABLE",40]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"no each picking\", \"actual\": [[\"CS\", 2], [\"EA\", 2]], \"expected\": [[\"CS\", 2], [\"UNPICKABLE\", 2]], \"passed\": false}, {\"check\": \"inner only\", \"actual\": [[\"CS\", 1], [\"EA\", 1]], \"expected\": [[\"IP\", 3], [\"UNPICKABLE\", 1]], \"passed\": false}, {\"check\": \"full breakdown\", \"actual\": [[\"PAL\", 1], [\"IP\", 1], [\"EA\", 5]], \"expected\": [[\"PAL\", 1], [\"IP\", 1], [\"EA\", 5]], \"passed\": true}, {\"check\": \"undefined inner\", \"actual\": [[\"CS\", 1], [\"EA\", 1]], \"expected\": [[\"EA\", 13]], \"passed\": false}, {\"check\": \"pallet not allowed\", \"actual\": [[\"PAL\", 2], [\"IP\", 3], [\"EA\", 2]], \"expected\": [[\"CS\", 20], [\"EA\", 20]], \"passed\": false}, {\"check\": \"case and each\", \"actual\": [[\"CS\", 2], [\"EA\", 2]], \"expected\": [[\"CS\", 2], [\"EA\", 2]], \"passed\": true}, {\"check\": \"zero qty\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"generated mix 8\", \"actual\": [[\"CS\", 20], [\"EA\", 40]], \"expected\": [[\"CS\", 20], [\"UNPICKABLE\", 40]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.623,"exit_code":0,"observations":[{"actual":[["CS",2],["UNPICKABLE",2]],"check":"no each picking","expected":[["CS",2],["UNPICKABLE",2]],"passed":true},{"actual":[["IP",3],["UNPICKABLE",1]],"check":"inner only","expected":[["IP",3],["UNPICKABLE",1]],"passed":true},{"actual":[["PAL",1],["IP",1],["EA",5]],"check":"full breakdown","expected":[["PAL",1],["IP",1],["EA",5]],"passed":true},{"actual":[["EA",13]],"check":"undefined inner","expected":[["EA",13]],"passed":true},{"actual":[["CS",20],["EA",20]],"check":"pallet not allowed","expected":[["CS",20],["EA",20]],"passed":true},{"actual":[["CS",2],["EA",2]],"check":"case and each","expected":[["CS",2],["EA",2]],"passed":true},{"actual":[],"check":"zero qty","expected":[],"passed":true},{"actual":[["CS",20],["UNPICKABLE",40]],"check":"generated mix 8","expected":[["CS",20],["UNPICKABLE",40]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"no each picking\", \"actual\": [[\"CS\", 2], [\"UNPICKABLE\", 2]], \"expected\": [[\"CS\", 2], [\"UNPICKABLE\", 2]], \"passed\": true}, {\"check\": \"inner only\", \"actual\": [[\"IP\", 3], [\"UNPICKABLE\", 1]], \"expected\": [[\"IP\", 3], [\"UNPICKABLE\", 1]], \"passed\": true}, {\"check\": \"full breakdown\", \"actual\": [[\"PAL\", 1], [\"IP\", 1], [\"EA\", 5]], \"expected\": [[\"PAL\", 1], [\"IP\", 1], [\"EA\", 5]], \"passed\": true}, {\"check\": \"undefined inner\", \"actual\": [[\"EA\", 13]], \"expected\": [[\"EA\", 13]], \"passed\": true}, {\"check\": \"pallet not allowed\", \"actual\": [[\"CS\", 20], [\"EA\", 20]], \"expected\": [[\"CS\", 20], [\"EA\", 20]], \"passed\": true}, {\"check\": \"case and each\", \"actual\": [[\"CS\", 2], [\"EA\", 2]], \"expected\": [[\"CS\", 2], [\"EA\", 2]], \"passed\": true}, {\"check\": \"zero qty\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"generated mix 8\", \"actual\": [[\"CS\", 20], [\"UNPICKABLE\", 40]], \"expected\": [[\"CS\", 20], [\"UNPICKABLE\", 40]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}