FAILURE MAP
← Case archive

FA-67496 / Elevator dispatch scheduling / Open access

Car call registration and cancellation: door reopen condition · case 01

Pressing the current floor with doors closed is swallowed instead of registered.

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

ROOT CAUSE

The reopen branch ignores whether the doors are open.

VERIFIED REPAIR

Reopen only when the doors are open at the pressed floor.

Unsuccessful approach: Requiring no other calls registers a reopen request as a call once any call exists.

Case contract

Car buttons are processed in order. Pressing the current floor with doors open reopens the doors. Floors outside 0..floors-1 are invalid. Pressing an already registered floor cancels it, unless it is the only call (kept). With load under 20 kg, a new call is refused as nuisance once five calls are registered. Otherwise the call is registered. Return the sorted calls and the per-press log.

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):
    calls = []
    log = []
    for f in x['presses']:
        if f == x['floor']:
            log.append('reopen')
        elif f < 0 or f >= x['floors']:
            log.append('invalid')
        elif f in calls:
            if len(calls) > 1:
                calls.remove(f)
                log.append('cancelled')
            else:
                log.append('kept')
        elif x['load_kg'] < 20 and len(calls) >= 5:
            log.append('nuisance')
        else:
            calls.append(f)
            log.append('registered')
    return {'calls': sorted(calls), 'log': log}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 3', {'floors': 7, 'floor': 3, 'doors_open': True, 'load_kg': 20, 'presses': [0, 5, 5, 0, 3, 3, -1]}, {'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'reopen', 'reopen', 'invalid']}), ('sampled regression 8', {'floors': 7, 'floor': 0, 'doors_open': False, 'load_kg': 21, 'presses': [1, 0, 0, 6, -1, 5]}, {'calls': [1, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'invalid', 'registered']}), ('control 13', {'floors': 14, 'floor': 12, 'doors_open': True, 'load_kg': 80, 'presses': [8, 0, 1, 12, 1, 13, 2, 5, -1]}, {'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}), ('boundary: own floor with doors open', {'floors': 10, 'floor': 4, 'doors_open': True, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [6], 'log': ['reopen', 'registered']}), ('control 1', {'floors': 12, 'floor': 6, 'doors_open': True, 'load_kg': 19, 'presses': [7, 7, -1, 8, 7]}, {'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}), ('sampled regression 4', {'floors': 7, 'floor': 6, 'doors_open': False, 'load_kg': 19, 'presses': [0, 6, 6, 6, 4, 6]}, {'calls': [0, 4], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'cancelled']}), ('control 7', {'floors': 7, 'floor': 1, 'doors_open': False, 'load_kg': 19, 'presses': [2, 0, 2, 5, 4, 6]}, {'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 13', {'floors': 14, 'floor': 12, 'doors_open': True, 'load_kg': 80, 'presses': [8, 0, 1, 12, 1, 13, 2, 5, -1]}, {'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}), ('sampled regression 39', {'floors': 7, 'floor': 3, 'doors_open': False, 'load_kg': 300, 'presses': [-1, 0, -1, 0, 3, 6, 1]}, {'calls': [0, 1, 3, 6], 'log': ['invalid', 'registered', 'invalid', 'kept', 'registered', 'registered', 'registered']}), ('control 33', {'floors': 11, 'floor': 8, 'doors_open': True, 'load_kg': 15, 'presses': [9, 10, 6, 5, 10, 10, 8, 2, 9]}, {'calls': [2, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'registered', 'cancelled', 'registered', 'reopen', 'registered', 'cancelled']}), ('boundary: basement button that does not exist', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [-1, 3]}, {'calls': [3], 'log': ['invalid', 'registered']}), ('control 12', {'floors': 13, 'floor': 5, 'doors_open': True, 'load_kg': 21, 'presses': [2, 3, 11]}, {'calls': [2, 3, 11], 'log': ['registered', 'registered', 'registered']}), ('sampled regression 15', {'floors': 12, 'floor': 10, 'doors_open': False, 'load_kg': 21, 'presses': [10, 4, 1, 4, 5, 6]}, {'calls': [1, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 18', {'floors': 9, 'floor': 4, 'doors_open': True, 'load_kg': 19, 'presses': [3, 0, 5, 2, 7, 7, -1, 0]}, {'calls': [2, 3, 5], 'log': ['registered', 'registered', 'registered', 'registered', 'registered', 'cancelled', 'invalid', 'cancelled']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 16', {'floors': 14, 'floor': 9, 'doors_open': True, 'load_kg': 20, 'presses': [10, 12, 9, 2, 2]}, {'calls': [10, 12], 'log': ['registered', 'registered', 'reopen', 'registered', 'cancelled']}), ('sampled regression 72', {'floors': 6, 'floor': 4, 'doors_open': False, 'load_kg': 300, 'presses': [3, 0, 2, 0, 4]}, {'calls': [2, 3, 4], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered']}), ('control 46', {'floors': 10, 'floor': 3, 'doors_open': True, 'load_kg': 80, 'presses': [0, 9, 4, 7, 3, 6, 9, 7, 9]}, {'calls': [0, 4, 6, 9], 'log': ['registered', 'registered', 'registered', 'registered', 'reopen', 'registered', 'cancelled', 'cancelled', 'registered']}), ('boundary: double press cancels', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [3, 5, 3]}, {'calls': [5], 'log': ['registered', 'registered', 'cancelled']}), ('sampled regression 23', {'floors': 14, 'floor': 2, 'doors_open': False, 'load_kg': 15, 'presses': [2, 14, 1, 0, -1, 14, 5, 13]}, {'calls': [0, 1, 2, 5, 13], 'log': ['registered', 'invalid', 'registered', 'registered', 'invalid', 'invalid', 'registered', 'registered']}), ('control 26', {'floors': 10, 'floor': 9, 'doors_open': True, 'load_kg': 15, 'presses': [2, 4, 5, 9, 6, 1, 7, 9]}, {'calls': [1, 2, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'registered', 'nuisance', 'reopen']}), ('control 29', {'floors': 10, 'floor': 8, 'doors_open': False, 'load_kg': 20, 'presses': [10, 0, 1]}, {'calls': [0, 1], 'log': ['invalid', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 26', {'floors': 10, 'floor': 9, 'doors_open': True, 'load_kg': 15, 'presses': [2, 4, 5, 9, 6, 1, 7, 9]}, {'calls': [1, 2, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'registered', 'nuisance', 'reopen']}), ('sampled regression 15', {'floors': 12, 'floor': 10, 'doors_open': False, 'load_kg': 21, 'presses': [10, 4, 1, 4, 5, 6]}, {'calls': [1, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 63', {'floors': 13, 'floor': 3, 'doors_open': True, 'load_kg': 80, 'presses': [3, 3, 0, 3, 5]}, {'calls': [0, 5], 'log': ['reopen', 'reopen', 'registered', 'reopen', 'registered']}), ('boundary: cancel an earlier call', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [3, 5, 7, 5]}, {'calls': [3, 7], 'log': ['registered', 'registered', 'registered', 'cancelled']}), ('sampled regression 34', {'floors': 11, 'floor': 9, 'doors_open': False, 'load_kg': 0, 'presses': [10, 0, 5, 6, 0, 5, 9, 10, 9]}, {'calls': [6], 'log': ['registered', 'registered', 'registered', 'registered', 'cancelled', 'cancelled', 'registered', 'cancelled', 'cancelled']}), ('control 37', {'floors': 10, 'floor': 7, 'doors_open': True, 'load_kg': 80, 'presses': [10, 0, -1, -1, 5]}, {'calls': [0, 5], 'log': ['invalid', 'registered', 'invalid', 'invalid', 'registered']}), ('control 40', {'floors': 13, 'floor': 0, 'doors_open': True, 'load_kg': 15, 'presses': [0, -1, 8, 3]}, {'calls': [3, 8], 'log': ['reopen', 'invalid', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 28', {'floors': 11, 'floor': 4, 'doors_open': True, 'load_kg': 21, 'presses': [9, 7, 9, 4, 10, 1, -1, 10]}, {'calls': [1, 7], 'log': ['registered', 'registered', 'cancelled', 'reopen', 'registered', 'registered', 'invalid', 'cancelled']}), ('sampled regression 60', {'floors': 12, 'floor': 11, 'doors_open': False, 'load_kg': 21, 'presses': [11, 3]}, {'calls': [3, 11], 'log': ['registered', 'registered']}), ('control 78', {'floors': 14, 'floor': 9, 'doors_open': True, 'load_kg': 0, 'presses': [8, 3, 2, 9, 13, 9, 5, 6, 0]}, {'calls': [2, 3, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'reopen', 'registered', 'nuisance', 'nuisance']}), ('boundary: exactly twenty kilograms', {'floors': 12, 'floor': 0, 'doors_open': False, 'load_kg': 20, 'presses': [1, 2, 3, 4, 5, 6]}, {'calls': [1, 2, 3, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'registered', 'registered', 'registered']}), ('control 45', {'floors': 10, 'floor': 6, 'doors_open': False, 'load_kg': 20, 'presses': [10, 9, 0, 0, 5, 7, 2, 3, 3]}, {'calls': [2, 5, 7, 9], 'log': ['invalid', 'registered', 'registered', 'cancelled', 'registered', 'registered', 'registered', 'registered', 'cancelled']}), ('sampled regression 48', {'floors': 10, 'floor': 2, 'doors_open': False, 'load_kg': 0, 'presses': [6, 10, 7, 2, 7, 4, 9]}, {'calls': [2, 4, 6, 9], 'log': ['registered', 'invalid', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 51', {'floors': 15, 'floor': 9, 'doors_open': True, 'load_kg': 21, 'presses': [13, 6, 9, 10, 9]}, {'calls': [6, 10, 13], 'log': ['registered', 'registered', 'reopen', 'registered', 'reopen']})]]
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: own floor with doors closed{'calls': [6], 'log': ['reopen', 'registered']}{'calls': [4, 6], 'log': ['registered', 'registered']}Failed
control 3{'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'reopen', 'reopen', 'invalid']}{'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'reopen', 'reopen', 'invalid']}Passed
sampled regression 8{'calls': [1, 5, 6], 'log': ['registered', 'reopen', 'reopen', 'registered', 'invalid', 'registered']}{'calls': [1, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'invalid', 'registered']}Failed
control 13{'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}{'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}Passed
boundary: own floor with doors open{'calls': [6], 'log': ['reopen', 'registered']}{'calls': [6], 'log': ['reopen', 'registered']}Passed
control 1{'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}{'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}Passed
sampled regression 4{'calls': [0, 4], 'log': ['registered', 'reopen', 'reopen', 'reopen', 'registered', 'reopen']}{'calls': [0, 4], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'cancelled']}Failed
control 7{'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']}{'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']}Passed

