FA-95236 / Warehouse slotting and bin packing / Open access
Pick sequence: padded codes rejected · case 01
Scanner input with trailing newline or leading tab is reported invalid.
ROOT CAUSE
Surrounding whitespace is not trimmed before splitting.
VERIFIED REPAIR
Strip surrounding whitespace before parsing.
Unsuccessful approach: Deleting spaces everywhere misses tabs and newlines and accepts codes with embedded spaces.
Case 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].
Why this case matters
Pick paths are sequenced from location codes in a serpentine walk.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(codes):
seq = {}
bad = []
for code in codes:
parts = code.split('-')
if len(parts) != 3 or not all(p.isdecimal() for p in parts):
bad.append(code)
continue
a, b, l = (int(p) for p in parts)
if not (1 <= a <= 40 and 1 <= l <= 6):
bad.append(code)
continue
seq[(a, b, l)] = '%02d-%02d-%d' % (a, b, l)
def walk(k):
a, b, l = k
return (a, b if a % 2 == 1 else -b, l)
return [[seq[k] for k in sorted(seq, key=walk)], sorted(bad)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['whitespace', [[' 1-1-1\n', '\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['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'], []]], ['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']]], ['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'], []]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['generated mix 8', [[' 3-05-2\n', '\t3-7-6\n', '03-05-1', '02-05-7\n']], [['03-05-1', '03-05-2', '03-07-6'], ['02-05-7\n']]]], [['generated mix 11', [['41-7-6', ' 1-12-1', ' 2-7-1', ' 0-1-7\n', '41-05-1\n', '\t41-05-6\n', '\t41-05-2 ']], [['01-12-1', '02-07-1'], ['\t41-05-2 ', '\t41-05-6\n', ' 0-1-7\n', '41-05-1\n', '41-7-6']]], ['generated mix 9', [['2-7-1', '2-1-2', '1-12-2\n']], [['01-12-2', '02-07-1', '02-01-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']]], ['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'], []]], ['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 19', [['\t03-05-1', ' 03-7-7 ', 'X2-7-7 ', '41-05-7']], [['03-05-1'], [' 03-7-7 ', '41-05-7', 'X2-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 16', [['X 41-1-0', '41-12-6\n', '\t3-1-1', ' 02-12-0\n', '40-05-6', '3-12-6\n', ' 02-1-2']], [['02-01-2', '03-01-1', '03-12-6', '40-05-6'], [' 02-12-0\n', '41-12-6\n', 'X 41-1-0']]], ['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 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 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 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']]], ['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']]], ['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 33', [[' 01-1-2\n', ' 1-05-1 ', '\t01-12-7\n', ' 41-7-7 ', ' 41-1-6\n']], [['01-01-2', '01-05-1'], ['\t01-12-7\n', ' 41-1-6\n', ' 41-7-7 ']]], ['generated mix 41', [[' 2-12-1 ', '40-7-1\n', '\t03-1-2\n', '\t40-1-6\n', '01-7-6', '\t1-7-0\n']], [['01-07-6', '02-12-1', '03-01-2', '40-07-1', '40-01-6'], ['\t1-7-0\n']]]], [['generated mix 35', [['41-12-1', '01-7-1\n']], [['01-07-1'], ['41-12-1']]], ['generated mix 27', [['40-7-1', '03-05-6\n', '\t1 -12-6', '\t2-7-7 ', 'X\t2-05-0']], [['03-05-6', '40-07-1'], ['\t1 -12-6', '\t2-7-7 ', 'X\t2-05-0']]], ['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 44', [['\t3 -12-2\n', ' 3-1-7', ' 40-7-6\n']], [['40-07-6'], ['\t3 -12-2\n', ' 3-1-7']]], ['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 ']]]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| whitespace | [[], ['\t1-2-1', ' 1-1-1\n']] | [['01-01-1', '01-02-1'], []] | Failed |
| inner space invalid | [['01-01-1'], ['1 -1-1']] | [['01-01-1'], ['1 -1-1']] | Passed |
| serpentine | [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []] | [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []] | Passed |
| range limits | [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']] | [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']] | Passed |
| dedupe canonical | [['01-01-1'], []] | [['01-01-1'], []] | Passed |
| levels ascend | [['03-04-1', '03-04-2'], []] | [['03-04-1', '03-04-2'], []] | Passed |
| dup invalid kept | [[], ['A', 'B', 'B']] | [[], ['A', 'B', 'B']] | Passed |
| generated mix 8 | [['03-05-1'], ['\t3-7-6\n', ' 3-05-2\n', '02-05-7\n']] | [['03-05-1', '03-05-2', '03-07-6'], ['02-05-7\n']] | Failed |
SHA-256 / 0a97142ecce5c805e1d79a01d85d98ffd655b42cea9981c21e811a87f1acf227
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(codes):
seq = {}
bad = []
for code in codes:
parts = code.replace(' ', '').split('-')
if len(parts) != 3 or not all(p.isdecimal() for p in parts):
bad.append(code)
continue
a, b, l = (int(p) for p in parts)
if not (1 <= a <= 40 and 1 <= l <= 6):
bad.append(code)
continue
seq[(a, b, l)] = '%02d-%02d-%d' % (a, b, l)
def walk(k):
a, b, l = k
return (a, b if a % 2 == 1 else -b, l)
return [[seq[k] for k in sorted(seq, key=walk)], sorted(bad)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['whitespace', [[' 1-1-1\n', '\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['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'], []]], ['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']]], ['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'], []]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['generated mix 8', [[' 3-05-2\n', '\t3-7-6\n', '03-05-1', '02-05-7\n']], [['03-05-1', '03-05-2', '03-07-6'], ['02-05-7\n']]]], [['generated mix 11', [['41-7-6', ' 1-12-1', ' 2-7-1', ' 0-1-7\n', '41-05-1\n', '\t41-05-6\n', '\t41-05-2 ']], [['01-12-1', '02-07-1'], ['\t41-05-2 ', '\t41-05-6\n', ' 0-1-7\n', '41-05-1\n', '41-7-6']]], ['generated mix 9', [['2-7-1', '2-1-2', '1-12-2\n']], [['01-12-2', '02-07-1', '02-01-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']]], ['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'], []]], ['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 19', [['\t03-05-1', ' 03-7-7 ', 'X2-7-7 ', '41-05-7']], [['03-05-1'], [' 03-7-7 ', '41-05-7', 'X2-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 16', [['X 41-1-0', '41-12-6\n', '\t3-1-1', ' 02-12-0\n', '40-05-6', '3-12-6\n', ' 02-1-2']], [['02-01-2', '03-01-1', '03-12-6', '40-05-6'], [' 02-12-0\n', '41-12-6\n', 'X 41-1-0']]], ['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 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 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 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']]], ['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']]], ['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 33', [[' 01-1-2\n', ' 1-05-1 ', '\t01-12-7\n', ' 41-7-7 ', ' 41-1-6\n']], [['01-01-2', '01-05-1'], ['\t01-12-7\n', ' 41-1-6\n', ' 41-7-7 ']]], ['generated mix 41', [[' 2-12-1 ', '40-7-1\n', '\t03-1-2\n', '\t40-1-6\n', '01-7-6', '\t1-7-0\n']], [['01-07-6', '02-12-1', '03-01-2', '40-07-1', '40-01-6'], ['\t1-7-0\n']]]], [['generated mix 35', [['41-12-1', '01-7-1\n']], [['01-07-1'], ['41-12-1']]], ['generated mix 27', [['40-7-1', '03-05-6\n', '\t1 -12-6', '\t2-7-7 ', 'X\t2-05-0']], [['03-05-6', '40-07-1'], ['\t1 -12-6', '\t2-7-7 ', 'X\t2-05-0']]], ['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 44', [['\t3 -12-2\n', ' 3-1-7', ' 40-7-6\n']], [['40-07-6'], ['\t3 -12-2\n', ' 3-1-7']]], ['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 ']]]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| whitespace | [[], ['\t1-2-1', ' 1-1-1\n']] | [['01-01-1', '01-02-1'], []] | Failed |
| inner space invalid | [['01-01-1'], []] | [['01-01-1'], ['1 -1-1']] | Failed |
| serpentine | [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []] | [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []] | Passed |
| range limits | [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']] | [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']] | Passed |
| dedupe canonical | [['01-01-1'], []] | [['01-01-1'], []] | Passed |
| levels ascend | [['03-04-1', '03-04-2'], []] | [['03-04-1', '03-04-2'], []] | Passed |
| dup invalid kept | [[], ['A', 'B', 'B']] | [[], ['A', 'B', 'B']] | Passed |
| generated mix 8 | [['03-05-1'], ['\t3-7-6\n', ' 3-05-2\n', '02-05-7\n']] | [['03-05-1', '03-05-2', '03-07-6'], ['02-05-7\n']] | Failed |
SHA-256 / 91878974065e54706319446dc113a0e934762218e6e6e22ff3eb60ea8a44e112
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(codes):
seq = {}
bad = []
for code in codes:
parts = code.strip().split('-')
if len(parts) != 3 or not all(p.isdecimal() for p in parts):
bad.append(code)
continue
a, b, l = (int(p) for p in parts)
if not (1 <= a <= 40 and 1 <= l <= 6):
bad.append(code)
continue
seq[(a, b, l)] = '%02d-%02d-%d' % (a, b, l)
def walk(k):
a, b, l = k
return (a, b if a % 2 == 1 else -b, l)
return [[seq[k] for k in sorted(seq, key=walk)], sorted(bad)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['whitespace', [[' 1-1-1\n', '\t1-2-1']], [['01-01-1', '01-02-1'], []]], ['inner space invalid', [['1 -1-1', '1-1-1']], [['01-01-1'], ['1 -1-1']]], ['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'], []]], ['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']]], ['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'], []]], ['dup invalid kept', [['B', 'A', 'B']], [[], ['A', 'B', 'B']]], ['generated mix 8', [[' 3-05-2\n', '\t3-7-6\n', '03-05-1', '02-05-7\n']], [['03-05-1', '03-05-2', '03-07-6'], ['02-05-7\n']]]], [['generated mix 11', [['41-7-6', ' 1-12-1', ' 2-7-1', ' 0-1-7\n', '41-05-1\n', '\t41-05-6\n', '\t41-05-2 ']], [['01-12-1', '02-07-1'], ['\t41-05-2 ', '\t41-05-6\n', ' 0-1-7\n', '41-05-1\n', '41-7-6']]], ['generated mix 9', [['2-7-1', '2-1-2', '1-12-2\n']], [['01-12-2', '02-07-1', '02-01-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']]], ['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'], []]], ['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 19', [['\t03-05-1', ' 03-7-7 ', 'X2-7-7 ', '41-05-7']], [['03-05-1'], [' 03-7-7 ', '41-05-7', 'X2-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 16', [['X 41-1-0', '41-12-6\n', '\t3-1-1', ' 02-12-0\n', '40-05-6', '3-12-6\n', ' 02-1-2']], [['02-01-2', '03-01-1', '03-12-6', '40-05-6'], [' 02-12-0\n', '41-12-6\n', 'X 41-1-0']]], ['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 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 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 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']]], ['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']]], ['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 33', [[' 01-1-2\n', ' 1-05-1 ', '\t01-12-7\n', ' 41-7-7 ', ' 41-1-6\n']], [['01-01-2', '01-05-1'], ['\t01-12-7\n', ' 41-1-6\n', ' 41-7-7 ']]], ['generated mix 41', [[' 2-12-1 ', '40-7-1\n', '\t03-1-2\n', '\t40-1-6\n', '01-7-6', '\t1-7-0\n']], [['01-07-6', '02-12-1', '03-01-2', '40-07-1', '40-01-6'], ['\t1-7-0\n']]]], [['generated mix 35', [['41-12-1', '01-7-1\n']], [['01-07-1'], ['41-12-1']]], ['generated mix 27', [['40-7-1', '03-05-6\n', '\t1 -12-6', '\t2-7-7 ', 'X\t2-05-0']], [['03-05-6', '40-07-1'], ['\t1 -12-6', '\t2-7-7 ', 'X\t2-05-0']]], ['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 44', [['\t3 -12-2\n', ' 3-1-7', ' 40-7-6\n']], [['40-07-6'], ['\t3 -12-2\n', ' 3-1-7']]], ['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 ']]]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| whitespace | [['01-01-1', '01-02-1'], []] | [['01-01-1', '01-02-1'], []] | Passed |
| inner space invalid | [['01-01-1'], ['1 -1-1']] | [['01-01-1'], ['1 -1-1']] | Passed |
| serpentine | [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []] | [['01-02-1', '01-05-1', '02-09-1', '02-01-1'], []] | Passed |
| range limits | [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']] | [['40-01-6'], ['0-1-1', '1-1-7', '41-1-1']] | Passed |
| dedupe canonical | [['01-01-1'], []] | [['01-01-1'], []] | Passed |
| levels ascend | [['03-04-1', '03-04-2'], []] | [['03-04-1', '03-04-2'], []] | Passed |
| dup invalid kept | [[], ['A', 'B', 'B']] | [[], ['A', 'B', 'B']] | Passed |
| generated mix 8 | [['03-05-1', '03-05-2', '03-07-6'], ['02-05-7\n']] | [['03-05-1', '03-05-2', '03-07-6'], ['02-05-7\n']] | Passed |
SHA-256 / 289593cd38de62570fa60a4d2996fd39fe222ddf581bbfa95777e03f5c8a19df
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:52:11.810307+00:00.
Case digest / 3f5906d0f014e8e413dd36064298b00ad19bef5873de1a73c67667867c3920d0