FAILURE MAP
← Case archive

FA-67771 / Elevator dispatch scheduling / Open access

Single car SCAN service simulation: capacity check · case 01

The car takes one passenger more than its capacity, or one fewer.

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

ROOT CAUSE

The capacity comparison is inclusive.

VERIFIED REPAIR

Board while the load is below capacity.

Unsuccessful approach: Reserving an extra place leaves a seat empty.

Case contract

All passengers [id, from, to] wait at time 0. The car starts at start heading up. At each floor it first lets riders alight, then boards waiting passengers (in id order) whose travel direction equals the car direction while load < cap; any alighting or boarding costs one stop_s. If no rider destination or waiting origin lies strictly ahead it reverses in place (and may board again); otherwise it moves one floor (floor_s). Return {id: [board time, alight time]} for delivered passengers.

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):
    cap = x['cap']
    pos = x['start']
    t = 0
    d = 'up'
    waiting = {r[0]: r for r in x['requests']}
    riding = {}
    picked = {}
    done = {}
    for _ in range(400):
        if not waiting and not riding:
            break
        stopped = False
        for pid in sorted(riding):
            if riding[pid][2] == pos:
                done[pid] = [picked[pid], t]
                del riding[pid]
                stopped = True
        for pid in sorted(waiting):
            r = waiting[pid]
            rdir = 'up' if r[2] > r[1] else 'down'
            if r[1] == pos and rdir == d and len(riding) <= cap:
                riding[pid] = r
                picked[pid] = t
                del waiting[pid]
                stopped = True
        if stopped:
            t += x['stop_s']
        targets = [r[2] for r in riding.values()] + [r[1] for r in waiting.values()]
        ahead = [f for f in targets if (f > pos if d == 'up' else f < pos)]
        if not ahead:
            d = 'down' if d == 'up' else 'up'
            continue
        pos += 1 if d == 'up' else -1
        t += x['floor_s']
    return done
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 15', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 6, 3], ['p1', 4, 1], ['p2', 5, 0]]}, {'p0': [4, 26], 'p2': [14, 40], 'p1': [56, 70]}), ('boundary: opposite-direction passenger waits', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 2, 0], ['b', 2, 5]]}, {'b': [0, 11], 'a': [22, 31]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('sampled regression 1', {'cap': 1, 'start': 5, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 6, 8], ['p1', 3, 7], ['p2', 0, 7], ['p3', 3, 2], ['p4', 7, 1]]}, {'p0': [2, 11], 'p4': [18, 35], 'p2': [42, 61], 'p3': [74, 81], 'p1': [88, 101]}), ('control 4', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 8], ['p1', 8, 1], ['p2', 0, 8], ['p3', 5, 6]]}, {'p3': [13, 20], 'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81]}), ('control 7', {'cap': 4, 'start': 6, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 8, 9], ['p1', 7, 5], ['p2', 6, 0]]}, {'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('sampled regression 38', {'cap': 2, 'start': 5, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 4, 2], ['p1', 4, 2], ['p2', 2, 4], ['p3', 9, 0], ['p4', 8, 3]]}, {'p4': [18, 36], 'p3': [8, 50], 'p2': [62, 74], 'p0': [82, 94], 'p1': [82, 94]}), ('sampled regression 8', {'cap': 1, 'start': 7, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 4, 9], ['p1', 9, 3], ['p2', 9, 7], ['p3', 2, 1], ['p4', 1, 3]]}, {'p1': [4, 24], 'p3': [34, 44], 'p4': [52, 64], 'p0': [74, 92], 'p2': [100, 112]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('boundary: alighting-only stop', {'cap': 4, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 2], ['b', 5, 6]]}, {'a': [0, 9], 'b': [20, 27]}), ('control 12', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 3], ['p1', 8, 4], ['p2', 2, 8], ['p3', 5, 0], ['p4', 8, 2], ['p5', 7, 9]]}, {'p2': [0, 28], 'p5': [18, 38], 'p1': [48, 72], 'p0': [48, 82], 'p4': [48, 92], 'p3': [62, 104]}), ('sampled regression 15', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 6, 3], ['p1', 4, 1], ['p2', 5, 0]]}, {'p0': [4, 26], 'p2': [14, 40], 'p1': [56, 70]}), ('control 18', {'cap': 4, 'start': 9, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 1, 0], ['p1', 7, 8], ['p2', 1, 8]]}, {'p0': [16, 26], 'p1': [56, 66], 'p2': [36, 66]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 73', {'cap': 2, 'start': 9, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 1], ['p1', 0, 9], ['p2', 2, 5], ['p3', 2, 3], ['p4', 2, 9], ['p5', 3, 1]]}, {'p0': [2, 32], 'p5': [20, 32], 'p2': [54, 68], 'p1': [42, 84], 'p3': [106, 116], 'p4': [106, 136]}), ('control 19', {'cap': 2, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 0, 5], ['p1', 6, 4], ['p2', 9, 2], ['p3', 4, 5]]}, {'p3': [6, 16], 'p1': [46, 58], 'p2': [32, 70], 'p0': [82, 100]}), ('boundary: alighting-only stop', {'cap': 4, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 2], ['b', 5, 6]]}, {'a': [0, 9], 'b': [20, 27]}), ('control 23', {'cap': 4, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 9, 4], ['p1', 9, 1], ['p2', 0, 1], ['p3', 6, 2]]}, {'p0': [2, 22], 'p3': [13, 31], 'p1': [2, 38], 'p2': [45, 52]}), ('sampled regression 26', {'cap': 1, 'start': 3, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 0, 4], ['p1', 1, 6], ['p2', 1, 6], ['p3', 5, 1]]}, {'p3': [4, 20], 'p0': [30, 46], 'p1': [60, 78], 'p2': [96, 114]}), ('control 29', {'cap': 4, 'start': 5, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 5], ['p1', 0, 2], ['p2', 7, 1]]}, {'p0': [6, 28], 'p2': [16, 44], 'p1': [54, 66]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('sampled regression 20', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 9, 1], ['p1', 6, 7], ['p2', 3, 7], ['p3', 6, 3], ['p4', 8, 5]]}, {'p1': [17, 24], 'p2': [6, 24], 'p4': [40, 51], 'p0': [33, 64], 'p3': [79, 90]}), ('control 27', {'cap': 2, 'start': 2, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 1, 9], ['p1', 2, 7], ['p2', 1, 5]]}, {'p1': [0, 18], 'p2': [38, 54], 'p0': [38, 70]}), ('boundary: opposite-direction passenger waits', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 2, 0], ['b', 2, 5]]}, {'b': [0, 11], 'a': [22, 31]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('sampled regression 34', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 2, 8], ['p2', 6, 1], ['p3', 3, 7], ['p4', 6, 8], ['p5', 2, 4]]}, {'p4': [4, 13], 'p2': [22, 42], 'p0': [35, 49], 'p5': [58, 67], 'p1': [58, 80], 'p3': [95, 108]}), ('control 37', {'cap': 2, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 5, 9], ['p1', 6, 7]]}, {'p1': [13, 20], 'p0': [6, 29]}), ('control 40', {'cap': 2, 'start': 6, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 9, 5], ['p1', 8, 3], ['p2', 5, 4]]}, {'p0': [6, 30], 'p2': [30, 40], 'p1': [16, 50]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 53', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 2, 4], ['p1', 1, 4], ['p2', 0, 4]]}, {'p1': [18, 32], 'p2': [8, 32], 'p0': [44, 56]}), ('sampled regression 34', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 2, 8], ['p2', 6, 1], ['p3', 3, 7], ['p4', 6, 8], ['p5', 2, 4]]}, {'p4': [4, 13], 'p2': [22, 42], 'p0': [35, 49], 'p5': [58, 67], 'p1': [58, 80], 'p3': [95, 108]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('control 45', {'cap': 4, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 0, 2], ['p1', 6, 2], ['p2', 4, 5], ['p3', 1, 7], ['p4', 7, 4]]}, {'p4': [2, 18], 'p1': [9, 27], 'p0': [36, 50], 'p2': [59, 66], 'p3': [43, 75]}), ('control 48', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 0, 2], ['p2', 8, 5], ['p3', 6, 4], ['p4', 0, 3]]}, {'p2': [0, 16], 'p3': [9, 23], 'p0': [32, 41], 'p1': [46, 55], 'p4': [46, 62]}), ('control 51', {'cap': 4, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 8, 9], ['p1', 2, 6], ['p2', 8, 1], ['p3', 1, 6], ['p4', 3, 1]]}, {'p0': [8, 15], 'p2': [22, 46], 'p4': [37, 46], 'p1': [58, 71], 'p3': [51, 71]})]]
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: capacity exactly reached{'a': [0, 13], 'b': [0, 20], 'c': [0, 27]}{'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}Failed
boundary: full car at a floor where a rider alights{'a': [0, 11], 'b': [11, 22]}{'a': [0, 11], 'b': [11, 22]}Passed
sampled regression 15{'p0': [4, 34], 'p1': [24, 46], 'p2': [14, 56]}{'p0': [4, 26], 'p1': [56, 70], 'p2': [14, 40]}Failed
boundary: opposite-direction passenger waits{'a': [22, 31], 'b': [0, 11]}{'a': [22, 31], 'b': [0, 11]}Passed
boundary: two boardings share one stop{'a': [0, 14], 'b': [0, 14]}{'a': [0, 14], 'b': [0, 14]}Passed
sampled regression 1{'p0': [2, 11], 'p1': [63, 76], 'p2': [52, 76], 'p3': [31, 38], 'p4': [18, 45]}{'p0': [2, 11], 'p1': [88, 101], 'p2': [42, 61], 'p3': [74, 81], 'p4': [18, 35]}Failed
control 4{'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81], 'p3': [13, 20]}{'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81], 'p3': [13, 20]}Passed
control 7{'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]}{'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]}Passed

