FAILURE MAP
← Case archive

FA-67356 / Elevator dispatch scheduling / Open access

Directional collective next stop: reversal fallback · case 01

A car with calls only behind it goes idle instead of reversing.

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

ROOT CAUSE

No reversal is attempted when nothing lies ahead.

VERIFIED REPAIR

When nothing is ahead, try the opposite direction.

Unsuccessful approach: Always falling back to down leaves a down-travelling car idle with calls above.

Case contract

A car stopped at floor with direction up, down or idle chooses its next stop. Travelling up it stops at the nearest car call or up hall call above; failing that it runs to the highest down hall call above; failing that it reverses and applies the mirrored rule downwards (nearest car call or down call below, else lowest up call below). An idle car heads towards the nearest call other than its own floor (ties to the lower floor). Returns [floor, travel direction] or [None, idle].

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):
    f = x['floor']
    cc = set(x['car_calls'])
    up = set(x['hall_up'])
    dn = set(x['hall_down'])
    def ahead(sd):
        if sd == 'up':
            same = [c for c in cc | up if c > f]
            if same:
                return [min(same), 'up']
            opp = [c for c in dn if c > f]
            if opp:
                return [max(opp), 'up']
        else:
            same = [c for c in cc | dn if c < f]
            if same:
                return [max(same), 'down']
            opp = [c for c in up if c < f]
            if opp:
                return [min(opp), 'down']
        return None
    d = x['dir']
    if d == 'idle':
        allc = [c for c in sorted(cc | up | dn, key=lambda c: (abs(c - f), c)) if c != f]
        if not allc:
            return [None, 'idle']
        d = 'up' if allc[0] > f else 'down'
    r = ahead(d)
    if r is None:
        pass
    return r if r is not None else [None, 'idle']
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 5', {'floor': 11, 'dir': 'up', 'car_calls': [8], 'hall_up': [10], 'hall_down': [10]}, [10, 'down']), ('sampled regression 1', {'floor': 1, 'dir': 'down', 'car_calls': [7, 4, 8], 'hall_up': [], 'hall_down': [10, 5, 3]}, [4, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('boundary: car call ahead of an up call', {'floor': 2, 'dir': 'up', 'car_calls': [6], 'hall_up': [4], 'hall_down': []}, [4, 'up']), ('control 4', {'floor': 4, 'dir': 'down', 'car_calls': [10], 'hall_up': [6, 0], 'hall_down': [10]}, [0, 'down']), ('control 7', {'floor': 3, 'dir': 'down', 'car_calls': [7, 3], 'hall_up': [10], 'hall_down': [2, 4, 7]}, [2, 'down']), ('control 10', {'floor': 10, 'dir': 'down', 'car_calls': [], 'hall_up': [], 'hall_down': [3]}, [3, 'down'])], [('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 53', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [7, 3, 1], 'hall_down': []}, [1, 'up']), ('sampled regression 59', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [4, 10, 1], 'hall_down': []}, [1, 'up']), ('boundary: highest down call is the reversal', {'floor': 1, 'dir': 'up', 'car_calls': [], 'hall_up': [], 'hall_down': [4, 9]}, [9, 'up']), ('control 12', {'floor': 5, 'dir': 'idle', 'car_calls': [6, 9], 'hall_up': [6, 10], 'hall_down': [6, 2, 7]}, [6, 'up']), ('control 15', {'floor': 3, 'dir': 'down', 'car_calls': [], 'hall_up': [2, 4, 10], 'hall_down': [6, 5, 8]}, [2, 'down']), ('control 18', {'floor': 1, 'dir': 'idle', 'car_calls': [1], 'hall_up': [10, 1, 2], 'hall_down': [5]}, [2, 'up'])], [('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 1', {'floor': 1, 'dir': 'down', 'car_calls': [7, 4, 8], 'hall_up': [], 'hall_down': [10, 5, 3]}, [4, 'up']), ('sampled regression 39', {'floor': 0, 'dir': 'down', 'car_calls': [9, 2], 'hall_up': [5], 'hall_down': [6, 1, 7]}, [2, 'up']), ('boundary: idle car nearest call above', {'floor': 5, 'dir': 'idle', 'car_calls': [], 'hall_up': [6], 'hall_down': [1]}, [6, 'up']), ('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('control 23', {'floor': 1, 'dir': 'idle', 'car_calls': [], 'hall_up': [5], 'hall_down': []}, [5, 'up']), ('control 26', {'floor': 7, 'dir': 'idle', 'car_calls': [9], 'hall_up': [3], 'hall_down': [10, 5, 9]}, [5, 'down']), ('control 29', {'floor': 4, 'dir': 'down', 'car_calls': [2], 'hall_up': [5], 'hall_down': []}, [2, 'down'])], [('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 44', {'floor': 1, 'dir': 'down', 'car_calls': [8, 1, 7], 'hall_up': [7], 'hall_down': [4, 7]}, [7, 'up']), ('boundary: idle car with a call at its own floor', {'floor': 4, 'dir': 'idle', 'car_calls': [], 'hall_up': [4], 'hall_down': [8]}, [8, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('control 34', {'floor': 11, 'dir': 'down', 'car_calls': [10], 'hall_up': [4, 5], 'hall_down': []}, [10, 'down']), ('control 37', {'floor': 5, 'dir': 'idle', 'car_calls': [], 'hall_up': [0, 1], 'hall_down': [1, 7]}, [7, 'up']), ('control 40', {'floor': 9, 'dir': 'up', 'car_calls': [1, 9], 'hall_up': [8, 10, 5], 'hall_down': []}, [10, 'up'])], [('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('sampled regression 53', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [7, 3, 1], 'hall_down': []}, [1, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('boundary: car call ahead of an up call', {'floor': 2, 'dir': 'up', 'car_calls': [6], 'hall_up': [4], 'hall_down': []}, [4, 'up']), ('control 45', {'floor': 9, 'dir': 'idle', 'car_calls': [9, 0], 'hall_up': [7], 'hall_down': [2, 6, 1]}, [6, 'down']), ('control 48', {'floor': 4, 'dir': 'down', 'car_calls': [9], 'hall_up': [4, 2, 1], 'hall_down': []}, [1, 'down']), ('control 51', {'floor': 6, 'dir': 'idle', 'car_calls': [6], 'hall_up': [9], 'hall_down': []}, [9, 'up'])]]
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: down car with nothing below[None, 'idle'][9, 'up']Failed
sampled regression 5[None, 'idle'][10, 'down']Failed
sampled regression 1[None, 'idle'][4, 'up']Failed
boundary: down call passed on the way up[8, 'up'][8, 'up']Passed
boundary: car call ahead of an up call[4, 'up'][4, 'up']Passed
control 4[0, 'down'][0, 'down']Passed
control 7[2, 'down'][2, 'down']Passed
control 10[3, 'down'][3, 'down']Passed

SHA-256 / 5d646d654956d22db2f34d731c0f51f46addbad34a62937e3e6c939a1ef0f403

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    f = x['floor']
    cc = set(x['car_calls'])
    up = set(x['hall_up'])
    dn = set(x['hall_down'])
    def ahead(sd):
        if sd == 'up':
            same = [c for c in cc | up if c > f]
            if same:
                return [min(same), 'up']
            opp = [c for c in dn if c > f]
            if opp:
                return [max(opp), 'up']
        else:
            same = [c for c in cc | dn if c < f]
            if same:
                return [max(same), 'down']
            opp = [c for c in up if c < f]
            if opp:
                return [min(opp), 'down']
        return None
    d = x['dir']
    if d == 'idle':
        allc = [c for c in sorted(cc | up | dn, key=lambda c: (abs(c - f), c)) if c != f]
        if not allc:
            return [None, 'idle']
        d = 'up' if allc[0] > f else 'down'
    r = ahead(d)
    if r is None:
        r = ahead('down')
    return r if r is not None else [None, 'idle']
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 5', {'floor': 11, 'dir': 'up', 'car_calls': [8], 'hall_up': [10], 'hall_down': [10]}, [10, 'down']), ('sampled regression 1', {'floor': 1, 'dir': 'down', 'car_calls': [7, 4, 8], 'hall_up': [], 'hall_down': [10, 5, 3]}, [4, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('boundary: car call ahead of an up call', {'floor': 2, 'dir': 'up', 'car_calls': [6], 'hall_up': [4], 'hall_down': []}, [4, 'up']), ('control 4', {'floor': 4, 'dir': 'down', 'car_calls': [10], 'hall_up': [6, 0], 'hall_down': [10]}, [0, 'down']), ('control 7', {'floor': 3, 'dir': 'down', 'car_calls': [7, 3], 'hall_up': [10], 'hall_down': [2, 4, 7]}, [2, 'down']), ('control 10', {'floor': 10, 'dir': 'down', 'car_calls': [], 'hall_up': [], 'hall_down': [3]}, [3, 'down'])], [('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 53', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [7, 3, 1], 'hall_down': []}, [1, 'up']), ('sampled regression 59', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [4, 10, 1], 'hall_down': []}, [1, 'up']), ('boundary: highest down call is the reversal', {'floor': 1, 'dir': 'up', 'car_calls': [], 'hall_up': [], 'hall_down': [4, 9]}, [9, 'up']), ('control 12', {'floor': 5, 'dir': 'idle', 'car_calls': [6, 9], 'hall_up': [6, 10], 'hall_down': [6, 2, 7]}, [6, 'up']), ('control 15', {'floor': 3, 'dir': 'down', 'car_calls': [], 'hall_up': [2, 4, 10], 'hall_down': [6, 5, 8]}, [2, 'down']), ('control 18', {'floor': 1, 'dir': 'idle', 'car_calls': [1], 'hall_up': [10, 1, 2], 'hall_down': [5]}, [2, 'up'])], [('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 1', {'floor': 1, 'dir': 'down', 'car_calls': [7, 4, 8], 'hall_up': [], 'hall_down': [10, 5, 3]}, [4, 'up']), ('sampled regression 39', {'floor': 0, 'dir': 'down', 'car_calls': [9, 2], 'hall_up': [5], 'hall_down': [6, 1, 7]}, [2, 'up']), ('boundary: idle car nearest call above', {'floor': 5, 'dir': 'idle', 'car_calls': [], 'hall_up': [6], 'hall_down': [1]}, [6, 'up']), ('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('control 23', {'floor': 1, 'dir': 'idle', 'car_calls': [], 'hall_up': [5], 'hall_down': []}, [5, 'up']), ('control 26', {'floor': 7, 'dir': 'idle', 'car_calls': [9], 'hall_up': [3], 'hall_down': [10, 5, 9]}, [5, 'down']), ('control 29', {'floor': 4, 'dir': 'down', 'car_calls': [2], 'hall_up': [5], 'hall_down': []}, [2, 'down'])], [('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 44', {'floor': 1, 'dir': 'down', 'car_calls': [8, 1, 7], 'hall_up': [7], 'hall_down': [4, 7]}, [7, 'up']), ('boundary: idle car with a call at its own floor', {'floor': 4, 'dir': 'idle', 'car_calls': [], 'hall_up': [4], 'hall_down': [8]}, [8, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('control 34', {'floor': 11, 'dir': 'down', 'car_calls': [10], 'hall_up': [4, 5], 'hall_down': []}, [10, 'down']), ('control 37', {'floor': 5, 'dir': 'idle', 'car_calls': [], 'hall_up': [0, 1], 'hall_down': [1, 7]}, [7, 'up']), ('control 40', {'floor': 9, 'dir': 'up', 'car_calls': [1, 9], 'hall_up': [8, 10, 5], 'hall_down': []}, [10, 'up'])], [('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('sampled regression 53', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [7, 3, 1], 'hall_down': []}, [1, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('boundary: car call ahead of an up call', {'floor': 2, 'dir': 'up', 'car_calls': [6], 'hall_up': [4], 'hall_down': []}, [4, 'up']), ('control 45', {'floor': 9, 'dir': 'idle', 'car_calls': [9, 0], 'hall_up': [7], 'hall_down': [2, 6, 1]}, [6, 'down']), ('control 48', {'floor': 4, 'dir': 'down', 'car_calls': [9], 'hall_up': [4, 2, 1], 'hall_down': []}, [1, 'down']), ('control 51', {'floor': 6, 'dir': 'idle', 'car_calls': [6], 'hall_up': [9], 'hall_down': []}, [9, 'up'])]]
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: down car with nothing below[None, 'idle'][9, 'up']Failed
sampled regression 5[10, 'down'][10, 'down']Passed
sampled regression 1[None, 'idle'][4, 'up']Failed
boundary: down call passed on the way up[8, 'up'][8, 'up']Passed
boundary: car call ahead of an up call[4, 'up'][4, 'up']Passed
control 4[0, 'down'][0, 'down']Passed
control 7[2, 'down'][2, 'down']Passed
control 10[3, 'down'][3, 'down']Passed

SHA-256 / 6eed37aa21fea5721651d7edb7a6b0fe4053484bc49773d772b5897f04cba4af

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    f = x['floor']
    cc = set(x['car_calls'])
    up = set(x['hall_up'])
    dn = set(x['hall_down'])
    def ahead(sd):
        if sd == 'up':
            same = [c for c in cc | up if c > f]
            if same:
                return [min(same), 'up']
            opp = [c for c in dn if c > f]
            if opp:
                return [max(opp), 'up']
        else:
            same = [c for c in cc | dn if c < f]
            if same:
                return [max(same), 'down']
            opp = [c for c in up if c < f]
            if opp:
                return [min(opp), 'down']
        return None
    d = x['dir']
    if d == 'idle':
        allc = [c for c in sorted(cc | up | dn, key=lambda c: (abs(c - f), c)) if c != f]
        if not allc:
            return [None, 'idle']
        d = 'up' if allc[0] > f else 'down'
    r = ahead(d)
    if r is None:
        r = ahead('down' if d == 'up' else 'up')
    return r if r is not None else [None, 'idle']
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 5', {'floor': 11, 'dir': 'up', 'car_calls': [8], 'hall_up': [10], 'hall_down': [10]}, [10, 'down']), ('sampled regression 1', {'floor': 1, 'dir': 'down', 'car_calls': [7, 4, 8], 'hall_up': [], 'hall_down': [10, 5, 3]}, [4, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('boundary: car call ahead of an up call', {'floor': 2, 'dir': 'up', 'car_calls': [6], 'hall_up': [4], 'hall_down': []}, [4, 'up']), ('control 4', {'floor': 4, 'dir': 'down', 'car_calls': [10], 'hall_up': [6, 0], 'hall_down': [10]}, [0, 'down']), ('control 7', {'floor': 3, 'dir': 'down', 'car_calls': [7, 3], 'hall_up': [10], 'hall_down': [2, 4, 7]}, [2, 'down']), ('control 10', {'floor': 10, 'dir': 'down', 'car_calls': [], 'hall_up': [], 'hall_down': [3]}, [3, 'down'])], [('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 53', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [7, 3, 1], 'hall_down': []}, [1, 'up']), ('sampled regression 59', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [4, 10, 1], 'hall_down': []}, [1, 'up']), ('boundary: highest down call is the reversal', {'floor': 1, 'dir': 'up', 'car_calls': [], 'hall_up': [], 'hall_down': [4, 9]}, [9, 'up']), ('control 12', {'floor': 5, 'dir': 'idle', 'car_calls': [6, 9], 'hall_up': [6, 10], 'hall_down': [6, 2, 7]}, [6, 'up']), ('control 15', {'floor': 3, 'dir': 'down', 'car_calls': [], 'hall_up': [2, 4, 10], 'hall_down': [6, 5, 8]}, [2, 'down']), ('control 18', {'floor': 1, 'dir': 'idle', 'car_calls': [1], 'hall_up': [10, 1, 2], 'hall_down': [5]}, [2, 'up'])], [('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 1', {'floor': 1, 'dir': 'down', 'car_calls': [7, 4, 8], 'hall_up': [], 'hall_down': [10, 5, 3]}, [4, 'up']), ('sampled regression 39', {'floor': 0, 'dir': 'down', 'car_calls': [9, 2], 'hall_up': [5], 'hall_down': [6, 1, 7]}, [2, 'up']), ('boundary: idle car nearest call above', {'floor': 5, 'dir': 'idle', 'car_calls': [], 'hall_up': [6], 'hall_down': [1]}, [6, 'up']), ('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('control 23', {'floor': 1, 'dir': 'idle', 'car_calls': [], 'hall_up': [5], 'hall_down': []}, [5, 'up']), ('control 26', {'floor': 7, 'dir': 'idle', 'car_calls': [9], 'hall_up': [3], 'hall_down': [10, 5, 9]}, [5, 'down']), ('control 29', {'floor': 4, 'dir': 'down', 'car_calls': [2], 'hall_up': [5], 'hall_down': []}, [2, 'down'])], [('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('sampled regression 44', {'floor': 1, 'dir': 'down', 'car_calls': [8, 1, 7], 'hall_up': [7], 'hall_down': [4, 7]}, [7, 'up']), ('boundary: idle car with a call at its own floor', {'floor': 4, 'dir': 'idle', 'car_calls': [], 'hall_up': [4], 'hall_down': [8]}, [8, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('control 34', {'floor': 11, 'dir': 'down', 'car_calls': [10], 'hall_up': [4, 5], 'hall_down': []}, [10, 'down']), ('control 37', {'floor': 5, 'dir': 'idle', 'car_calls': [], 'hall_up': [0, 1], 'hall_down': [1, 7]}, [7, 'up']), ('control 40', {'floor': 9, 'dir': 'up', 'car_calls': [1, 9], 'hall_up': [8, 10, 5], 'hall_down': []}, [10, 'up'])], [('regression: down car with nothing below', {'floor': 6, 'dir': 'down', 'car_calls': [], 'hall_up': [9], 'hall_down': []}, [9, 'up']), ('regression: up car with nothing above', {'floor': 6, 'dir': 'up', 'car_calls': [2], 'hall_up': [1], 'hall_down': []}, [2, 'down']), ('sampled regression 53', {'floor': 0, 'dir': 'down', 'car_calls': [3], 'hall_up': [7, 3, 1], 'hall_down': []}, [1, 'up']), ('boundary: down call passed on the way up', {'floor': 3, 'dir': 'up', 'car_calls': [8], 'hall_up': [], 'hall_down': [5]}, [8, 'up']), ('boundary: car call ahead of an up call', {'floor': 2, 'dir': 'up', 'car_calls': [6], 'hall_up': [4], 'hall_down': []}, [4, 'up']), ('control 45', {'floor': 9, 'dir': 'idle', 'car_calls': [9, 0], 'hall_up': [7], 'hall_down': [2, 6, 1]}, [6, 'down']), ('control 48', {'floor': 4, 'dir': 'down', 'car_calls': [9], 'hall_up': [4, 2, 1], 'hall_down': []}, [1, 'down']), ('control 51', {'floor': 6, 'dir': 'idle', 'car_calls': [6], 'hall_up': [9], 'hall_down': []}, [9, 'up'])]]
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: down car with nothing below[9, 'up'][9, 'up']Passed
sampled regression 5[10, 'down'][10, 'down']Passed
sampled regression 1[4, 'up'][4, 'up']Passed
boundary: down call passed on the way up[8, 'up'][8, 'up']Passed
boundary: car call ahead of an up call[4, 'up'][4, 'up']Passed
control 4[0, 'down'][0, 'down']Passed
control 7[2, 'down'][2, 'down']Passed
control 10[3, 'down'][3, 'down']Passed

SHA-256 / 47474e5d13cb0903d9084a141e2b1bdba2b553365cd7f7d9de6eeb0f9e1163c9

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

Case digest / a482133f39f0c20e0faf20f37ab8ec037cfeb372e3fe23f87c3f6300c85163c0