SHA-256 / 5a92802a6dbe6e6aff8c9409a7e5fc30351307d98cd255a80992467d2e0a028c

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    calls = []
    log = []
    for f in x['presses']:
        if f == x['floor'] and x['doors_open'] and not calls:
            log.append('reopen')
        elif f < 0 or f >= x['floors']:
            log.append('invalid')
        elif f in calls:
            if len(calls) > 1:
                calls.remove(f)
                log.append('cancelled')
            else:
                log.append('kept')
        elif x['load_kg'] < 20 and len(calls) >= 5:
            log.append('nuisance')
        else:
            calls.append(f)
            log.append('registered')
    return {'calls': sorted(calls), 'log': log}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 3', {'floors': 7, 'floor': 3, 'doors_open': True, 'load_kg': 20, 'presses': [0, 5, 5, 0, 3, 3, -1]}, {'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'reopen', 'reopen', 'invalid']}), ('sampled regression 8', {'floors': 7, 'floor': 0, 'doors_open': False, 'load_kg': 21, 'presses': [1, 0, 0, 6, -1, 5]}, {'calls': [1, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'invalid', 'registered']}), ('control 13', {'floors': 14, 'floor': 12, 'doors_open': True, 'load_kg': 80, 'presses': [8, 0, 1, 12, 1, 13, 2, 5, -1]}, {'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}), ('boundary: own floor with doors open', {'floors': 10, 'floor': 4, 'doors_open': True, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [6], 'log': ['reopen', 'registered']}), ('control 1', {'floors': 12, 'floor': 6, 'doors_open': True, 'load_kg': 19, 'presses': [7, 7, -1, 8, 7]}, {'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}), ('sampled regression 4', {'floors': 7, 'floor': 6, 'doors_open': False, 'load_kg': 19, 'presses': [0, 6, 6, 6, 4, 6]}, {'calls': [0, 4], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'cancelled']}), ('control 7', {'floors': 7, 'floor': 1, 'doors_open': False, 'load_kg': 19, 'presses': [2, 0, 2, 5, 4, 6]}, {'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 13', {'floors': 14, 'floor': 12, 'doors_open': True, 'load_kg': 80, 'presses': [8, 0, 1, 12, 1, 13, 2, 5, -1]}, {'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}), ('sampled regression 39', {'floors': 7, 'floor': 3, 'doors_open': False, 'load_kg': 300, 'presses': [-1, 0, -1, 0, 3, 6, 1]}, {'calls': [0, 1, 3, 6], 'log': ['invalid', 'registered', 'invalid', 'kept', 'registered', 'registered', 'registered']}), ('control 33', {'floors': 11, 'floor': 8, 'doors_open': True, 'load_kg': 15, 'presses': [9, 10, 6, 5, 10, 10, 8, 2, 9]}, {'calls': [2, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'registered', 'cancelled', 'registered', 'reopen', 'registered', 'cancelled']}), ('boundary: basement button that does not exist', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [-1, 3]}, {'calls': [3], 'log': ['invalid', 'registered']}), ('control 12', {'floors': 13, 'floor': 5, 'doors_open': True, 'load_kg': 21, 'presses': [2, 3, 11]}, {'calls': [2, 3, 11], 'log': ['registered', 'registered', 'registered']}), ('sampled regression 15', {'floors': 12, 'floor': 10, 'doors_open': False, 'load_kg': 21, 'presses': [10, 4, 1, 4, 5, 6]}, {'calls': [1, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 18', {'floors': 9, 'floor': 4, 'doors_open': True, 'load_kg': 19, 'presses': [3, 0, 5, 2, 7, 7, -1, 0]}, {'calls': [2, 3, 5], 'log': ['registered', 'registered', 'registered', 'registered', 'registered', 'cancelled', 'invalid', 'cancelled']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 16', {'floors': 14, 'floor': 9, 'doors_open': True, 'load_kg': 20, 'presses': [10, 12, 9, 2, 2]}, {'calls': [10, 12], 'log': ['registered', 'registered', 'reopen', 'registered', 'cancelled']}), ('sampled regression 72', {'floors': 6, 'floor': 4, 'doors_open': False, 'load_kg': 300, 'presses': [3, 0, 2, 0, 4]}, {'calls': [2, 3, 4], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered']}), ('control 46', {'floors': 10, 'floor': 3, 'doors_open': True, 'load_kg': 80, 'presses': [0, 9, 4, 7, 3, 6, 9, 7, 9]}, {'calls': [0, 4, 6, 9], 'log': ['registered', 'registered', 'registered', 'registered', 'reopen', 'registered', 'cancelled', 'cancelled', 'registered']}), ('boundary: double press cancels', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [3, 5, 3]}, {'calls': [5], 'log': ['registered', 'registered', 'cancelled']}), ('sampled regression 23', {'floors': 14, 'floor': 2, 'doors_open': False, 'load_kg': 15, 'presses': [2, 14, 1, 0, -1, 14, 5, 13]}, {'calls': [0, 1, 2, 5, 13], 'log': ['registered', 'invalid', 'registered', 'registered', 'invalid', 'invalid', 'registered', 'registered']}), ('control 26', {'floors': 10, 'floor': 9, 'doors_open': True, 'load_kg': 15, 'presses': [2, 4, 5, 9, 6, 1, 7, 9]}, {'calls': [1, 2, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'registered', 'nuisance', 'reopen']}), ('control 29', {'floors': 10, 'floor': 8, 'doors_open': False, 'load_kg': 20, 'presses': [10, 0, 1]}, {'calls': [0, 1], 'log': ['invalid', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 26', {'floors': 10, 'floor': 9, 'doors_open': True, 'load_kg': 15, 'presses': [2, 4, 5, 9, 6, 1, 7, 9]}, {'calls': [1, 2, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'registered', 'nuisance', 'reopen']}), ('sampled regression 15', {'floors': 12, 'floor': 10, 'doors_open': False, 'load_kg': 21, 'presses': [10, 4, 1, 4, 5, 6]}, {'calls': [1, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 63', {'floors': 13, 'floor': 3, 'doors_open': True, 'load_kg': 80, 'presses': [3, 3, 0, 3, 5]}, {'calls': [0, 5], 'log': ['reopen', 'reopen', 'registered', 'reopen', 'registered']}), ('boundary: cancel an earlier call', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [3, 5, 7, 5]}, {'calls': [3, 7], 'log': ['registered', 'registered', 'registered', 'cancelled']}), ('sampled regression 34', {'floors': 11, 'floor': 9, 'doors_open': False, 'load_kg': 0, 'presses': [10, 0, 5, 6, 0, 5, 9, 10, 9]}, {'calls': [6], 'log': ['registered', 'registered', 'registered', 'registered', 'cancelled', 'cancelled', 'registered', 'cancelled', 'cancelled']}), ('control 37', {'floors': 10, 'floor': 7, 'doors_open': True, 'load_kg': 80, 'presses': [10, 0, -1, -1, 5]}, {'calls': [0, 5], 'log': ['invalid', 'registered', 'invalid', 'invalid', 'registered']}), ('control 40', {'floors': 13, 'floor': 0, 'doors_open': True, 'load_kg': 15, 'presses': [0, -1, 8, 3]}, {'calls': [3, 8], 'log': ['reopen', 'invalid', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 28', {'floors': 11, 'floor': 4, 'doors_open': True, 'load_kg': 21, 'presses': [9, 7, 9, 4, 10, 1, -1, 10]}, {'calls': [1, 7], 'log': ['registered', 'registered', 'cancelled', 'reopen', 'registered', 'registered', 'invalid', 'cancelled']}), ('sampled regression 60', {'floors': 12, 'floor': 11, 'doors_open': False, 'load_kg': 21, 'presses': [11, 3]}, {'calls': [3, 11], 'log': ['registered', 'registered']}), ('control 78', {'floors': 14, 'floor': 9, 'doors_open': True, 'load_kg': 0, 'presses': [8, 3, 2, 9, 13, 9, 5, 6, 0]}, {'calls': [2, 3, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'reopen', 'registered', 'nuisance', 'nuisance']}), ('boundary: exactly twenty kilograms', {'floors': 12, 'floor': 0, 'doors_open': False, 'load_kg': 20, 'presses': [1, 2, 3, 4, 5, 6]}, {'calls': [1, 2, 3, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'registered', 'registered', 'registered']}), ('control 45', {'floors': 10, 'floor': 6, 'doors_open': False, 'load_kg': 20, 'presses': [10, 9, 0, 0, 5, 7, 2, 3, 3]}, {'calls': [2, 5, 7, 9], 'log': ['invalid', 'registered', 'registered', 'cancelled', 'registered', 'registered', 'registered', 'registered', 'cancelled']}), ('sampled regression 48', {'floors': 10, 'floor': 2, 'doors_open': False, 'load_kg': 0, 'presses': [6, 10, 7, 2, 7, 4, 9]}, {'calls': [2, 4, 6, 9], 'log': ['registered', 'invalid', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 51', {'floors': 15, 'floor': 9, 'doors_open': True, 'load_kg': 21, 'presses': [13, 6, 9, 10, 9]}, {'calls': [6, 10, 13], 'log': ['registered', 'registered', 'reopen', 'registered', 'reopen']})]]
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: own floor with doors closed{'calls': [4, 6], 'log': ['registered', 'registered']}{'calls': [4, 6], 'log': ['registered', 'registered']}Passed
control 3{'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'registered', 'cancelled', 'invalid']}{'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'reopen', 'reopen', 'invalid']}Failed
sampled regression 8{'calls': [1, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'invalid', 'registered']}{'calls': [1, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'invalid', 'registered']}Passed
control 13{'calls': [0, 2, 5, 8, 12, 13], 'log': ['registered', 'registered', 'registered', 'registered', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}{'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}Failed
boundary: own floor with doors open{'calls': [6], 'log': ['reopen', 'registered']}{'calls': [6], 'log': ['reopen', 'registered']}Passed
control 1{'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}{'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}Passed
sampled regression 4{'calls': [0, 4], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'cancelled']}{'calls': [0, 4], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'cancelled']}Passed
control 7{'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']}{'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']}Passed