SHA-256 / cff56047c9863a63e27c009fd736e405db5fbc269f28385b5bd510943a82c5bb

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    cap = x['cap']
    pos = x['start']
    t = 0
    d = 'up'
    waiting = {r[0]: r for r in x['requests']}
    riding = {}
    picked = {}
    done = {}
    for _ in range(400):
        if not waiting and not riding:
            break
        stopped = False
        for pid in sorted(riding):
            if riding[pid][2] == pos:
                done[pid] = [picked[pid], t]
                del riding[pid]
                stopped = True
        for pid in sorted(waiting):
            r = waiting[pid]
            rdir = 'up' if r[2] > r[1] else 'down'
            if r[1] == pos and rdir == d and len(riding) + 1 < cap:
                riding[pid] = r
                picked[pid] = t
                del waiting[pid]
                stopped = True
        if stopped:
            t += x['stop_s']
        targets = [r[2] for r in riding.values()] + [r[1] for r in waiting.values()]
        ahead = [f for f in targets if (f > pos if d == 'up' else f < pos)]
        if not ahead:
            d = 'down' if d == 'up' else 'up'
            continue
        pos += 1 if d == 'up' else -1
        t += x['floor_s']
    return done
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 15', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 6, 3], ['p1', 4, 1], ['p2', 5, 0]]}, {'p0': [4, 26], 'p2': [14, 40], 'p1': [56, 70]}), ('boundary: opposite-direction passenger waits', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 2, 0], ['b', 2, 5]]}, {'b': [0, 11], 'a': [22, 31]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('sampled regression 1', {'cap': 1, 'start': 5, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 6, 8], ['p1', 3, 7], ['p2', 0, 7], ['p3', 3, 2], ['p4', 7, 1]]}, {'p0': [2, 11], 'p4': [18, 35], 'p2': [42, 61], 'p3': [74, 81], 'p1': [88, 101]}), ('control 4', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 8], ['p1', 8, 1], ['p2', 0, 8], ['p3', 5, 6]]}, {'p3': [13, 20], 'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81]}), ('control 7', {'cap': 4, 'start': 6, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 8, 9], ['p1', 7, 5], ['p2', 6, 0]]}, {'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('sampled regression 38', {'cap': 2, 'start': 5, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 4, 2], ['p1', 4, 2], ['p2', 2, 4], ['p3', 9, 0], ['p4', 8, 3]]}, {'p4': [18, 36], 'p3': [8, 50], 'p2': [62, 74], 'p0': [82, 94], 'p1': [82, 94]}), ('sampled regression 8', {'cap': 1, 'start': 7, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 4, 9], ['p1', 9, 3], ['p2', 9, 7], ['p3', 2, 1], ['p4', 1, 3]]}, {'p1': [4, 24], 'p3': [34, 44], 'p4': [52, 64], 'p0': [74, 92], 'p2': [100, 112]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('boundary: alighting-only stop', {'cap': 4, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 2], ['b', 5, 6]]}, {'a': [0, 9], 'b': [20, 27]}), ('control 12', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 3], ['p1', 8, 4], ['p2', 2, 8], ['p3', 5, 0], ['p4', 8, 2], ['p5', 7, 9]]}, {'p2': [0, 28], 'p5': [18, 38], 'p1': [48, 72], 'p0': [48, 82], 'p4': [48, 92], 'p3': [62, 104]}), ('sampled regression 15', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 6, 3], ['p1', 4, 1], ['p2', 5, 0]]}, {'p0': [4, 26], 'p2': [14, 40], 'p1': [56, 70]}), ('control 18', {'cap': 4, 'start': 9, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 1, 0], ['p1', 7, 8], ['p2', 1, 8]]}, {'p0': [16, 26], 'p1': [56, 66], 'p2': [36, 66]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 73', {'cap': 2, 'start': 9, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 1], ['p1', 0, 9], ['p2', 2, 5], ['p3', 2, 3], ['p4', 2, 9], ['p5', 3, 1]]}, {'p0': [2, 32], 'p5': [20, 32], 'p2': [54, 68], 'p1': [42, 84], 'p3': [106, 116], 'p4': [106, 136]}), ('control 19', {'cap': 2, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 0, 5], ['p1', 6, 4], ['p2', 9, 2], ['p3', 4, 5]]}, {'p3': [6, 16], 'p1': [46, 58], 'p2': [32, 70], 'p0': [82, 100]}), ('boundary: alighting-only stop', {'cap': 4, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 2], ['b', 5, 6]]}, {'a': [0, 9], 'b': [20, 27]}), ('control 23', {'cap': 4, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 9, 4], ['p1', 9, 1], ['p2', 0, 1], ['p3', 6, 2]]}, {'p0': [2, 22], 'p3': [13, 31], 'p1': [2, 38], 'p2': [45, 52]}), ('sampled regression 26', {'cap': 1, 'start': 3, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 0, 4], ['p1', 1, 6], ['p2', 1, 6], ['p3', 5, 1]]}, {'p3': [4, 20], 'p0': [30, 46], 'p1': [60, 78], 'p2': [96, 114]}), ('control 29', {'cap': 4, 'start': 5, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 5], ['p1', 0, 2], ['p2', 7, 1]]}, {'p0': [6, 28], 'p2': [16, 44], 'p1': [54, 66]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('sampled regression 20', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 9, 1], ['p1', 6, 7], ['p2', 3, 7], ['p3', 6, 3], ['p4', 8, 5]]}, {'p1': [17, 24], 'p2': [6, 24], 'p4': [40, 51], 'p0': [33, 64], 'p3': [79, 90]}), ('control 27', {'cap': 2, 'start': 2, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 1, 9], ['p1', 2, 7], ['p2', 1, 5]]}, {'p1': [0, 18], 'p2': [38, 54], 'p0': [38, 70]}), ('boundary: opposite-direction passenger waits', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 2, 0], ['b', 2, 5]]}, {'b': [0, 11], 'a': [22, 31]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('sampled regression 34', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 2, 8], ['p2', 6, 1], ['p3', 3, 7], ['p4', 6, 8], ['p5', 2, 4]]}, {'p4': [4, 13], 'p2': [22, 42], 'p0': [35, 49], 'p5': [58, 67], 'p1': [58, 80], 'p3': [95, 108]}), ('control 37', {'cap': 2, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 5, 9], ['p1', 6, 7]]}, {'p1': [13, 20], 'p0': [6, 29]}), ('control 40', {'cap': 2, 'start': 6, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 9, 5], ['p1', 8, 3], ['p2', 5, 4]]}, {'p0': [6, 30], 'p2': [30, 40], 'p1': [16, 50]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 53', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 2, 4], ['p1', 1, 4], ['p2', 0, 4]]}, {'p1': [18, 32], 'p2': [8, 32], 'p0': [44, 56]}), ('sampled regression 34', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 2, 8], ['p2', 6, 1], ['p3', 3, 7], ['p4', 6, 8], ['p5', 2, 4]]}, {'p4': [4, 13], 'p2': [22, 42], 'p0': [35, 49], 'p5': [58, 67], 'p1': [58, 80], 'p3': [95, 108]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('control 45', {'cap': 4, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 0, 2], ['p1', 6, 2], ['p2', 4, 5], ['p3', 1, 7], ['p4', 7, 4]]}, {'p4': [2, 18], 'p1': [9, 27], 'p0': [36, 50], 'p2': [59, 66], 'p3': [43, 75]}), ('control 48', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 0, 2], ['p2', 8, 5], ['p3', 6, 4], ['p4', 0, 3]]}, {'p2': [0, 16], 'p3': [9, 23], 'p0': [32, 41], 'p1': [46, 55], 'p4': [46, 62]}), ('control 51', {'cap': 4, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 8, 9], ['p1', 2, 6], ['p2', 8, 1], ['p3', 1, 6], ['p4', 3, 1]]}, {'p0': [8, 15], 'p2': [22, 46], 'p4': [37, 46], 'p1': [58, 71], 'p3': [51, 71]})]]
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: capacity exactly reached{'a': [0, 13], 'b': [26, 41], 'c': [56, 73]}{'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}Failed
boundary: full car at a floor where a rider alights{}{'a': [0, 11], 'b': [11, 22]}Failed
sampled regression 15{'p0': [4, 18], 'p1': [64, 78], 'p2': [30, 48]}{'p0': [4, 26], 'p1': [56, 70], 'p2': [14, 40]}Failed
boundary: opposite-direction passenger waits{'a': [22, 31], 'b': [0, 11]}{'a': [22, 31], 'b': [0, 11]}Passed
boundary: two boardings share one stop{'a': [0, 14], 'b': [0, 14]}{'a': [0, 14], 'b': [0, 14]}Passed
sampled regression 1{}{'p0': [2, 11], 'p1': [88, 101], 'p2': [42, 61], 'p3': [74, 81], 'p4': [18, 35]}Failed
control 4{'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81], 'p3': [13, 20]}{'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81], 'p3': [13, 20]}Passed
control 7{'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]}{'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]}Passed

