{"abstract":"Exception reports list invalid codes in scan order.","category":"Warehouse slotting and bin packing","checks":8,"contract":"codes \"aisle-bay-level\" with decimal parts and optional surrounding whitespace. Valid aisles 1-40, levels 1-6. Canonical form \"AA-BB-L\" (two-digit aisle and bay). Duplicates collapse. Sequence: aisles ascending; odd aisles walk bays ascending, even aisles descending; level ascending within a bay. Invalid codes are returned as given, sorted, duplicates kept. Return [sequence, invalid].","evaluation_group":"w2-warehouse-slotting-pick-sequence","failed_approach":"De-duplicating invalid codes hides repeated bad scans that must be counted.","family":"w2-warehouse-slotting-pick-sequence-invalid-report","id":"FA-95246","implementations":{"attempt":{"sha256":"1ea87ac6aa5b0f56e67472082b72d693319f47658aecf5b9d57d770350a28196","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(codes):\n    seq = {}\n    bad = []\n    for code in codes:\n        parts = code.strip().split('-')\n        if len(parts) != 3 or not all(p.isdecimal() for p in parts):\n            bad.append(code)\n            continue\n        a, b, l = (int(p) for p in parts)\n        if not (1 <= a <= 40 and 1 <= l <= 6):\n            bad.append(code)\n            continue\n        seq[(a, b, l)] = '%02d-%02d-%d' % (a, b, l)\n    def walk(k):\n        a, b, l = k\n        return (a, b if a % 2 == 1 else -b, l)\n    return [[seq[k] for k in sorted(seq, key=walk)], sorted(set(bad))]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['range limits', [['40-1-6', '41-1-1', '1-1-7', '0-1-1']], [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['serpentine', [['2-01-1', '1-05-1', '2-09-1', '1-02-1']], [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []]], ['whitespace', [[' 1-1-1\\n', '\\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 6', [['\\t41-05-0\\n', ' 3-12-0 ', ' 02-05-7 ']], [[], ['\\t41-05-0\\n', ' 02-05-7 ', ' 3-12-0 ']]], ['generated mix 15', [['\\t41-12-2', ' 40-1-2 ', '\\t2-7-1\\n']], [['02-07-1', '40-01-2'], ['\\t41-12-2']]]], [['generated mix 7', [['\\t2-05-0', '\\t3-7-2\\n', 'X 0-7-0', ' 01-05-7', 'X 2-7-0 ', '\\t01-12-2', '1-12-7 ']], [['01-12-2', '03-07-2'], ['\\t2-05-0', ' 01-05-7', '1-12-7 ', 'X 0-7-0', 'X 2-7-0 ']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 10', [['\\t40 -05-1', '40-7-7', '0-1-0', '\\t03-05-1 ', '3-1-0', '3-1-7 ']], [['03-05-1'], ['\\t40 -05-1', '0-1-0', '3-1-0', '3-1-7 ', '40-7-7']]], ['generated mix 18', [['X03-1-1', 'X 40-05-2 ', '\\t01-7-1 ', '40-7-6\\n', '01-7-2 ']], [['01-07-1', '01-07-2', '40-07-6'], ['X 40-05-2 ', 'X03-1-1']]], ['generated mix 26', [[' 01-12-0 ', '\\t03-12-2 ', '\\t41-05-7', 'X2 -1-0 ', '3-1-2\\n', ' 03-12-7', '1-7-1\\n']], [['01-07-1', '03-01-2', '03-12-2'], ['\\t41-05-7', ' 01-12-0 ', ' 03-12-7', 'X2 -1-0 ']]]], [['generated mix 22', [[' 0-12-1', '3-12-0 ', 'X 01-7-1\\n', '\\t3-7-6 ', '3-12-1', ' 40-12-6 ', '\\t03-7-7']], [['03-07-6', '03-12-1', '40-12-6'], ['\\t03-7-7', ' 0-12-1', '3-12-0 ', 'X 01-7-1\\n']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['generated mix 21', [['2-12-2\\n', '\\t1-05-1\\n', '1-12-1', ' 3-05-2 ', '02-05-2', '1 -12-7\\n', '40-7-0 ']], [['01-05-1', '01-12-1', '02-12-2', '02-05-2', '03-05-2'], ['1 -12-7\\n', '40-7-0 ']]], ['generated mix 30', [['\\t41-05-0 ', '\\t3-1-1', '0-7-0 ', '\\t1-7-7 ', ' 02-1-0', ' 03 -12-1']], [['03-01-1'], ['\\t1-7-7 ', '\\t41-05-0 ', ' 02-1-0', ' 03 -12-1', '0-7-0 ']]]], [['generated mix 32', [['\\t41-7-2', 'X01-7-1', ' 0 -12-1\\n', ' 0-1-6\\n', 'X 3-1-7\\n']], [[], ['\\t41-7-2', ' 0 -12-1\\n', ' 0-1-6\\n', 'X 3-1-7\\n', 'X01-7-1']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 31', [['3-05-0 ', '2-05-1 ', '\\t03-7-2\\n', '3-05-6 ']], [['02-05-1', '03-05-6', '03-07-2'], ['3-05-0 ']]], ['generated mix 40', [['\\t41-05-7', '\\t1-12-6\\n', ' 1-1-6', 'X\\t0-7-7 ', '02-7-2\\n']], [['01-01-6', '01-12-6', '02-07-2'], ['\\t41-05-7', 'X\\t0-7-7 ']]], ['generated mix 48', [['40-7-0 ', '0-12-7\\n', '\\t2-7-7', ' 2-7-7\\n', '\\t41-05-6 ', '\\t3-05-1', '\\t3-7-0']], [['03-05-1'], ['\\t2-7-7', '\\t3-7-0', '\\t41-05-6 ', ' 2-7-7\\n', '0-12-7\\n', '40-7-0 ']]]], [['generated mix 45', [[' 02-1-2 ', '02-1-7', '\\t1-1-2', ' 01-1-6 ', ' 41-05-2\\n', '\\t40 -1-6']], [['01-01-2', '01-01-6', '02-01-2'], ['\\t40 -1-6', ' 41-05-2\\n', '02-1-7']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['serpentine', [['2-01-1', '1-05-1', '2-09-1', '1-02-1']], [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []]], ['whitespace', [[' 1-1-1\\n', '\\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['range limits', [['40-1-6', '41-1-1', '1-1-7', '0-1-1']], [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']]], ['generated mix 43', [[' 3-1-6\\n', '03-1-7', '1 -12-6', ' 41-7-6']], [['03-01-6'], [' 41-7-6', '03-1-7', '1 -12-6']]], ['generated mix 52', [['1-1-7', '1-05-6', '03-7-2', '\\t1-12-2 ', 'X\\t0-7-2 ', '40-1-7', '\\t1 -05-1 ']], [['01-05-6', '01-12-2', '03-07-2'], ['\\t1 -05-1 ', '1-1-7', '40-1-7', 'X\\t0-7-2 ']]]]]\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":"1d9755496423a8b0d0b8c2c8c5c9ff0e659f1f31875f27e2b9c39182495edb15","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(codes):\n    seq = {}\n    bad = []\n    for code in codes:\n        parts = code.strip().split('-')\n        if len(parts) != 3 or not all(p.isdecimal() for p in parts):\n            bad.append(code)\n            continue\n        a, b, l = (int(p) for p in parts)\n        if not (1 <= a <= 40 and 1 <= l <= 6):\n            bad.append(code)\n            continue\n        seq[(a, b, l)] = '%02d-%02d-%d' % (a, b, l)\n    def walk(k):\n        a, b, l = k\n        return (a, b if a % 2 == 1 else -b, l)\n    return [[seq[k] for k in sorted(seq, key=walk)], bad]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['range limits', [['40-1-6', '41-1-1', '1-1-7', '0-1-1']], [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['serpentine', [['2-01-1', '1-05-1', '2-09-1', '1-02-1']], [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []]], ['whitespace', [[' 1-1-1\\n', '\\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 6', [['\\t41-05-0\\n', ' 3-12-0 ', ' 02-05-7 ']], [[], ['\\t41-05-0\\n', ' 02-05-7 ', ' 3-12-0 ']]], ['generated mix 15', [['\\t41-12-2', ' 40-1-2 ', '\\t2-7-1\\n']], [['02-07-1', '40-01-2'], ['\\t41-12-2']]]], [['generated mix 7', [['\\t2-05-0', '\\t3-7-2\\n', 'X 0-7-0', ' 01-05-7', 'X 2-7-0 ', '\\t01-12-2', '1-12-7 ']], [['01-12-2', '03-07-2'], ['\\t2-05-0', ' 01-05-7', '1-12-7 ', 'X 0-7-0', 'X 2-7-0 ']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 10', [['\\t40 -05-1', '40-7-7', '0-1-0', '\\t03-05-1 ', '3-1-0', '3-1-7 ']], [['03-05-1'], ['\\t40 -05-1', '0-1-0', '3-1-0', '3-1-7 ', '40-7-7']]], ['generated mix 18', [['X03-1-1', 'X 40-05-2 ', '\\t01-7-1 ', '40-7-6\\n', '01-7-2 ']], [['01-07-1', '01-07-2', '40-07-6'], ['X 40-05-2 ', 'X03-1-1']]], ['generated mix 26', [[' 01-12-0 ', '\\t03-12-2 ', '\\t41-05-7', 'X2 -1-0 ', '3-1-2\\n', ' 03-12-7', '1-7-1\\n']], [['01-07-1', '03-01-2', '03-12-2'], ['\\t41-05-7', ' 01-12-0 ', ' 03-12-7', 'X2 -1-0 ']]]], [['generated mix 22', [[' 0-12-1', '3-12-0 ', 'X 01-7-1\\n', '\\t3-7-6 ', '3-12-1', ' 40-12-6 ', '\\t03-7-7']], [['03-07-6', '03-12-1', '40-12-6'], ['\\t03-7-7', ' 0-12-1', '3-12-0 ', 'X 01-7-1\\n']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['generated mix 21', [['2-12-2\\n', '\\t1-05-1\\n', '1-12-1', ' 3-05-2 ', '02-05-2', '1 -12-7\\n', '40-7-0 ']], [['01-05-1', '01-12-1', '02-12-2', '02-05-2', '03-05-2'], ['1 -12-7\\n', '40-7-0 ']]], ['generated mix 30', [['\\t41-05-0 ', '\\t3-1-1', '0-7-0 ', '\\t1-7-7 ', ' 02-1-0', ' 03 -12-1']], [['03-01-1'], ['\\t1-7-7 ', '\\t41-05-0 ', ' 02-1-0', ' 03 -12-1', '0-7-0 ']]]], [['generated mix 32', [['\\t41-7-2', 'X01-7-1', ' 0 -12-1\\n', ' 0-1-6\\n', 'X 3-1-7\\n']], [[], ['\\t41-7-2', ' 0 -12-1\\n', ' 0-1-6\\n', 'X 3-1-7\\n', 'X01-7-1']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 31', [['3-05-0 ', '2-05-1 ', '\\t03-7-2\\n', '3-05-6 ']], [['02-05-1', '03-05-6', '03-07-2'], ['3-05-0 ']]], ['generated mix 40', [['\\t41-05-7', '\\t1-12-6\\n', ' 1-1-6', 'X\\t0-7-7 ', '02-7-2\\n']], [['01-01-6', '01-12-6', '02-07-2'], ['\\t41-05-7', 'X\\t0-7-7 ']]], ['generated mix 48', [['40-7-0 ', '0-12-7\\n', '\\t2-7-7', ' 2-7-7\\n', '\\t41-05-6 ', '\\t3-05-1', '\\t3-7-0']], [['03-05-1'], ['\\t2-7-7', '\\t3-7-0', '\\t41-05-6 ', ' 2-7-7\\n', '0-12-7\\n', '40-7-0 ']]]], [['generated mix 45', [[' 02-1-2 ', '02-1-7', '\\t1-1-2', ' 01-1-6 ', ' 41-05-2\\n', '\\t40 -1-6']], [['01-01-2', '01-01-6', '02-01-2'], ['\\t40 -1-6', ' 41-05-2\\n', '02-1-7']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['serpentine', [['2-01-1', '1-05-1', '2-09-1', '1-02-1']], [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []]], ['whitespace', [[' 1-1-1\\n', '\\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['range limits', [['40-1-6', '41-1-1', '1-1-7', '0-1-1']], [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']]], ['generated mix 43', [[' 3-1-6\\n', '03-1-7', '1 -12-6', ' 41-7-6']], [['03-01-6'], [' 41-7-6', '03-1-7', '1 -12-6']]], ['generated mix 52', [['1-1-7', '1-05-6', '03-7-2', '\\t1-12-2 ', 'X\\t0-7-2 ', '40-1-7', '\\t1 -05-1 ']], [['01-05-6', '01-12-2', '03-07-2'], ['\\t1 -05-1 ', '1-1-7', '40-1-7', 'X\\t0-7-2 ']]]]]\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":"b1183b428f57e9bb3496bad01fb7aa5bbce6160449c97d18707be20c9f5a4a60","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(codes):\n    seq = {}\n    bad = []\n    for code in codes:\n        parts = code.strip().split('-')\n        if len(parts) != 3 or not all(p.isdecimal() for p in parts):\n            bad.append(code)\n            continue\n        a, b, l = (int(p) for p in parts)\n        if not (1 <= a <= 40 and 1 <= l <= 6):\n            bad.append(code)\n            continue\n        seq[(a, b, l)] = '%02d-%02d-%d' % (a, b, l)\n    def walk(k):\n        a, b, l = k\n        return (a, b if a % 2 == 1 else -b, l)\n    return [[seq[k] for k in sorted(seq, key=walk)], sorted(bad)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['range limits', [['40-1-6', '41-1-1', '1-1-7', '0-1-1']], [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['serpentine', [['2-01-1', '1-05-1', '2-09-1', '1-02-1']], [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []]], ['whitespace', [[' 1-1-1\\n', '\\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 6', [['\\t41-05-0\\n', ' 3-12-0 ', ' 02-05-7 ']], [[], ['\\t41-05-0\\n', ' 02-05-7 ', ' 3-12-0 ']]], ['generated mix 15', [['\\t41-12-2', ' 40-1-2 ', '\\t2-7-1\\n']], [['02-07-1', '40-01-2'], ['\\t41-12-2']]]], [['generated mix 7', [['\\t2-05-0', '\\t3-7-2\\n', 'X 0-7-0', ' 01-05-7', 'X 2-7-0 ', '\\t01-12-2', '1-12-7 ']], [['01-12-2', '03-07-2'], ['\\t2-05-0', ' 01-05-7', '1-12-7 ', 'X 0-7-0', 'X 2-7-0 ']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 10', [['\\t40 -05-1', '40-7-7', '0-1-0', '\\t03-05-1 ', '3-1-0', '3-1-7 ']], [['03-05-1'], ['\\t40 -05-1', '0-1-0', '3-1-0', '3-1-7 ', '40-7-7']]], ['generated mix 18', [['X03-1-1', 'X 40-05-2 ', '\\t01-7-1 ', '40-7-6\\n', '01-7-2 ']], [['01-07-1', '01-07-2', '40-07-6'], ['X 40-05-2 ', 'X03-1-1']]], ['generated mix 26', [[' 01-12-0 ', '\\t03-12-2 ', '\\t41-05-7', 'X2 -1-0 ', '3-1-2\\n', ' 03-12-7', '1-7-1\\n']], [['01-07-1', '03-01-2', '03-12-2'], ['\\t41-05-7', ' 01-12-0 ', ' 03-12-7', 'X2 -1-0 ']]]], [['generated mix 22', [[' 0-12-1', '3-12-0 ', 'X 01-7-1\\n', '\\t3-7-6 ', '3-12-1', ' 40-12-6 ', '\\t03-7-7']], [['03-07-6', '03-12-1', '40-12-6'], ['\\t03-7-7', ' 0-12-1', '3-12-0 ', 'X 01-7-1\\n']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['generated mix 21', [['2-12-2\\n', '\\t1-05-1\\n', '1-12-1', ' 3-05-2 ', '02-05-2', '1 -12-7\\n', '40-7-0 ']], [['01-05-1', '01-12-1', '02-12-2', '02-05-2', '03-05-2'], ['1 -12-7\\n', '40-7-0 ']]], ['generated mix 30', [['\\t41-05-0 ', '\\t3-1-1', '0-7-0 ', '\\t1-7-7 ', ' 02-1-0', ' 03 -12-1']], [['03-01-1'], ['\\t1-7-7 ', '\\t41-05-0 ', ' 02-1-0', ' 03 -12-1', '0-7-0 ']]]], [['generated mix 32', [['\\t41-7-2', 'X01-7-1', ' 0 -12-1\\n', ' 0-1-6\\n', 'X 3-1-7\\n']], [[], ['\\t41-7-2', ' 0 -12-1\\n', ' 0-1-6\\n', 'X 3-1-7\\n', 'X01-7-1']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['dedupe canonical', [['01-01-1', '1-1-1']], [['01-01-1'], []]], ['levels ascend', [['3-4-2', '3-4-1']], [['03-04-1', '03-04-2'], []]], ['generated mix 31', [['3-05-0 ', '2-05-1 ', '\\t03-7-2\\n', '3-05-6 ']], [['02-05-1', '03-05-6', '03-07-2'], ['3-05-0 ']]], ['generated mix 40', [['\\t41-05-7', '\\t1-12-6\\n', ' 1-1-6', 'X\\t0-7-7 ', '02-7-2\\n']], [['01-01-6', '01-12-6', '02-07-2'], ['\\t41-05-7', 'X\\t0-7-7 ']]], ['generated mix 48', [['40-7-0 ', '0-12-7\\n', '\\t2-7-7', ' 2-7-7\\n', '\\t41-05-6 ', '\\t3-05-1', '\\t3-7-0']], [['03-05-1'], ['\\t2-7-7', '\\t3-7-0', '\\t41-05-6 ', ' 2-7-7\\n', '0-12-7\\n', '40-7-0 ']]]], [['generated mix 45', [[' 02-1-2 ', '02-1-7', '\\t1-1-2', ' 01-1-6 ', ' 41-05-2\\n', '\\t40 -1-6']], [['01-01-2', '01-01-6', '02-01-2'], ['\\t40 -1-6', ' 41-05-2\\n', '02-1-7']]], ['generated mix 14', [['1-1-1 ', ' 1-1-7\\n', '\\t40-12-6', '\\t2-1-1', ' 1-1-7\\n', '40-05-2 ', '01-1-7 ']], [['01-01-1', '02-01-1', '40-12-6', '40-05-2'], [' 1-1-7\\n', ' 1-1-7\\n', '01-1-7 ']]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['serpentine', [['2-01-1', '1-05-1', '2-09-1', '1-02-1']], [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []]], ['whitespace', [[' 1-1-1\\n', '\\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['range limits', [['40-1-6', '41-1-1', '1-1-7', '0-1-1']], [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']]], ['generated mix 43', [[' 3-1-6\\n', '03-1-7', '1 -12-6', ' 41-7-6']], [['03-01-6'], [' 41-7-6', '03-1-7', '1 -12-6']]], ['generated mix 52', [['1-1-7', '1-05-6', '03-7-2', '\\t1-12-2 ', 'X\\t0-7-2 ', '40-1-7', '\\t1 -05-1 ']], [['01-05-6', '01-12-2', '03-07-2'], ['\\t1 -05-1 ', '1-1-7', '40-1-7', 'X\\t0-7-2 ']]]]]\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 code format and layout; no cross aisles or zone routing. 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-pick-sequence-invalid-report","generated_at":"2026-09-29T14:52:11.899319+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Pick paths are sequenced from location codes in a serpentine walk.","repair":"Return invalid codes sorted, keeping duplicates.","root_cause":"Invalid codes are returned in input order.","sha256":"d1e16c61ea3c7025bf7f1e9ee50b6789f4f67f7d32daccfa27de2f96538497ee","title":"Pick sequence: invalid list unsorted · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.297,"exit_code":1,"observations":[{"actual":[["40-01-6"],["0-1-1","1-1-7","41-1-1"]],"check":"range limits","expected":[["40-01-6"],["0-1-1","1-1-7","41-1-1"]],"passed":true},{"actual":[["01-01-1","02-01-1","40-12-6","40-05-2"],[" 1-1-7\n","01-1-7 "]],"check":"generated mix 14","expected":[["01-01-1","02-01-1","40-12-6","40-05-2"],[" 1-1-7\n"," 1-1-7\n","01-1-7 "]],"passed":false},{"actual":[["01-02-1","01-05-1","02-09-1","02-01-1"],[]],"check":"serpentine","expected":[["01-02-1","01-05-1","02-09-1","02-01-1"],[]],"passed":true},{"actual":[["01-01-1","01-02-1"],[]],"check":"whitespace","expected":[["01-01-1","01-02-1"],[]],"passed":true},{"actual":[[],["A","B"]],"check":"dup invalid kept","expected":[[],["A","B","B"]],"passed":false},{"actual":[["03-04-1","03-04-2"],[]],"check":"levels ascend","expected":[["03-04-1","03-04-2"],[]],"passed":true},{"actual":[[],["\t41-05-0\n"," 02-05-7 "," 3-12-0 "]],"check":"generated mix 6","expected":[[],["\t41-05-0\n"," 02-05-7 "," 3-12-0 "]],"passed":true},{"actual":[["02-07-1","40-01-2"],["\t41-12-2"]],"check":"generated mix 15","expected":[["02-07-1","40-01-2"],["\t41-12-2"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"range limits\", \"actual\": [[\"40-01-6\"], [\"0-1-1\", \"1-1-7\", \"41-1-1\"]], \"expected\": [[\"40-01-6\"], [\"0-1-1\", \"1-1-7\", \"41-1-1\"]], \"passed\": true}, {\"check\": \"generated mix 14\", \"actual\": [[\"01-01-1\", \"02-01-1\", \"40-12-6\", \"40-05-2\"], [\" 1-1-7\\n\", \"01-1-7 \"]], \"expected\": [[\"01-01-1\", \"02-01-1\", \"40-12-6\", \"40-05-2\"], [\" 1-1-7\\n\", \" 1-1-7\\n\", \"01-1-7 \"]], \"passed\": false}, {\"check\": \"serpentine\", \"actual\": [[\"01-02-1\", \"01-05-1\", \"02-09-1\", \"02-01-1\"], []], \"expected\": [[\"01-02-1\", \"01-05-1\", \"02-09-1\", \"02-01-1\"], []], \"passed\": true}, {\"check\": \"whitespace\", \"actual\": [[\"01-01-1\", \"01-02-1\"], []], \"expected\": [[\"01-01-1\", \"01-02-1\"], []], \"passed\": true}, {\"check\": \"dup invalid kept\", \"actual\": [[], [\"A\", \"B\"]], \"expected\": [[], [\"A\", \"B\", \"B\"]], \"passed\": false}, {\"check\": \"levels ascend\", \"actual\": [[\"03-04-1\", \"03-04-2\"], []], \"expected\": [[\"03-04-1\", \"03-04-2\"], []], \"passed\": true}, {\"check\": \"generated mix 6\", \"actual\": [[], [\"\\t41-05-0\\n\", \" 02-05-7 \", \" 3-12-0 \"]], \"expected\": [[], [\"\\t41-05-0\\n\", \" 02-05-7 \", \" 3-12-0 \"]], \"passed\": true}, {\"check\": \"generated mix 15\", \"actual\": [[\"02-07-1\", \"40-01-2\"], [\"\\t41-12-2\"]], \"expected\": [[\"02-07-1\", \"40-01-2\"], [\"\\t41-12-2\"]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.93,"exit_code":1,"observations":[{"actual":[["40-01-6"],["41-1-1","1-1-7","0-1-1"]],"check":"range limits","expected":[["40-01-6"],["0-1-1","1-1-7","41-1-1"]],"passed":false},{"actual":[["01-01-1","02-01-1","40-12-6","40-05-2"],[" 1-1-7\n"," 1-1-7\n","01-1-7 "]],"check":"generated mix 14","expected":[["01-01-1","02-01-1","40-12-6","40-05-2"],[" 1-1-7\n"," 1-1-7\n","01-1-7 "]],"passed":true},{"actual":[["01-02-1","01-05-1","02-09-1","02-01-1"],[]],"check":"serpentine","expected":[["01-02-1","01-05-1","02-09-1","02-01-1"],[]],"passed":true},{"actual":[["01-01-1","01-02-1"],[]],"check":"whitespace","expected":[["01-01-1","01-02-1"],[]],"passed":true},{"actual":[[],["B","A","B"]],"check":"dup invalid kept","expected":[[],["A","B","B"]],"passed":false},{"actual":[["03-04-1","03-04-2"],[]],"check":"levels ascend","expected":[["03-04-1","03-04-2"],[]],"passed":true},{"actual":[[],["\t41-05-0\n"," 3-12-0 "," 02-05-7 "]],"check":"generated mix 6","expected":[[],["\t41-05-0\n"," 02-05-7 "," 3-12-0 "]],"passed":false},{"actual":[["02-07-1","40-01-2"],["\t41-12-2"]],"check":"generated mix 15","expected":[["02-07-1","40-01-2"],["\t41-12-2"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"range limits\", \"actual\": [[\"40-01-6\"], [\"41-1-1\", \"1-1-7\", \"0-1-1\"]], \"expected\": [[\"40-01-6\"], [\"0-1-1\", \"1-1-7\", \"41-1-1\"]], \"passed\": false}, {\"check\": \"generated mix 14\", \"actual\": [[\"01-01-1\", \"02-01-1\", \"40-12-6\", \"40-05-2\"], [\" 1-1-7\\n\", \" 1-1-7\\n\", \"01-1-7 \"]], \"expected\": [[\"01-01-1\", \"02-01-1\", \"40-12-6\", \"40-05-2\"], [\" 1-1-7\\n\", \" 1-1-7\\n\", \"01-1-7 \"]], \"passed\": true}, {\"check\": \"serpentine\", \"actual\": [[\"01-02-1\", \"01-05-1\", \"02-09-1\", \"02-01-1\"], []], \"expected\": [[\"01-02-1\", \"01-05-1\", \"02-09-1\", \"02-01-1\"], []], \"passed\": true}, {\"check\": \"whitespace\", \"actual\": [[\"01-01-1\", \"01-02-1\"], []], \"expected\": [[\"01-01-1\", \"01-02-1\"], []], \"passed\": true}, {\"check\": \"dup invalid kept\", \"actual\": [[], [\"B\", \"A\", \"B\"]], \"expected\": [[], [\"A\", \"B\", \"B\"]], \"passed\": false}, {\"check\": \"levels ascend\", \"actual\": [[\"03-04-1\", \"03-04-2\"], []], \"expected\": [[\"03-04-1\", \"03-04-2\"], []], \"passed\": true}, {\"check\": \"generated mix 6\", \"actual\": [[], [\"\\t41-05-0\\n\", \" 3-12-0 \", \" 02-05-7 \"]], \"expected\": [[], [\"\\t41-05-0\\n\", \" 02-05-7 \", \" 3-12-0 \"]], \"passed\": false}, {\"check\": \"generated mix 15\", \"actual\": [[\"02-07-1\", \"40-01-2\"], [\"\\t41-12-2\"]], \"expected\": [[\"02-07-1\", \"40-01-2\"], [\"\\t41-12-2\"]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.257,"exit_code":0,"observations":[{"actual":[["40-01-6"],["0-1-1","1-1-7","41-1-1"]],"check":"range limits","expected":[["40-01-6"],["0-1-1","1-1-7","41-1-1"]],"passed":true},{"actual":[["01-01-1","02-01-1","40-12-6","40-05-2"],[" 1-1-7\n"," 1-1-7\n","01-1-7 "]],"check":"generated mix 14","expected":[["01-01-1","02-01-1","40-12-6","40-05-2"],[" 1-1-7\n"," 1-1-7\n","01-1-7 "]],"passed":true},{"actual":[["01-02-1","01-05-1","02-09-1","02-01-1"],[]],"check":"serpentine","expected":[["01-02-1","01-05-1","02-09-1","02-01-1"],[]],"passed":true},{"actual":[["01-01-1","01-02-1"],[]],"check":"whitespace","expected":[["01-01-1","01-02-1"],[]],"passed":true},{"actual":[[],["A","B","B"]],"check":"dup invalid kept","expected":[[],["A","B","B"]],"passed":true},{"actual":[["03-04-1","03-04-2"],[]],"check":"levels ascend","expected":[["03-04-1","03-04-2"],[]],"passed":true},{"actual":[[],["\t41-05-0\n"," 02-05-7 "," 3-12-0 "]],"check":"generated mix 6","expected":[[],["\t41-05-0\n"," 02-05-7 "," 3-12-0 "]],"passed":true},{"actual":[["02-07-1","40-01-2"],["\t41-12-2"]],"check":"generated mix 15","expected":[["02-07-1","40-01-2"],["\t41-12-2"]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"range limits\", \"actual\": [[\"40-01-6\"], [\"0-1-1\", \"1-1-7\", \"41-1-1\"]], \"expected\": [[\"40-01-6\"], [\"0-1-1\", \"1-1-7\", \"41-1-1\"]], \"passed\": true}, {\"check\": \"generated mix 14\", \"actual\": [[\"01-01-1\", \"02-01-1\", \"40-12-6\", \"40-05-2\"], [\" 1-1-7\\n\", \" 1-1-7\\n\", \"01-1-7 \"]], \"expected\": [[\"01-01-1\", \"02-01-1\", \"40-12-6\", \"40-05-2\"], [\" 1-1-7\\n\", \" 1-1-7\\n\", \"01-1-7 \"]], \"passed\": true}, {\"check\": \"serpentine\", \"actual\": [[\"01-02-1\", \"01-05-1\", \"02-09-1\", \"02-01-1\"], []], \"expected\": [[\"01-02-1\", \"01-05-1\", \"02-09-1\", \"02-01-1\"], []], \"passed\": true}, {\"check\": \"whitespace\", \"actual\": [[\"01-01-1\", \"01-02-1\"], []], \"expected\": [[\"01-01-1\", \"01-02-1\"], []], \"passed\": true}, {\"check\": \"dup invalid kept\", \"actual\": [[], [\"A\", \"B\", \"B\"]], \"expected\": [[], [\"A\", \"B\", \"B\"]], \"passed\": true}, {\"check\": \"levels ascend\", \"actual\": [[\"03-04-1\", \"03-04-2\"], []], \"expected\": [[\"03-04-1\", \"03-04-2\"], []], \"passed\": true}, {\"check\": \"generated mix 6\", \"actual\": [[], [\"\\t41-05-0\\n\", \" 02-05-7 \", \" 3-12-0 \"]], \"expected\": [[], [\"\\t41-05-0\\n\", \" 02-05-7 \", \" 3-12-0 \"]], \"passed\": true}, {\"check\": \"generated mix 15\", \"actual\": [[\"02-07-1\", \"40-01-2\"], [\"\\t41-12-2\"]], \"expected\": [[\"02-07-1\", \"40-01-2\"], [\"\\t41-12-2\"]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}