FA-67461 / Elevator dispatch scheduling / Open access
Floor label and index mapping: unlucky floor skip · case 01
Floor 12 disappears instead of 13 in buildings with a mezzanine.
ROOT CAUSE
The mezzanine is counted as a numbered storey when deciding which label to skip.
VERIFIED REPAIR
Skip the label number 13 itself.
Unsuccessful approach: Skipping every multiple of 13 also drops 26.
Case contract
Physical indices 0..floors-1 are labelled bottom-up: basements Bk..B1, then G, then M if there is a mezzanine, then 1, 2, 3 ... skipping 13 when skip13. label:i returns the label of index i (None outside the range); index:L returns the index of label L (case-insensitive) or None.
Why this case matters
Lift group controllers make these decisions many times per minute; a wrong answer strands passengers, wastes trips or overrides a safety rule.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
labels = ['B%d' % i for i in range(x['basements'], 0, -1)] + ['G']
if x['mezz']:
labels.append('M')
num = 1
while len(labels) < x['floors']:
if x['skip13'] and num + (1 if x['mezz'] else 0) == 13:
num += 1
continue
labels.append(str(num))
num += 1
out = []
for q in x['queries']:
kind, val = q.split(':')
if kind == 'label':
i = int(val)
out.append(labels[i] if 0 <= i < len(labels) else None)
else:
v = val.upper()
out.append(labels.index(v) if v in labels else None)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None]), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 64', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 20, 'queries': ['index:b2', 'label:18', 'index:G', 'index:15', 'label:15', 'label:18']}, [0, '16', 2, 17, '12', '16']), ('boundary: two basements', {'basements': 2, 'mezz': False, 'skip13': True, 'floors': 8, 'queries': ['label:0', 'label:1', 'index:B1', 'index:B2']}, ['B2', 'B1', 1, 0]), ('boundary: thirteen skipped', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 16, 'queries': ['label:13', 'index:14', 'index:13']}, ['14', 13, None]), ('control 1', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 9, 'queries': ['label:2', 'index:B1', 'index:B1', 'label:9', 'index:15', 'label:9']}, ['1', None, None, None, None, None]), ('control 4', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 15, 'queries': ['index:B1', 'label:-1', 'index:g', 'label:13', 'index:13', 'index:14']}, [None, None, 0, '14', None, 13]), ('control 7', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 9, 'queries': ['index:G', 'index:B2', 'index:14', 'label:8', 'label:-1', 'label:5']}, [1, None, None, '6', None, '3'])], [('sampled regression 44', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:-1', 'label:15', 'label:16', 'index:13', 'index:g', 'label:4']}, [None, None, None, None, 1, '2']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 71', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 16, 'queries': ['label:4', 'label:0', 'index:13', 'label:4', 'label:14', 'label:4']}, ['1', 'B2', None, '1', '11', '1']), ('boundary: thirteen kept', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 16, 'queries': ['label:13', 'index:13']}, ['13', 13]), ('boundary: negative index', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 10, 'queries': ['label:-1', 'label:0']}, [None, 'B1']), ('control 12', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 8, 'queries': ['index:B2', 'index:20', 'index:12', 'index:13', 'index:12', 'label:-1']}, [None, None, None, None, None, None]), ('control 15', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:14', 'index:1', 'index:13', 'label:0', 'label:7', 'index:X']}, ['11', 4, None, 'B2', '4', None]), ('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None])], [('sampled regression 48', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 17, 'queries': ['label:8', 'label:5', 'index:m', 'label:13', 'label:-1', 'label:16']}, ['7', '4', 1, '12', None, '16']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 72', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:12', 'index:13', 'label:-1', 'index:X', 'label:-1', 'label:-2']}, ['11', None, None, None, None, None]), ('boundary: ground floor index', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 10, 'queries': ['label:0', 'index:g', 'index:m']}, ['G', 0, 1]), ('boundary: index past the top', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 6, 'queries': ['label:6', 'label:5']}, [None, '5']), ('control 23', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B2', 'label:5', 'index:15', 'index:B1', 'index:b2', 'index:g']}, [0, '2', 17, 1, 0, 2]), ('control 26', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 8, 'queries': ['index:G', 'label:-1', 'label:6', 'label:3', 'index:G', 'label:-1']}, [1, None, '4', '1', 1, None]), ('control 29', {'basements': 1, 'mezz': False, 'skip13': False, 'floors': 14, 'queries': ['label:11', 'label:6', 'label:14', 'label:2', 'index:b2', 'index:M']}, ['10', '5', None, '1', None, None])], [('sampled regression 64', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 20, 'queries': ['index:b2', 'label:18', 'index:G', 'index:15', 'label:15', 'label:18']}, [0, '16', 2, 17, '12', '16']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None]), ('boundary: index past the top', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 6, 'queries': ['label:6', 'label:5']}, [None, '5']), ('boundary: two basements', {'basements': 2, 'mezz': False, 'skip13': True, 'floors': 8, 'queries': ['label:0', 'label:1', 'index:B1', 'index:B2']}, ['B2', 'B1', 1, 0]), ('control 34', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 6, 'queries': ['index:B2', 'index:M', 'label:4', 'index:13', 'label:-2', 'label:5']}, [None, None, '4', None, None, '5']), ('control 37', {'basements': 1, 'mezz': False, 'skip13': True, 'floors': 19, 'queries': ['label:15', 'index:17', 'label:5', 'index:15', 'index:M', 'index:B1']}, ['15', 17, '4', 15, None, 0]), ('control 40', {'basements': 1, 'mezz': True, 'skip13': False, 'floors': 13, 'queries': ['index:B2', 'index:B2', 'index:g', 'index:17', 'index:17', 'label:13']}, [None, None, 1, None, None, None])], [('sampled regression 71', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 16, 'queries': ['label:4', 'label:0', 'index:13', 'label:4', 'label:14', 'label:4']}, ['1', 'B2', None, '1', '11', '1']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 44', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:-1', 'label:15', 'label:16', 'index:13', 'index:g', 'label:4']}, [None, None, None, None, 1, '2']), ('boundary: thirteen skipped', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 16, 'queries': ['label:13', 'index:14', 'index:13']}, ['14', 13, None]), ('boundary: thirteen kept', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 16, 'queries': ['label:13', 'index:13']}, ['13', 13]), ('control 45', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 6, 'queries': ['index:m', 'index:15', 'label:4', 'index:g', 'index:17', 'label:7']}, [None, None, '4', 0, None, None]), ('sampled regression 48', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 17, 'queries': ['label:8', 'label:5', 'index:m', 'label:13', 'label:-1', 'label:16']}, ['7', '4', 1, '12', None, '16']), ('control 51', {'basements': 2, 'mezz': False, 'skip13': False, 'floors': 10, 'queries': ['label:6', 'label:-2', 'label:8', 'label:-2', 'label:7', 'index:B1']}, ['4', None, '6', None, '5', 1])]]
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 |
|---|---|---|---|
| sampled regression 18 | [0, None, None, 16, '15', None] | [0, None, 14, 16, '15', None] | Failed |
| boundary: twenty-six with skip | ['27', '28', 25] | ['27', '28', 25] | Passed |
| sampled regression 64 | [0, '16', 2, 17, '13', '16'] | [0, '16', 2, 17, '12', '16'] | Failed |
| boundary: two basements | ['B2', 'B1', 1, 0] | ['B2', 'B1', 1, 0] | Passed |
| boundary: thirteen skipped | ['14', 13, None] | ['14', 13, None] | Passed |
| control 1 | ['1', None, None, None, None, None] | ['1', None, None, None, None, None] | Passed |
| control 4 | [None, None, 0, '14', None, 13] | [None, None, 0, '14', None, 13] | Passed |
| control 7 | [1, None, None, '6', None, '3'] | [1, None, None, '6', None, '3'] | Passed |
SHA-256 / 7ae5ed765450c10bcbc169713497094c012b0a3a7ac7cab757709b440c8671c1
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
labels = ['B%d' % i for i in range(x['basements'], 0, -1)] + ['G']
if x['mezz']:
labels.append('M')
num = 1
while len(labels) < x['floors']:
if x['skip13'] and num % 13 == 0:
num += 1
continue
labels.append(str(num))
num += 1
out = []
for q in x['queries']:
kind, val = q.split(':')
if kind == 'label':
i = int(val)
out.append(labels[i] if 0 <= i < len(labels) else None)
else:
v = val.upper()
out.append(labels.index(v) if v in labels else None)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None]), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 64', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 20, 'queries': ['index:b2', 'label:18', 'index:G', 'index:15', 'label:15', 'label:18']}, [0, '16', 2, 17, '12', '16']), ('boundary: two basements', {'basements': 2, 'mezz': False, 'skip13': True, 'floors': 8, 'queries': ['label:0', 'label:1', 'index:B1', 'index:B2']}, ['B2', 'B1', 1, 0]), ('boundary: thirteen skipped', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 16, 'queries': ['label:13', 'index:14', 'index:13']}, ['14', 13, None]), ('control 1', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 9, 'queries': ['label:2', 'index:B1', 'index:B1', 'label:9', 'index:15', 'label:9']}, ['1', None, None, None, None, None]), ('control 4', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 15, 'queries': ['index:B1', 'label:-1', 'index:g', 'label:13', 'index:13', 'index:14']}, [None, None, 0, '14', None, 13]), ('control 7', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 9, 'queries': ['index:G', 'index:B2', 'index:14', 'label:8', 'label:-1', 'label:5']}, [1, None, None, '6', None, '3'])], [('sampled regression 44', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:-1', 'label:15', 'label:16', 'index:13', 'index:g', 'label:4']}, [None, None, None, None, 1, '2']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 71', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 16, 'queries': ['label:4', 'label:0', 'index:13', 'label:4', 'label:14', 'label:4']}, ['1', 'B2', None, '1', '11', '1']), ('boundary: thirteen kept', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 16, 'queries': ['label:13', 'index:13']}, ['13', 13]), ('boundary: negative index', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 10, 'queries': ['label:-1', 'label:0']}, [None, 'B1']), ('control 12', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 8, 'queries': ['index:B2', 'index:20', 'index:12', 'index:13', 'index:12', 'label:-1']}, [None, None, None, None, None, None]), ('control 15', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:14', 'index:1', 'index:13', 'label:0', 'label:7', 'index:X']}, ['11', 4, None, 'B2', '4', None]), ('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None])], [('sampled regression 48', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 17, 'queries': ['label:8', 'label:5', 'index:m', 'label:13', 'label:-1', 'label:16']}, ['7', '4', 1, '12', None, '16']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 72', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:12', 'index:13', 'label:-1', 'index:X', 'label:-1', 'label:-2']}, ['11', None, None, None, None, None]), ('boundary: ground floor index', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 10, 'queries': ['label:0', 'index:g', 'index:m']}, ['G', 0, 1]), ('boundary: index past the top', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 6, 'queries': ['label:6', 'label:5']}, [None, '5']), ('control 23', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B2', 'label:5', 'index:15', 'index:B1', 'index:b2', 'index:g']}, [0, '2', 17, 1, 0, 2]), ('control 26', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 8, 'queries': ['index:G', 'label:-1', 'label:6', 'label:3', 'index:G', 'label:-1']}, [1, None, '4', '1', 1, None]), ('control 29', {'basements': 1, 'mezz': False, 'skip13': False, 'floors': 14, 'queries': ['label:11', 'label:6', 'label:14', 'label:2', 'index:b2', 'index:M']}, ['10', '5', None, '1', None, None])], [('sampled regression 64', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 20, 'queries': ['index:b2', 'label:18', 'index:G', 'index:15', 'label:15', 'label:18']}, [0, '16', 2, 17, '12', '16']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None]), ('boundary: index past the top', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 6, 'queries': ['label:6', 'label:5']}, [None, '5']), ('boundary: two basements', {'basements': 2, 'mezz': False, 'skip13': True, 'floors': 8, 'queries': ['label:0', 'label:1', 'index:B1', 'index:B2']}, ['B2', 'B1', 1, 0]), ('control 34', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 6, 'queries': ['index:B2', 'index:M', 'label:4', 'index:13', 'label:-2', 'label:5']}, [None, None, '4', None, None, '5']), ('control 37', {'basements': 1, 'mezz': False, 'skip13': True, 'floors': 19, 'queries': ['label:15', 'index:17', 'label:5', 'index:15', 'index:M', 'index:B1']}, ['15', 17, '4', 15, None, 0]), ('control 40', {'basements': 1, 'mezz': True, 'skip13': False, 'floors': 13, 'queries': ['index:B2', 'index:B2', 'index:g', 'index:17', 'index:17', 'label:13']}, [None, None, 1, None, None, None])], [('sampled regression 71', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 16, 'queries': ['label:4', 'label:0', 'index:13', 'label:4', 'label:14', 'label:4']}, ['1', 'B2', None, '1', '11', '1']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 44', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:-1', 'label:15', 'label:16', 'index:13', 'index:g', 'label:4']}, [None, None, None, None, 1, '2']), ('boundary: thirteen skipped', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 16, 'queries': ['label:13', 'index:14', 'index:13']}, ['14', 13, None]), ('boundary: thirteen kept', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 16, 'queries': ['label:13', 'index:13']}, ['13', 13]), ('control 45', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 6, 'queries': ['index:m', 'index:15', 'label:4', 'index:g', 'index:17', 'label:7']}, [None, None, '4', 0, None, None]), ('sampled regression 48', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 17, 'queries': ['label:8', 'label:5', 'index:m', 'label:13', 'label:-1', 'label:16']}, ['7', '4', 1, '12', None, '16']), ('control 51', {'basements': 2, 'mezz': False, 'skip13': False, 'floors': 10, 'queries': ['label:6', 'label:-2', 'label:8', 'label:-2', 'label:7', 'index:B1']}, ['4', None, '6', None, '5', 1])]]
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 |
|---|---|---|---|
| sampled regression 18 | [0, None, 14, 16, '15', None] | [0, None, 14, 16, '15', None] | Passed |
| boundary: twenty-six with skip | ['28', '29', None] | ['27', '28', 25] | Failed |
| sampled regression 64 | [0, '16', 2, 17, '12', '16'] | [0, '16', 2, 17, '12', '16'] | Passed |
| boundary: two basements | ['B2', 'B1', 1, 0] | ['B2', 'B1', 1, 0] | Passed |
| boundary: thirteen skipped | ['14', 13, None] | ['14', 13, None] | Passed |
| control 1 | ['1', None, None, None, None, None] | ['1', None, None, None, None, None] | Passed |
| control 4 | [None, None, 0, '14', None, 13] | [None, None, 0, '14', None, 13] | Passed |
| control 7 | [1, None, None, '6', None, '3'] | [1, None, None, '6', None, '3'] | Passed |
SHA-256 / 3e9846eaf0d955cfd6ae1f87d36f418b9ddcee302fc95e377cde98e5cfe5a7a8
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
labels = ['B%d' % i for i in range(x['basements'], 0, -1)] + ['G']
if x['mezz']:
labels.append('M')
num = 1
while len(labels) < x['floors']:
if x['skip13'] and num == 13:
num += 1
continue
labels.append(str(num))
num += 1
out = []
for q in x['queries']:
kind, val = q.split(':')
if kind == 'label':
i = int(val)
out.append(labels[i] if 0 <= i < len(labels) else None)
else:
v = val.upper()
out.append(labels.index(v) if v in labels else None)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None]), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 64', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 20, 'queries': ['index:b2', 'label:18', 'index:G', 'index:15', 'label:15', 'label:18']}, [0, '16', 2, 17, '12', '16']), ('boundary: two basements', {'basements': 2, 'mezz': False, 'skip13': True, 'floors': 8, 'queries': ['label:0', 'label:1', 'index:B1', 'index:B2']}, ['B2', 'B1', 1, 0]), ('boundary: thirteen skipped', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 16, 'queries': ['label:13', 'index:14', 'index:13']}, ['14', 13, None]), ('control 1', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 9, 'queries': ['label:2', 'index:B1', 'index:B1', 'label:9', 'index:15', 'label:9']}, ['1', None, None, None, None, None]), ('control 4', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 15, 'queries': ['index:B1', 'label:-1', 'index:g', 'label:13', 'index:13', 'index:14']}, [None, None, 0, '14', None, 13]), ('control 7', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 9, 'queries': ['index:G', 'index:B2', 'index:14', 'label:8', 'label:-1', 'label:5']}, [1, None, None, '6', None, '3'])], [('sampled regression 44', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:-1', 'label:15', 'label:16', 'index:13', 'index:g', 'label:4']}, [None, None, None, None, 1, '2']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 71', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 16, 'queries': ['label:4', 'label:0', 'index:13', 'label:4', 'label:14', 'label:4']}, ['1', 'B2', None, '1', '11', '1']), ('boundary: thirteen kept', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 16, 'queries': ['label:13', 'index:13']}, ['13', 13]), ('boundary: negative index', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 10, 'queries': ['label:-1', 'label:0']}, [None, 'B1']), ('control 12', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 8, 'queries': ['index:B2', 'index:20', 'index:12', 'index:13', 'index:12', 'label:-1']}, [None, None, None, None, None, None]), ('control 15', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:14', 'index:1', 'index:13', 'label:0', 'label:7', 'index:X']}, ['11', 4, None, 'B2', '4', None]), ('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None])], [('sampled regression 48', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 17, 'queries': ['label:8', 'label:5', 'index:m', 'label:13', 'label:-1', 'label:16']}, ['7', '4', 1, '12', None, '16']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 72', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:12', 'index:13', 'label:-1', 'index:X', 'label:-1', 'label:-2']}, ['11', None, None, None, None, None]), ('boundary: ground floor index', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 10, 'queries': ['label:0', 'index:g', 'index:m']}, ['G', 0, 1]), ('boundary: index past the top', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 6, 'queries': ['label:6', 'label:5']}, [None, '5']), ('control 23', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B2', 'label:5', 'index:15', 'index:B1', 'index:b2', 'index:g']}, [0, '2', 17, 1, 0, 2]), ('control 26', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 8, 'queries': ['index:G', 'label:-1', 'label:6', 'label:3', 'index:G', 'label:-1']}, [1, None, '4', '1', 1, None]), ('control 29', {'basements': 1, 'mezz': False, 'skip13': False, 'floors': 14, 'queries': ['label:11', 'label:6', 'label:14', 'label:2', 'index:b2', 'index:M']}, ['10', '5', None, '1', None, None])], [('sampled regression 64', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 20, 'queries': ['index:b2', 'label:18', 'index:G', 'index:15', 'label:15', 'label:18']}, [0, '16', 2, 17, '12', '16']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 18', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 18, 'queries': ['index:B1', 'label:-1', 'index:12', 'index:15', 'label:16', 'index:20']}, [0, None, 14, 16, '15', None]), ('boundary: index past the top', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 6, 'queries': ['label:6', 'label:5']}, [None, '5']), ('boundary: two basements', {'basements': 2, 'mezz': False, 'skip13': True, 'floors': 8, 'queries': ['label:0', 'label:1', 'index:B1', 'index:B2']}, ['B2', 'B1', 1, 0]), ('control 34', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 6, 'queries': ['index:B2', 'index:M', 'label:4', 'index:13', 'label:-2', 'label:5']}, [None, None, '4', None, None, '5']), ('control 37', {'basements': 1, 'mezz': False, 'skip13': True, 'floors': 19, 'queries': ['label:15', 'index:17', 'label:5', 'index:15', 'index:M', 'index:B1']}, ['15', 17, '4', 15, None, 0]), ('control 40', {'basements': 1, 'mezz': True, 'skip13': False, 'floors': 13, 'queries': ['index:B2', 'index:B2', 'index:g', 'index:17', 'index:17', 'label:13']}, [None, None, 1, None, None, None])], [('sampled regression 71', {'basements': 2, 'mezz': True, 'skip13': True, 'floors': 16, 'queries': ['label:4', 'label:0', 'index:13', 'label:4', 'label:14', 'label:4']}, ['1', 'B2', None, '1', '11', '1']), ('boundary: twenty-six with skip', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 30, 'queries': ['label:26', 'label:27', 'index:26']}, ['27', '28', 25]), ('sampled regression 44', {'basements': 1, 'mezz': True, 'skip13': True, 'floors': 15, 'queries': ['label:-1', 'label:15', 'label:16', 'index:13', 'index:g', 'label:4']}, [None, None, None, None, 1, '2']), ('boundary: thirteen skipped', {'basements': 0, 'mezz': False, 'skip13': True, 'floors': 16, 'queries': ['label:13', 'index:14', 'index:13']}, ['14', 13, None]), ('boundary: thirteen kept', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 16, 'queries': ['label:13', 'index:13']}, ['13', 13]), ('control 45', {'basements': 0, 'mezz': False, 'skip13': False, 'floors': 6, 'queries': ['index:m', 'index:15', 'label:4', 'index:g', 'index:17', 'label:7']}, [None, None, '4', 0, None, None]), ('sampled regression 48', {'basements': 0, 'mezz': True, 'skip13': True, 'floors': 17, 'queries': ['label:8', 'label:5', 'index:m', 'label:13', 'label:-1', 'label:16']}, ['7', '4', 1, '12', None, '16']), ('control 51', {'basements': 2, 'mezz': False, 'skip13': False, 'floors': 10, 'queries': ['label:6', 'label:-2', 'label:8', 'label:-2', 'label:7', 'index:B1']}, ['4', None, '6', None, '5', 1])]]
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 |
|---|---|---|---|
| sampled regression 18 | [0, None, 14, 16, '15', None] | [0, None, 14, 16, '15', None] | Passed |
| boundary: twenty-six with skip | ['27', '28', 25] | ['27', '28', 25] | Passed |
| sampled regression 64 | [0, '16', 2, 17, '12', '16'] | [0, '16', 2, 17, '12', '16'] | Passed |
| boundary: two basements | ['B2', 'B1', 1, 0] | ['B2', 'B1', 1, 0] | Passed |
| boundary: thirteen skipped | ['14', 13, None] | ['14', 13, None] | Passed |
| control 1 | ['1', None, None, None, None, None] | ['1', None, None, None, None, None] | Passed |
| control 4 | [None, None, 0, '14', None, 13] | [None, None, 0, '14', None, 13] | Passed |
| control 7 | [1, None, None, '6', None, '3'] | [1, None, None, '6', None, '3'] | Passed |
SHA-256 / 03aea883a9c3b57f6bc9ca5318f01eb58b85cca0613d6dcf6f6bbbbec5b53e9f
Verification & scope
Stipulated toy lift-control contract for a bounded teaching model; it makes no claim of conformance to any lift code or vendor dispatcher and omits real safety cases. 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:47:53.119777+00:00.
Case digest / b76d1026cb3dba0a270dc3dfb5d6908b4544ee120a8e4f36cd21049a88fb8d15