SHA-256 / af01833c0aef5f9ae5d6a7edf2cb8c5af6169b6e5816427a0031753264b7714b

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    cap = x['cap']
    pos = x['start']
    t = 0
    d = 'up'
    waiting = {r[0]: r for r in x['requests']}
    riding = {}
    picked = {}
    done = {}
    for _ in range(400):
        if not waiting and not riding:
            break
        stopped = False
        for pid in sorted(riding):
            if riding[pid][2] == pos:
                done[pid] = [picked[pid], t]
                del riding[pid]
                stopped = True
        for pid in sorted(waiting):
            r = waiting[pid]
            rdir = 'up' if r[2] > r[1] else 'down'
            if r[1] == pos and rdir == d and len(riding) < cap:
                riding[pid] = r
                picked[pid] = t
                del waiting[pid]
                stopped = True
        if stopped:
            t += x['stop_s']
        targets = [r[2] for r in riding.values()] + [r[1] for r in waiting.values()]
        ahead = [f for f in targets if (f > pos if d == 'up' else f < pos)]
        if not ahead:
            d = 'down' if d == 'up' else 'up'
            continue
        pos += 1 if d == 'up' else -1
        t += x['floor_s']
    return done
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 15', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 6, 3], ['p1', 4, 1], ['p2', 5, 0]]}, {'p0': [4, 26], 'p2': [14, 40], 'p1': [56, 70]}), ('boundary: opposite-direction passenger waits', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 2, 0], ['b', 2, 5]]}, {'b': [0, 11], 'a': [22, 31]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('sampled regression 1', {'cap': 1, 'start': 5, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 6, 8], ['p1', 3, 7], ['p2', 0, 7], ['p3', 3, 2], ['p4', 7, 1]]}, {'p0': [2, 11], 'p4': [18, 35], 'p2': [42, 61], 'p3': [74, 81], 'p1': [88, 101]}), ('control 4', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 8], ['p1', 8, 1], ['p2', 0, 8], ['p3', 5, 6]]}, {'p3': [13, 20], 'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81]}), ('control 7', {'cap': 4, 'start': 6, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 8, 9], ['p1', 7, 5], ['p2', 6, 0]]}, {'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('sampled regression 38', {'cap': 2, 'start': 5, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 4, 2], ['p1', 4, 2], ['p2', 2, 4], ['p3', 9, 0], ['p4', 8, 3]]}, {'p4': [18, 36], 'p3': [8, 50], 'p2': [62, 74], 'p0': [82, 94], 'p1': [82, 94]}), ('sampled regression 8', {'cap': 1, 'start': 7, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 4, 9], ['p1', 9, 3], ['p2', 9, 7], ['p3', 2, 1], ['p4', 1, 3]]}, {'p1': [4, 24], 'p3': [34, 44], 'p4': [52, 64], 'p0': [74, 92], 'p2': [100, 112]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('boundary: alighting-only stop', {'cap': 4, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 2], ['b', 5, 6]]}, {'a': [0, 9], 'b': [20, 27]}), ('control 12', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 3], ['p1', 8, 4], ['p2', 2, 8], ['p3', 5, 0], ['p4', 8, 2], ['p5', 7, 9]]}, {'p2': [0, 28], 'p5': [18, 38], 'p1': [48, 72], 'p0': [48, 82], 'p4': [48, 92], 'p3': [62, 104]}), ('sampled regression 15', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 6, 3], ['p1', 4, 1], ['p2', 5, 0]]}, {'p0': [4, 26], 'p2': [14, 40], 'p1': [56, 70]}), ('control 18', {'cap': 4, 'start': 9, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 1, 0], ['p1', 7, 8], ['p2', 1, 8]]}, {'p0': [16, 26], 'p1': [56, 66], 'p2': [36, 66]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 73', {'cap': 2, 'start': 9, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 1], ['p1', 0, 9], ['p2', 2, 5], ['p3', 2, 3], ['p4', 2, 9], ['p5', 3, 1]]}, {'p0': [2, 32], 'p5': [20, 32], 'p2': [54, 68], 'p1': [42, 84], 'p3': [106, 116], 'p4': [106, 136]}), ('control 19', {'cap': 2, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 0, 5], ['p1', 6, 4], ['p2', 9, 2], ['p3', 4, 5]]}, {'p3': [6, 16], 'p1': [46, 58], 'p2': [32, 70], 'p0': [82, 100]}), ('boundary: alighting-only stop', {'cap': 4, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 2], ['b', 5, 6]]}, {'a': [0, 9], 'b': [20, 27]}), ('control 23', {'cap': 4, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 9, 4], ['p1', 9, 1], ['p2', 0, 1], ['p3', 6, 2]]}, {'p0': [2, 22], 'p3': [13, 31], 'p1': [2, 38], 'p2': [45, 52]}), ('sampled regression 26', {'cap': 1, 'start': 3, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 0, 4], ['p1', 1, 6], ['p2', 1, 6], ['p3', 5, 1]]}, {'p3': [4, 20], 'p0': [30, 46], 'p1': [60, 78], 'p2': [96, 114]}), ('control 29', {'cap': 4, 'start': 5, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 8, 5], ['p1', 0, 2], ['p2', 7, 1]]}, {'p0': [6, 28], 'p2': [16, 44], 'p1': [54, 66]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('sampled regression 20', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 9, 1], ['p1', 6, 7], ['p2', 3, 7], ['p3', 6, 3], ['p4', 8, 5]]}, {'p1': [17, 24], 'p2': [6, 24], 'p4': [40, 51], 'p0': [33, 64], 'p3': [79, 90]}), ('control 27', {'cap': 2, 'start': 2, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 1, 9], ['p1', 2, 7], ['p2', 1, 5]]}, {'p1': [0, 18], 'p2': [38, 54], 'p0': [38, 70]}), ('boundary: opposite-direction passenger waits', {'cap': 4, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 2, 0], ['b', 2, 5]]}, {'b': [0, 11], 'a': [22, 31]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('sampled regression 34', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 2, 8], ['p2', 6, 1], ['p3', 3, 7], ['p4', 6, 8], ['p5', 2, 4]]}, {'p4': [4, 13], 'p2': [22, 42], 'p0': [35, 49], 'p5': [58, 67], 'p1': [58, 80], 'p3': [95, 108]}), ('control 37', {'cap': 2, 'start': 2, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 5, 9], ['p1', 6, 7]]}, {'p1': [13, 20], 'p0': [6, 29]}), ('control 40', {'cap': 2, 'start': 6, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 9, 5], ['p1', 8, 3], ['p2', 5, 4]]}, {'p0': [6, 30], 'p2': [30, 40], 'p1': [16, 50]})], [('regression: capacity exactly reached', {'cap': 2, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 4], ['b', 0, 5], ['c', 0, 6]]}, {'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}), ('boundary: full car at a floor where a rider alights', {'cap': 1, 'start': 0, 'floor_s': 2, 'stop_s': 5, 'requests': [['a', 0, 3], ['b', 3, 6]]}, {'a': [0, 11], 'b': [11, 22]}), ('sampled regression 53', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 8, 'requests': [['p0', 2, 4], ['p1', 1, 4], ['p2', 0, 4]]}, {'p1': [18, 32], 'p2': [8, 32], 'p0': [44, 56]}), ('sampled regression 34', {'cap': 2, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 2, 8], ['p2', 6, 1], ['p3', 3, 7], ['p4', 6, 8], ['p5', 2, 4]]}, {'p4': [4, 13], 'p2': [22, 42], 'p0': [35, 49], 'p5': [58, 67], 'p1': [58, 80], 'p3': [95, 108]}), ('boundary: two boardings share one stop', {'cap': 4, 'start': 1, 'floor_s': 2, 'stop_s': 8, 'requests': [['a', 1, 4], ['b', 1, 4]]}, {'a': [0, 14], 'b': [0, 14]}), ('control 45', {'cap': 4, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 0, 2], ['p1', 6, 2], ['p2', 4, 5], ['p3', 1, 7], ['p4', 7, 4]]}, {'p4': [2, 18], 'p1': [9, 27], 'p0': [36, 50], 'p2': [59, 66], 'p3': [43, 75]}), ('control 48', {'cap': 2, 'start': 8, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 2, 0], ['p1', 0, 2], ['p2', 8, 5], ['p3', 6, 4], ['p4', 0, 3]]}, {'p2': [0, 16], 'p3': [9, 23], 'p0': [32, 41], 'p1': [46, 55], 'p4': [46, 62]}), ('control 51', {'cap': 4, 'start': 4, 'floor_s': 2, 'stop_s': 5, 'requests': [['p0', 8, 9], ['p1', 2, 6], ['p2', 8, 1], ['p3', 1, 6], ['p4', 3, 1]]}, {'p0': [8, 15], 'p2': [22, 46], 'p4': [37, 46], 'p1': [58, 71], 'p3': [51, 71]})]]
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: capacity exactly reached{'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}{'a': [0, 13], 'b': [0, 20], 'c': [35, 52]}Passed
boundary: full car at a floor where a rider alights{'a': [0, 11], 'b': [11, 22]}{'a': [0, 11], 'b': [11, 22]}Passed
sampled regression 15{'p0': [4, 26], 'p1': [56, 70], 'p2': [14, 40]}{'p0': [4, 26], 'p1': [56, 70], 'p2': [14, 40]}Passed
boundary: opposite-direction passenger waits{'a': [22, 31], 'b': [0, 11]}{'a': [22, 31], 'b': [0, 11]}Passed
boundary: two boardings share one stop{'a': [0, 14], 'b': [0, 14]}{'a': [0, 14], 'b': [0, 14]}Passed
sampled regression 1{'p0': [2, 11], 'p1': [88, 101], 'p2': [42, 61], 'p3': [74, 81], 'p4': [18, 35]}{'p0': [2, 11], 'p1': [88, 101], 'p2': [42, 61], 'p3': [74, 81], 'p4': [18, 35]}Passed
control 4{'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81], 'p3': [13, 20]}{'p0': [2, 29], 'p1': [34, 53], 'p2': [60, 81], 'p3': [13, 20]}Passed
control 7{'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]}{'p0': [4, 11], 'p1': [20, 34], 'p2': [27, 49]}Passed

SHA-256 / 6d8e3661d6cce9486ebf08dc5bb8cb74e849883fb2fbb19f994cbcdbd55bf8cc

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

Case digest / ab01c63237653f654d8b76e20425b16c695b077637f5a8ba5505ced5c9638a73