FAILURE MAP
← Case archive

FA-67566 / Elevator dispatch scheduling / Open access

Fire service phase I recall: towards test strictness · case 01

A car passing the recall floor is told to run nonstop to where it already is.

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

ROOT CAUSE

The towards test includes the current floor.

VERIFIED REPAIR

Treat only strictly-ahead recall floors as towards.

Unsuccessful approach: Comparing direction flags treats a down car passing the recall floor as heading towards it.

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', 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]}}), ('sampled regression 16', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [0, 2, 0], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1]}}), ('sampled regression 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]}}), ('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]}}), ('sampled regression 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 10', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': False, 'dir': 'idle'}]}, {'recall': 1, 'cars': {'L1': ['travel', 1]}})], [('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]}}), ('sampled regression 79', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L3', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 5], 'L3': ['reverse', 0]}}), ('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]}}), ('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]}}), ('boundary: 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]}}), ('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]}}), ('sampled regression 52', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1]}}), ('sampled regression 79', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L3', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 5], 'L3': ['reverse', 0]}}), ('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]}}), ('boundary: 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]}}), ('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: 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]}}), ('sampled regression 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]}}), ('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]}}), ('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]}}), ('control 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]}}), ('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 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]}}), ('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]}}), ('sampled regression 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': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 0]}, 'recall': 0}Failed
sampled regression 16{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 1]}, 'recall': 0}Failed
sampled regression 7{'cars': {'L1': ['reverse', 8], 'L2': ['nonstop', 1]}, 'recall': 1}{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}Failed
boundary: smoke at the designated floor{'cars': {'L1': ['travel', 5]}, 'recall': 5}{'cars': {'L1': ['travel', 5]}, 'recall': 5}Passed
boundary: smoke at both recall floors{'cars': {'L1': ['travel', 0]}, 'recall': 0}{'cars': {'L1': ['travel', 0]}, 'recall': 0}Passed
sampled regression 1{'cars': {'L1': ['nonstop', 0], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 1], 'L2': ['travel', 0], 'L3': ['nonstop', 0]}, 'recall': 0}Failed
control 4{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['nonstop', 0]}, 'recall': 0}Passed
control 10{'cars': {'L1': ['travel', 1]}, 'recall': 1}{'cars': {'L1': ['travel', 1]}, 'recall': 1}Passed

SHA-256 / 4fe2e2f5d6cff987e8713da434124fe36ef5b44d7c17b584949c88b6d3c7dfb6

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') == (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]}}), ('sampled regression 16', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [0, 2, 0], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1]}}), ('sampled regression 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]}}), ('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]}}), ('sampled regression 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 10', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': False, 'dir': 'idle'}]}, {'recall': 1, 'cars': {'L1': ['travel', 1]}})], [('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]}}), ('sampled regression 79', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L3', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 5], 'L3': ['reverse', 0]}}), ('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]}}), ('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]}}), ('boundary: 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]}}), ('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]}}), ('sampled regression 52', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1]}}), ('sampled regression 79', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L3', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 5], 'L3': ['reverse', 0]}}), ('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]}}), ('boundary: 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]}}), ('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: 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]}}), ('sampled regression 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]}}), ('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]}}), ('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]}}), ('control 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]}}), ('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 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]}}), ('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]}}), ('sampled regression 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': ['nonstop', 0]}, 'recall': 0}{'cars': {'L1': ['reverse', 0]}, 'recall': 0}Failed
sampled regression 16{'cars': {'L1': ['reverse', 1]}, 'recall': 0}{'cars': {'L1': ['reverse', 1]}, 'recall': 0}Passed
sampled regression 7{'cars': {'L1': ['reverse', 8], 'L2': ['nonstop', 1]}, 'recall': 1}{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}Failed
boundary: smoke at the designated floor{'cars': {'L1': ['travel', 5]}, 'recall': 5}{'cars': {'L1': ['travel', 5]}, 'recall': 5}Passed
boundary: smoke at both recall floors{'cars': {'L1': ['travel', 0]}, 'recall': 0}{'cars': {'L1': ['travel', 0]}, 'recall': 0}Passed
sampled regression 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 10{'cars': {'L1': ['travel', 1]}, 'recall': 1}{'cars': {'L1': ['travel', 1]}, 'recall': 1}Passed

SHA-256 / d51b843b0c03912ddf14b444c72d38d1aad6e382b3b64128c1e9b26ae2e8d3ca

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]}}), ('sampled regression 16', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [0, 2, 0], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1]}}), ('sampled regression 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]}}), ('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]}}), ('sampled regression 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 10', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [0], 'cars': [{'id': 'L1', 'floor': 11, 'moving': False, 'dir': 'idle'}]}, {'recall': 1, 'cars': {'L1': ['travel', 1]}})], [('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]}}), ('sampled regression 79', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L3', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 5], 'L3': ['reverse', 0]}}), ('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]}}), ('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]}}), ('boundary: 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]}}), ('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]}}), ('sampled regression 52', {'designated': 0, 'alternate': 2, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 0, 'moving': True, 'dir': 'up'}]}, {'recall': 0, 'cars': {'L1': ['reverse', 1]}}), ('sampled regression 79', {'designated': 0, 'alternate': 1, 'top': 11, 'smoke': [], 'cars': [{'id': 'L1', 'floor': 7, 'moving': True, 'dir': 'down'}, {'id': 'L2', 'floor': 4, 'moving': True, 'dir': 'up'}, {'id': 'L3', 'floor': 0, 'moving': True, 'dir': 'down'}]}, {'recall': 0, 'cars': {'L1': ['nonstop', 0], 'L2': ['reverse', 5], 'L3': ['reverse', 0]}}), ('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]}}), ('boundary: 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]}}), ('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: 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]}}), ('sampled regression 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]}}), ('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]}}), ('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]}}), ('control 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]}}), ('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 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]}}), ('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]}}), ('sampled regression 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
sampled regression 16{'cars': {'L1': ['reverse', 1]}, 'recall': 0}{'cars': {'L1': ['reverse', 1]}, 'recall': 0}Passed
sampled regression 7{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}{'cars': {'L1': ['reverse', 8], 'L2': ['reverse', 0]}, 'recall': 1}Passed
boundary: smoke at the designated floor{'cars': {'L1': ['travel', 5]}, 'recall': 5}{'cars': {'L1': ['travel', 5]}, 'recall': 5}Passed
boundary: smoke at both recall floors{'cars': {'L1': ['travel', 0]}, 'recall': 0}{'cars': {'L1': ['travel', 0]}, 'recall': 0}Passed
sampled regression 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 10{'cars': {'L1': ['travel', 1]}, 'recall': 1}{'cars': {'L1': ['travel', 1]}, 'recall': 1}Passed

SHA-256 / eb5c33cb2e93e7c534442eb86f3a398f64f69f67a9259d4517e53fa1d1d710f6

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

Case digest / 74da393ce606c782b2f74033cb08523d796e9215264e746d0fd3410a4431e551