FAILURE MAP
← Case archive

FA-67576 / Elevator dispatch scheduling / Open access

Fire service phase I recall: shaft end clipping · case 01

A car moving away at the top or bottom is sent to a floor that does not exist.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The next-floor target is not clipped to the shaft.

VERIFIED REPAIR

Clip the reversal floor to 0..top.

Unsuccessful approach: Clipping only at the bottom still overshoots the top floor.

Case contract

The recall floor is the designated floor unless smoke is detected there and not at the alternate floor. Each car: stationary at the recall floor -> open; stationary elsewhere -> travel to recall; moving towards the recall floor (strictly) -> nonstop to it; otherwise (moving away, or passing the recall floor) -> reverse after stopping at the next floor in its direction, clipped to 0..top.

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):
    smoke = set(x['smoke'])
    des, alt = x['designated'], x['alternate']
    recall = alt if des in smoke and alt not in smoke else des
    res = {}
    for c in x['cars']:
        f = c['floor']
        if not c['moving']:
            res[c['id']] = ['open', recall] if f == recall else ['travel', recall]
        elif (c['dir'] == 'up' and recall > f) or (c['dir'] == 'down' and recall < f):
            res[c['id']] = ['nonstop', recall]
        else:
            nxt = f + 1 if c['dir'] == 'up' else f - 1
            res[c['id']] = ['reverse', nxt]
    return {'recall': recall, 'cars': res}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 33', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 2, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('sampled regression 30', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 2, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 1, 'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 11]}}), ('boundary: smoke at the designated floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 5, 'cars': {'L1': ['travel', 5]}}), ('control 1', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [11], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 10, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 9, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}}), ('control 4', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [6, 11], 'cars': [{'id': 'L1', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0]}}), ('control 7', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 1, 'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}})], [('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 69', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 5], 'L2': ['reverse', 0]}}), ('sampled regression 65', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [2, 11], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11]}}), ('boundary: smoke elsewhere only', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [7], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0]}}), ('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('control 12', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 10, 'moving': True, 'dir': 'up'}]}, {'recall': 2, 'cars': {'L1': ['travel', 2], 'L2': ['reverse', 11]}}), ('control 15', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [7, 0], 'cars': [{'id': 'L1', 'floor': 4, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 5, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 8, 'moving': True, 'dir': 'down'}]}, {'recall': 1, 'cars': {'L1': ['travel', 1], 'L2': ['travel', 1], 'L3': ['nonstop', 1]}}), ('control 18', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 6, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 2, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['nonstop', 0], 'L3': ['travel', 0]}})], [('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 34', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('sampled regression 42', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [10], 'cars': [{'id': 'L1', 'floor': 8, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 11]}}), ('boundary: moving away upwards', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 4, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 5]}}), ('control 23', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 3, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 8, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 1, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0], 'L2': ['nonstop', 0], 'L3': ['reverse', 2]}}), ('control 26', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [10, 11], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 7, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['nonstop', 0]}}), ('control 29', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [6], 'cars': [{'id': 'L1', 'floor': 9, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0]}})], [('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 76', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [9], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('sampled regression 33', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 2, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('boundary: moving up towards the alternate floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 2, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['nonstop', 5]}}), ('boundary: parked at the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['open', 0]}}), ('sampled regression 34', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('control 37', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [9, 8], 'cars': [{'id': 'L1', 'floor': 1, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 2], 'L2': ['travel', 0]}}), ('control 40', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [5, 3, 0], 'cars': [{'id': 'L1', 'floor': 3, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 10, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 4], 'L2': ['reverse', 11]}})], [('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 36', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [3, 0], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 11, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 2, 'cars': {'L1': ['reverse', 0], 'L2': ['nonstop', 2], 'L3': ['reverse', 0]}}), ('boundary: smoke at the designated floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 5, 'cars': {'L1': ['travel', 5]}}), ('boundary: smoke at both recall floors', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0, 5], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0]}}), ('control 45', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [4, 11], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 1]}}), ('control 48', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [1], 'cars': [{'id': 'L1', 'floor': 4, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 5, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0], 'L2': ['travel', 0]}}), ('control 51', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 4, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 10], 'L2': ['travel', 0]}})]]
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 fixtureActualExpectedOutcome
regression: passing the recall floor{'cars': {'L1': ['reverse', -1]}, 'recall': 0}{'cars': {'L1': ['reverse', 0]}, 'recall': 0}Failed
regression: moving away at the top{'cars': {'L1': ['reverse', 12]}, 'recall': 5}{'cars': {'L1': ['reverse', 11]}, 'recall': 5}Failed
sampled regression 33{'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 12]}, 'recall': 0}{'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}, 'recall': 0}Failed
sampled regression 30{'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 12]}, 'recall': 1}{'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 11]}, 'recall': 1}Failed
boundary: smoke at the designated floor{'cars': {'L1': ['travel', 5]}, 'recall': 5}{'cars': {'L1': ['travel', 5]}, 'recall': 5}Passed
control 1{'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}, 'recall': 0}Passed
control 4{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}Passed
control 7{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}Passed

SHA-256 / a8f2f98bb045a6ef86b301312d92a310976fa5aa00d37f3ab563a9257c9c3c4a

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    smoke = set(x['smoke'])
    des, alt = x['designated'], x['alternate']
    recall = alt if des in smoke and alt not in smoke else des
    res = {}
    for c in x['cars']:
        f = c['floor']
        if not c['moving']:
            res[c['id']] = ['open', recall] if f == recall else ['travel', recall]
        elif (c['dir'] == 'up' and recall > f) or (c['dir'] == 'down' and recall < f):
            res[c['id']] = ['nonstop', recall]
        else:
            nxt = f + 1 if c['dir'] == 'up' else f - 1
            res[c['id']] = ['reverse', max(nxt, 0)]
    return {'recall': recall, 'cars': res}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 33', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 2, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('sampled regression 30', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 2, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 1, 'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 11]}}), ('boundary: smoke at the designated floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 5, 'cars': {'L1': ['travel', 5]}}), ('control 1', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [11], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 10, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 9, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}}), ('control 4', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [6, 11], 'cars': [{'id': 'L1', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0]}}), ('control 7', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 1, 'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}})], [('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 69', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 5], 'L2': ['reverse', 0]}}), ('sampled regression 65', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [2, 11], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11]}}), ('boundary: smoke elsewhere only', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [7], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0]}}), ('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('control 12', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 10, 'moving': True, 'dir': 'up'}]}, {'recall': 2, 'cars': {'L1': ['travel', 2], 'L2': ['reverse', 11]}}), ('control 15', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [7, 0], 'cars': [{'id': 'L1', 'floor': 4, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 5, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 8, 'moving': True, 'dir': 'down'}]}, {'recall': 1, 'cars': {'L1': ['travel', 1], 'L2': ['travel', 1], 'L3': ['nonstop', 1]}}), ('control 18', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 6, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 2, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['nonstop', 0], 'L3': ['travel', 0]}})], [('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 34', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('sampled regression 42', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [10], 'cars': [{'id': 'L1', 'floor': 8, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 11]}}), ('boundary: moving away upwards', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 4, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 5]}}), ('control 23', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 3, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 8, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 1, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0], 'L2': ['nonstop', 0], 'L3': ['reverse', 2]}}), ('control 26', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [10, 11], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 7, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['nonstop', 0]}}), ('control 29', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [6], 'cars': [{'id': 'L1', 'floor': 9, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0]}})], [('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 76', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [9], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('sampled regression 33', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 2, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('boundary: moving up towards the alternate floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 2, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['nonstop', 5]}}), ('boundary: parked at the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['open', 0]}}), ('sampled regression 34', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('control 37', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [9, 8], 'cars': [{'id': 'L1', 'floor': 1, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 2], 'L2': ['travel', 0]}}), ('control 40', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [5, 3, 0], 'cars': [{'id': 'L1', 'floor': 3, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 10, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 4], 'L2': ['reverse', 11]}})], [('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 36', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [3, 0], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 11, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 2, 'cars': {'L1': ['reverse', 0], 'L2': ['nonstop', 2], 'L3': ['reverse', 0]}}), ('boundary: smoke at the designated floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 5, 'cars': {'L1': ['travel', 5]}}), ('boundary: smoke at both recall floors', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0, 5], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0]}}), ('control 45', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [4, 11], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 1]}}), ('control 48', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [1], 'cars': [{'id': 'L1', 'floor': 4, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 5, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0], 'L2': ['travel', 0]}}), ('control 51', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 4, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 10], 'L2': ['travel', 0]}})]]
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 fixtureActualExpectedOutcome
regression: passing the recall floor{'cars': {'L1': ['reverse', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 0]}, 'recall': 0}Passed
regression: moving away at the top{'cars': {'L1': ['reverse', 12]}, 'recall': 5}{'cars': {'L1': ['reverse', 11]}, 'recall': 5}Failed
sampled regression 33{'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 12]}, 'recall': 0}{'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}, 'recall': 0}Failed
sampled regression 30{'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 12]}, 'recall': 1}{'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 11]}, 'recall': 1}Failed
boundary: smoke at the designated floor{'cars': {'L1': ['travel', 5]}, 'recall': 5}{'cars': {'L1': ['travel', 5]}, 'recall': 5}Passed
control 1{'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}, 'recall': 0}Passed
control 4{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}Passed
control 7{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}Passed

SHA-256 / 2eaa6b827db34832f04c4b93c73f8735f35d702e1a5c9ec58852ee7871c001b0

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    smoke = set(x['smoke'])
    des, alt = x['designated'], x['alternate']
    recall = alt if des in smoke and alt not in smoke else des
    res = {}
    for c in x['cars']:
        f = c['floor']
        if not c['moving']:
            res[c['id']] = ['open', recall] if f == recall else ['travel', recall]
        elif (c['dir'] == 'up' and recall > f) or (c['dir'] == 'down' and recall < f):
            res[c['id']] = ['nonstop', recall]
        else:
            nxt = f + 1 if c['dir'] == 'up' else f - 1
            res[c['id']] = ['reverse', min(max(nxt, 0), x['top'])]
    return {'recall': recall, 'cars': res}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 33', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 2, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('sampled regression 30', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 2, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 1, 'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 11]}}), ('boundary: smoke at the designated floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 5, 'cars': {'L1': ['travel', 5]}}), ('control 1', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [11], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 10, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 9, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}}), ('control 4', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [6, 11], 'cars': [{'id': 'L1', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0]}}), ('control 7', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 1, 'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}})], [('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 69', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 5], 'L2': ['reverse', 0]}}), ('sampled regression 65', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [2, 11], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11]}}), ('boundary: smoke elsewhere only', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [7], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0]}}), ('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('control 12', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 10, 'moving': True, 'dir': 'up'}]}, {'recall': 2, 'cars': {'L1': ['travel', 2], 'L2': ['reverse', 11]}}), ('control 15', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [7, 0], 'cars': [{'id': 'L1', 'floor': 4, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 5, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 8, 'moving': True, 'dir': 'down'}]}, {'recall': 1, 'cars': {'L1': ['travel', 1], 'L2': ['travel', 1], 'L3': ['nonstop', 1]}}), ('control 18', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 6, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 2, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['nonstop', 0], 'L3': ['travel', 0]}})], [('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 34', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('sampled regression 42', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [10], 'cars': [{'id': 'L1', 'floor': 8, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 11]}}), ('boundary: moving away upwards', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 4, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 5]}}), ('control 23', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 3, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 8, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 1, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0], 'L2': ['nonstop', 0], 'L3': ['reverse', 2]}}), ('control 26', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [10, 11], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 7, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['nonstop', 0]}}), ('control 29', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [6], 'cars': [{'id': 'L1', 'floor': 9, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0]}})], [('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 76', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [9], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('sampled regression 33', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [8], 'cars': [{'id': 'L1', 'floor': 6, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 2, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('boundary: moving up towards the alternate floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 2, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['nonstop', 5]}}), ('boundary: parked at the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['open', 0]}}), ('sampled regression 34', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 11, 'moving': False, 'dir': 'idle'}, {'id': 'L3', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 11], 'L2': ['travel', 0], 'L3': ['reverse', 11]}}), ('control 37', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [9, 8], 'cars': [{'id': 'L1', 'floor': 1, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 2], 'L2': ['travel', 0]}}), ('control 40', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [5, 3, 0], 'cars': [{'id': 'L1', 'floor': 3, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 10, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 4], 'L2': ['reverse', 11]}})], [('regression: passing the recall floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 0]}}), ('regression: moving away at the top', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': True, 'dir': 'up'}]}, {'recall': 5, 'cars': {'L1': ['reverse', 11]}}), ('sampled regression 36', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [3, 0], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 11, 'moving': True, 'dir': 'down'}, {'id': 'L3', 'floor': 1, 'moving': True, 'dir': 'down'}]}, {'recall': 2, 'cars': {'L1': ['reverse', 0], 'L2': ['nonstop', 2], 'L3': ['reverse', 0]}}), ('boundary: smoke at the designated floor', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 5, 'cars': {'L1': ['travel', 5]}}), ('boundary: smoke at both recall floors', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [0, 5], 'cars': [{'id': 'L1', 'floor': 6, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0]}}), ('control 45', {'designated': 0, 'alternate': 5, 'top': 11, 'smoke': [4, 11], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 1]}}), ('control 48', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [1], 'cars': [{'id': 'L1', 'floor': 4, 'moving': False, 'dir': 'idle'}, {'id': 'L2', 'floor': 5, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['travel', 0], 'L2': ['travel', 0]}}), ('control 51', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 9, 'moving': True, 'dir': 'up'}, {'id': 'L2', 'floor': 4, 'moving': False, 'dir': 'idle'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 10], 'L2': ['travel', 0]}})]]
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 fixtureActualExpectedOutcome
regression: passing the recall floor{'cars': {'L1': ['reverse', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 0]}, 'recall': 0}Passed
regression: moving away at the top{'cars': {'L1': ['reverse', 11]}, 'recall': 5}{'cars': {'L1': ['reverse', 11]}, 'recall': 5}Passed
sampled regression 33{'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}, 'recall': 0}{'cars': {'L1': ['reverse', 7], 'L2': ['travel', 0], 'L3': ['reverse', 11]}, 'recall': 0}Passed
sampled regression 30{'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 11]}, 'recall': 1}{'cars': {'L1': ['nonstop', 1], 'L2': ['nonstop', 1], 'L3': ['reverse', 11]}, 'recall': 1}Passed
boundary: smoke at the designated floor{'cars': {'L1': ['travel', 5]}, 'recall': 5}{'cars': {'L1': ['travel', 5]}, 'recall': 5}Passed
control 1{'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}, 'recall': 0}Passed
control 4{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}Passed
control 7{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}Passed

SHA-256 / 3c82a1880ca9860867233920b5dcde255a002da708adca419884ea9ca18f7242

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:54.168667+00:00.

Case digest / 4f5521ebc967bf58f69c2d7dfd4bfb0b74cc51e2f2b80916034ee4d1ecb87c69