SHA-256 / f0153e348fb721feb22ea6a0b308b5b6ed7a00c94d542808baacf0ae80026e81

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    calls = []
    log = []
    for f in x['presses']:
        if f == x['floor'] and x['doors_open']:
            log.append('reopen')
        elif f < 0 or f >= x['floors']:
            log.append('invalid')
        elif f in calls:
            if len(calls) > 1:
                calls.remove(f)
                log.append('cancelled')
            else:
                log.append('kept')
        elif x['load_kg'] < 20 and len(calls) >= 5:
            log.append('nuisance')
        else:
            calls.append(f)
            log.append('registered')
    return {'calls': sorted(calls), 'log': log}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 3', {'floors': 7, 'floor': 3, 'doors_open': True, 'load_kg': 20, 'presses': [0, 5, 5, 0, 3, 3, -1]}, {'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'reopen', 'reopen', 'invalid']}), ('sampled regression 8', {'floors': 7, 'floor': 0, 'doors_open': False, 'load_kg': 21, 'presses': [1, 0, 0, 6, -1, 5]}, {'calls': [1, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'invalid', 'registered']}), ('control 13', {'floors': 14, 'floor': 12, 'doors_open': True, 'load_kg': 80, 'presses': [8, 0, 1, 12, 1, 13, 2, 5, -1]}, {'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}), ('boundary: own floor with doors open', {'floors': 10, 'floor': 4, 'doors_open': True, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [6], 'log': ['reopen', 'registered']}), ('control 1', {'floors': 12, 'floor': 6, 'doors_open': True, 'load_kg': 19, 'presses': [7, 7, -1, 8, 7]}, {'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}), ('sampled regression 4', {'floors': 7, 'floor': 6, 'doors_open': False, 'load_kg': 19, 'presses': [0, 6, 6, 6, 4, 6]}, {'calls': [0, 4], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'cancelled']}), ('control 7', {'floors': 7, 'floor': 1, 'doors_open': False, 'load_kg': 19, 'presses': [2, 0, 2, 5, 4, 6]}, {'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 13', {'floors': 14, 'floor': 12, 'doors_open': True, 'load_kg': 80, 'presses': [8, 0, 1, 12, 1, 13, 2, 5, -1]}, {'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}), ('sampled regression 39', {'floors': 7, 'floor': 3, 'doors_open': False, 'load_kg': 300, 'presses': [-1, 0, -1, 0, 3, 6, 1]}, {'calls': [0, 1, 3, 6], 'log': ['invalid', 'registered', 'invalid', 'kept', 'registered', 'registered', 'registered']}), ('control 33', {'floors': 11, 'floor': 8, 'doors_open': True, 'load_kg': 15, 'presses': [9, 10, 6, 5, 10, 10, 8, 2, 9]}, {'calls': [2, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'registered', 'cancelled', 'registered', 'reopen', 'registered', 'cancelled']}), ('boundary: basement button that does not exist', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [-1, 3]}, {'calls': [3], 'log': ['invalid', 'registered']}), ('control 12', {'floors': 13, 'floor': 5, 'doors_open': True, 'load_kg': 21, 'presses': [2, 3, 11]}, {'calls': [2, 3, 11], 'log': ['registered', 'registered', 'registered']}), ('sampled regression 15', {'floors': 12, 'floor': 10, 'doors_open': False, 'load_kg': 21, 'presses': [10, 4, 1, 4, 5, 6]}, {'calls': [1, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 18', {'floors': 9, 'floor': 4, 'doors_open': True, 'load_kg': 19, 'presses': [3, 0, 5, 2, 7, 7, -1, 0]}, {'calls': [2, 3, 5], 'log': ['registered', 'registered', 'registered', 'registered', 'registered', 'cancelled', 'invalid', 'cancelled']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 16', {'floors': 14, 'floor': 9, 'doors_open': True, 'load_kg': 20, 'presses': [10, 12, 9, 2, 2]}, {'calls': [10, 12], 'log': ['registered', 'registered', 'reopen', 'registered', 'cancelled']}), ('sampled regression 72', {'floors': 6, 'floor': 4, 'doors_open': False, 'load_kg': 300, 'presses': [3, 0, 2, 0, 4]}, {'calls': [2, 3, 4], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered']}), ('control 46', {'floors': 10, 'floor': 3, 'doors_open': True, 'load_kg': 80, 'presses': [0, 9, 4, 7, 3, 6, 9, 7, 9]}, {'calls': [0, 4, 6, 9], 'log': ['registered', 'registered', 'registered', 'registered', 'reopen', 'registered', 'cancelled', 'cancelled', 'registered']}), ('boundary: double press cancels', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [3, 5, 3]}, {'calls': [5], 'log': ['registered', 'registered', 'cancelled']}), ('sampled regression 23', {'floors': 14, 'floor': 2, 'doors_open': False, 'load_kg': 15, 'presses': [2, 14, 1, 0, -1, 14, 5, 13]}, {'calls': [0, 1, 2, 5, 13], 'log': ['registered', 'invalid', 'registered', 'registered', 'invalid', 'invalid', 'registered', 'registered']}), ('control 26', {'floors': 10, 'floor': 9, 'doors_open': True, 'load_kg': 15, 'presses': [2, 4, 5, 9, 6, 1, 7, 9]}, {'calls': [1, 2, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'registered', 'nuisance', 'reopen']}), ('control 29', {'floors': 10, 'floor': 8, 'doors_open': False, 'load_kg': 20, 'presses': [10, 0, 1]}, {'calls': [0, 1], 'log': ['invalid', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 26', {'floors': 10, 'floor': 9, 'doors_open': True, 'load_kg': 15, 'presses': [2, 4, 5, 9, 6, 1, 7, 9]}, {'calls': [1, 2, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'registered', 'nuisance', 'reopen']}), ('sampled regression 15', {'floors': 12, 'floor': 10, 'doors_open': False, 'load_kg': 21, 'presses': [10, 4, 1, 4, 5, 6]}, {'calls': [1, 5, 6, 10], 'log': ['registered', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 63', {'floors': 13, 'floor': 3, 'doors_open': True, 'load_kg': 80, 'presses': [3, 3, 0, 3, 5]}, {'calls': [0, 5], 'log': ['reopen', 'reopen', 'registered', 'reopen', 'registered']}), ('boundary: cancel an earlier call', {'floors': 10, 'floor': 0, 'doors_open': False, 'load_kg': 80, 'presses': [3, 5, 7, 5]}, {'calls': [3, 7], 'log': ['registered', 'registered', 'registered', 'cancelled']}), ('sampled regression 34', {'floors': 11, 'floor': 9, 'doors_open': False, 'load_kg': 0, 'presses': [10, 0, 5, 6, 0, 5, 9, 10, 9]}, {'calls': [6], 'log': ['registered', 'registered', 'registered', 'registered', 'cancelled', 'cancelled', 'registered', 'cancelled', 'cancelled']}), ('control 37', {'floors': 10, 'floor': 7, 'doors_open': True, 'load_kg': 80, 'presses': [10, 0, -1, -1, 5]}, {'calls': [0, 5], 'log': ['invalid', 'registered', 'invalid', 'invalid', 'registered']}), ('control 40', {'floors': 13, 'floor': 0, 'doors_open': True, 'load_kg': 15, 'presses': [0, -1, 8, 3]}, {'calls': [3, 8], 'log': ['reopen', 'invalid', 'registered', 'registered']})], [('regression: own floor with doors closed', {'floors': 10, 'floor': 4, 'doors_open': False, 'load_kg': 80, 'presses': [4, 6]}, {'calls': [4, 6], 'log': ['registered', 'registered']}), ('control 28', {'floors': 11, 'floor': 4, 'doors_open': True, 'load_kg': 21, 'presses': [9, 7, 9, 4, 10, 1, -1, 10]}, {'calls': [1, 7], 'log': ['registered', 'registered', 'cancelled', 'reopen', 'registered', 'registered', 'invalid', 'cancelled']}), ('sampled regression 60', {'floors': 12, 'floor': 11, 'doors_open': False, 'load_kg': 21, 'presses': [11, 3]}, {'calls': [3, 11], 'log': ['registered', 'registered']}), ('control 78', {'floors': 14, 'floor': 9, 'doors_open': True, 'load_kg': 0, 'presses': [8, 3, 2, 9, 13, 9, 5, 6, 0]}, {'calls': [2, 3, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'registered', 'reopen', 'registered', 'nuisance', 'nuisance']}), ('boundary: exactly twenty kilograms', {'floors': 12, 'floor': 0, 'doors_open': False, 'load_kg': 20, 'presses': [1, 2, 3, 4, 5, 6]}, {'calls': [1, 2, 3, 4, 5, 6], 'log': ['registered', 'registered', 'registered', 'registered', 'registered', 'registered']}), ('control 45', {'floors': 10, 'floor': 6, 'doors_open': False, 'load_kg': 20, 'presses': [10, 9, 0, 0, 5, 7, 2, 3, 3]}, {'calls': [2, 5, 7, 9], 'log': ['invalid', 'registered', 'registered', 'cancelled', 'registered', 'registered', 'registered', 'registered', 'cancelled']}), ('sampled regression 48', {'floors': 10, 'floor': 2, 'doors_open': False, 'load_kg': 0, 'presses': [6, 10, 7, 2, 7, 4, 9]}, {'calls': [2, 4, 6, 9], 'log': ['registered', 'invalid', 'registered', 'registered', 'cancelled', 'registered', 'registered']}), ('control 51', {'floors': 15, 'floor': 9, 'doors_open': True, 'load_kg': 21, 'presses': [13, 6, 9, 10, 9]}, {'calls': [6, 10, 13], 'log': ['registered', 'registered', 'reopen', 'registered', 'reopen']})]]
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: own floor with doors closed{'calls': [4, 6], 'log': ['registered', 'registered']}{'calls': [4, 6], 'log': ['registered', 'registered']}Passed
control 3{'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'reopen', 'reopen', 'invalid']}{'calls': [0], 'log': ['registered', 'registered', 'cancelled', 'kept', 'reopen', 'reopen', 'invalid']}Passed
sampled regression 8{'calls': [1, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'invalid', 'registered']}{'calls': [1, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'invalid', 'registered']}Passed
control 13{'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}{'calls': [0, 2, 5, 8, 13], 'log': ['registered', 'registered', 'registered', 'reopen', 'cancelled', 'registered', 'registered', 'registered', 'invalid']}Passed
boundary: own floor with doors open{'calls': [6], 'log': ['reopen', 'registered']}{'calls': [6], 'log': ['reopen', 'registered']}Passed
control 1{'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}{'calls': [8], 'log': ['registered', 'kept', 'invalid', 'registered', 'cancelled']}Passed
sampled regression 4{'calls': [0, 4], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'cancelled']}{'calls': [0, 4], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'cancelled']}Passed
control 7{'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']}{'calls': [0, 4, 5, 6], 'log': ['registered', 'registered', 'cancelled', 'registered', 'registered', 'registered']}Passed

SHA-256 / 7a16ef6538c91d3eb7f1f37c31a326b3800d9032ba30b7c0d0bb651536e5e10d

Verification & scope

Stipulated toy lift-control contract for a bounded teaching model; it makes no claim of conformance to any lift code or vendor dispatcher and omits real safety cases. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:47:53.325408+00:00.

Case digest / 32ffb5b62ca8f0a74c3a0a4f1cfaad86962f5878786274cfad54edf4bf4d46e6