FAILURE MAP
← Case archive

FA-67596 / Elevator dispatch scheduling / Open access

Zoned express car call acceptance: sky lobby service · case 01

Passengers are refused at the sky lobby where they transfer.

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

ROOT CAUSE

Sky lobbies are left out of the served set.

VERIFIED REPAIR

Include every sky lobby in the served floors.

Unsuccessful approach: Keeping only sky lobbies inside the zone drops the transfer floors below it.

Case contract

A zoned express car serves the lobby (0), the inclusive zone [lo, hi] and its sky lobbies, all within 0..floors-1. Each requested floor is accepted ([True, f]) or rejected with the nearest served floor as a suggestion, ties to the higher floor ([False, suggestion]).

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):
    lo, hi = x['zone']
    served = {0} | set(range(lo, hi + 1))
    cand = sorted(s for s in served if 0 <= s < x['floors'])
    res = []
    for f in x['requests']:
        if f in cand:
            res.append([True, f])
        else:
            best = min(cand, key=lambda s: (abs(s - f), -s))
            res.append([False, best])
    return res
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 10', {'floors': 40, 'zone': [10, 22], 'sky_lobbies': [30], 'requests': [37, 4, 31]}, [[False, 30], [False, 0], [False, 30]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [False, 10]]), ('sampled regression 1', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [9, 30], 'requests': [28, 30, 24]}, [[False, 30], [True, 30], [False, 30]]), ('control 4', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [39, 4]}, [[False, 19], [False, 0]]), ('control 7', {'floors': 40, 'zone': [10, 22], 'sky_lobbies': [], 'requests': [33, 3, 3, 19, 14]}, [[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]])], [('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 23', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [25, 9], 'requests': [27, 0, 11, 21, 32, 14]}, [[False, 25], [True, 0], [False, 9], [True, 21], [False, 25], [False, 15]]), ('sampled regression 17', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [5, 9], 'requests': [1, 25, 34, 21, 29, 10]}, [[False, 0], [True, 25], [False, 27], [True, 21], [False, 27], [False, 9]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 12', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [5, 25], 'requests': [31, 15, 26, 21, 33]}, [[False, 27], [True, 15], [True, 26], [True, 21], [False, 27]]), ('sampled regression 15', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30, 5], 'requests': [20, 16, 37, 2]}, [[True, 20], [True, 16], [False, 30], [False, 0]]), ('control 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]])], [('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 34', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [9, 30], 'requests': [31, 3, 34, 24]}, [[False, 30], [False, 0], [False, 30], [True, 24]]), ('sampled regression 25', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [9, 30], 'requests': [30, 37, 1]}, [[True, 30], [False, 30], [False, 0]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('sampled regression 23', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [25, 9], 'requests': [27, 0, 11, 21, 32, 14]}, [[False, 25], [True, 0], [False, 9], [True, 21], [False, 25], [False, 15]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('sampled regression 29', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 5], 'requests': [2, 33, 31, 2, 7]}, [[False, 0], [False, 27], [False, 27], [False, 0], [False, 5]])], [('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 55', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [9], 'requests': [25, 22, 14]}, [[True, 25], [True, 22], [False, 9]]), ('sampled regression 32', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30], 'requests': [2, 20, 28]}, [[False, 0], [True, 20], [False, 30]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [False, 10]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('sampled regression 34', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [9, 30], 'requests': [31, 3, 34, 24]}, [[False, 30], [False, 0], [False, 30], [True, 24]]), ('sampled regression 37', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 30], 'requests': [39, 22, 18, 9, 40]}, [[False, 30], [True, 22], [False, 20], [False, 5], [False, 30]]), ('control 40', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [], 'requests': [36, 23, 1, 39, 21, 26]}, [[False, 24], [True, 23], [False, 0], [False, 24], [True, 21], [False, 24]])], [('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 74', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [30], 'requests': [10, 34, 21]}, [[True, 10], [False, 30], [False, 15]]), ('sampled regression 43', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 9], 'requests': [24, 9]}, [[True, 24], [True, 9]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('control 45', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [11, 35, 34, 2, 19, 25]}, [[True, 11], [False, 19], [False, 19], [False, 0], [True, 19], [False, 19]]), ('control 48', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [25], 'requests': [26, 30, 33, 4, 17, 40]}, [[True, 26], [True, 30], [False, 32], [False, 0], [False, 20], [False, 32]]), ('control 51', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [5], 'requests': [30, 40]}, [[True, 30], [False, 32]])]]
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: sky lobby transfer[[False, 0], [False, 0]][[True, 9], [False, 9]]Failed
sampled regression 10[[False, 22], [False, 0], [False, 22]][[False, 30], [False, 0], [False, 30]]Failed
regression: floor just below the sky lobby[[False, 20], [False, 20]][[False, 15], [False, 15]]Failed
boundary: top of the zone[[True, 19], [False, 19]][[True, 19], [False, 19]]Passed
boundary: bottom of the zone[[True, 10], [False, 10]][[True, 10], [False, 10]]Passed
sampled regression 1[[False, 15], [False, 15], [False, 15]][[False, 30], [True, 30], [False, 30]]Failed
control 4[[False, 19], [False, 0]][[False, 19], [False, 0]]Passed
control 7[[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]][[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]]Passed

SHA-256 / fb7d1219ae175ababd275362053dde7e9f7a9b3e730b97a962c1edf53cd188a6

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    lo, hi = x['zone']
    served = {0} | set(range(lo, hi + 1)) | {s for s in x['sky_lobbies'] if lo <= s <= hi}
    cand = sorted(s for s in served if 0 <= s < x['floors'])
    res = []
    for f in x['requests']:
        if f in cand:
            res.append([True, f])
        else:
            best = min(cand, key=lambda s: (abs(s - f), -s))
            res.append([False, best])
    return res
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 10', {'floors': 40, 'zone': [10, 22], 'sky_lobbies': [30], 'requests': [37, 4, 31]}, [[False, 30], [False, 0], [False, 30]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [False, 10]]), ('sampled regression 1', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [9, 30], 'requests': [28, 30, 24]}, [[False, 30], [True, 30], [False, 30]]), ('control 4', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [39, 4]}, [[False, 19], [False, 0]]), ('control 7', {'floors': 40, 'zone': [10, 22], 'sky_lobbies': [], 'requests': [33, 3, 3, 19, 14]}, [[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]])], [('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 23', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [25, 9], 'requests': [27, 0, 11, 21, 32, 14]}, [[False, 25], [True, 0], [False, 9], [True, 21], [False, 25], [False, 15]]), ('sampled regression 17', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [5, 9], 'requests': [1, 25, 34, 21, 29, 10]}, [[False, 0], [True, 25], [False, 27], [True, 21], [False, 27], [False, 9]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 12', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [5, 25], 'requests': [31, 15, 26, 21, 33]}, [[False, 27], [True, 15], [True, 26], [True, 21], [False, 27]]), ('sampled regression 15', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30, 5], 'requests': [20, 16, 37, 2]}, [[True, 20], [True, 16], [False, 30], [False, 0]]), ('control 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]])], [('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 34', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [9, 30], 'requests': [31, 3, 34, 24]}, [[False, 30], [False, 0], [False, 30], [True, 24]]), ('sampled regression 25', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [9, 30], 'requests': [30, 37, 1]}, [[True, 30], [False, 30], [False, 0]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('sampled regression 23', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [25, 9], 'requests': [27, 0, 11, 21, 32, 14]}, [[False, 25], [True, 0], [False, 9], [True, 21], [False, 25], [False, 15]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('sampled regression 29', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 5], 'requests': [2, 33, 31, 2, 7]}, [[False, 0], [False, 27], [False, 27], [False, 0], [False, 5]])], [('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 55', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [9], 'requests': [25, 22, 14]}, [[True, 25], [True, 22], [False, 9]]), ('sampled regression 32', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30], 'requests': [2, 20, 28]}, [[False, 0], [True, 20], [False, 30]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [False, 10]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('sampled regression 34', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [9, 30], 'requests': [31, 3, 34, 24]}, [[False, 30], [False, 0], [False, 30], [True, 24]]), ('sampled regression 37', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 30], 'requests': [39, 22, 18, 9, 40]}, [[False, 30], [True, 22], [False, 20], [False, 5], [False, 30]]), ('control 40', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [], 'requests': [36, 23, 1, 39, 21, 26]}, [[False, 24], [True, 23], [False, 0], [False, 24], [True, 21], [False, 24]])], [('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 74', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [30], 'requests': [10, 34, 21]}, [[True, 10], [False, 30], [False, 15]]), ('sampled regression 43', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 9], 'requests': [24, 9]}, [[True, 24], [True, 9]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('control 45', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [11, 35, 34, 2, 19, 25]}, [[True, 11], [False, 19], [False, 19], [False, 0], [True, 19], [False, 19]]), ('control 48', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [25], 'requests': [26, 30, 33, 4, 17, 40]}, [[True, 26], [True, 30], [False, 32], [False, 0], [False, 20], [False, 32]]), ('control 51', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [5], 'requests': [30, 40]}, [[True, 30], [False, 32]])]]
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: sky lobby transfer[[False, 0], [False, 0]][[True, 9], [False, 9]]Failed
sampled regression 10[[False, 22], [False, 0], [False, 22]][[False, 30], [False, 0], [False, 30]]Failed
regression: floor just below the sky lobby[[False, 20], [False, 20]][[False, 15], [False, 15]]Failed
boundary: top of the zone[[True, 19], [False, 19]][[True, 19], [False, 19]]Passed
boundary: bottom of the zone[[True, 10], [False, 10]][[True, 10], [False, 10]]Passed
sampled regression 1[[False, 15], [False, 15], [False, 15]][[False, 30], [True, 30], [False, 30]]Failed
control 4[[False, 19], [False, 0]][[False, 19], [False, 0]]Passed
control 7[[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]][[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]]Passed

SHA-256 / 160a58339f938841f26e626efe88e34465a4275697dd18a9eb52833c3daca596

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    lo, hi = x['zone']
    served = {0} | set(range(lo, hi + 1)) | set(x['sky_lobbies'])
    cand = sorted(s for s in served if 0 <= s < x['floors'])
    res = []
    for f in x['requests']:
        if f in cand:
            res.append([True, f])
        else:
            best = min(cand, key=lambda s: (abs(s - f), -s))
            res.append([False, best])
    return res
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 10', {'floors': 40, 'zone': [10, 22], 'sky_lobbies': [30], 'requests': [37, 4, 31]}, [[False, 30], [False, 0], [False, 30]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [False, 10]]), ('sampled regression 1', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [9, 30], 'requests': [28, 30, 24]}, [[False, 30], [True, 30], [False, 30]]), ('control 4', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [39, 4]}, [[False, 19], [False, 0]]), ('control 7', {'floors': 40, 'zone': [10, 22], 'sky_lobbies': [], 'requests': [33, 3, 3, 19, 14]}, [[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]])], [('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 23', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [25, 9], 'requests': [27, 0, 11, 21, 32, 14]}, [[False, 25], [True, 0], [False, 9], [True, 21], [False, 25], [False, 15]]), ('sampled regression 17', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [5, 9], 'requests': [1, 25, 34, 21, 29, 10]}, [[False, 0], [True, 25], [False, 27], [True, 21], [False, 27], [False, 9]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 12', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [5, 25], 'requests': [31, 15, 26, 21, 33]}, [[False, 27], [True, 15], [True, 26], [True, 21], [False, 27]]), ('sampled regression 15', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30, 5], 'requests': [20, 16, 37, 2]}, [[True, 20], [True, 16], [False, 30], [False, 0]]), ('control 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]])], [('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 34', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [9, 30], 'requests': [31, 3, 34, 24]}, [[False, 30], [False, 0], [False, 30], [True, 24]]), ('sampled regression 25', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [9, 30], 'requests': [30, 37, 1]}, [[True, 30], [False, 30], [False, 0]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('sampled regression 23', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [25, 9], 'requests': [27, 0, 11, 21, 32, 14]}, [[False, 25], [True, 0], [False, 9], [True, 21], [False, 25], [False, 15]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('sampled regression 29', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 5], 'requests': [2, 33, 31, 2, 7]}, [[False, 0], [False, 27], [False, 27], [False, 0], [False, 5]])], [('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 55', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [9], 'requests': [25, 22, 14]}, [[True, 25], [True, 22], [False, 9]]), ('sampled regression 32', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30], 'requests': [2, 20, 28]}, [[False, 0], [True, 20], [False, 30]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [False, 10]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('sampled regression 34', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [9, 30], 'requests': [31, 3, 34, 24]}, [[False, 30], [False, 0], [False, 30], [True, 24]]), ('sampled regression 37', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 30], 'requests': [39, 22, 18, 9, 40]}, [[False, 30], [True, 22], [False, 20], [False, 5], [False, 30]]), ('control 40', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [], 'requests': [36, 23, 1, 39, 21, 26]}, [[False, 24], [True, 23], [False, 0], [False, 24], [True, 21], [False, 24]])], [('regression: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 74', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [30], 'requests': [10, 34, 21]}, [[True, 10], [False, 30], [False, 15]]), ('sampled regression 43', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 9], 'requests': [24, 9]}, [[True, 24], [True, 9]]), ('regression: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('control 45', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [11, 35, 34, 2, 19, 25]}, [[True, 11], [False, 19], [False, 19], [False, 0], [True, 19], [False, 19]]), ('control 48', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [25], 'requests': [26, 30, 33, 4, 17, 40]}, [[True, 26], [True, 30], [False, 32], [False, 0], [False, 20], [False, 32]]), ('control 51', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [5], 'requests': [30, 40]}, [[True, 30], [False, 32]])]]
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: sky lobby transfer[[True, 9], [False, 9]][[True, 9], [False, 9]]Passed
sampled regression 10[[False, 30], [False, 0], [False, 30]][[False, 30], [False, 0], [False, 30]]Passed
regression: floor just below the sky lobby[[False, 15], [False, 15]][[False, 15], [False, 15]]Passed
boundary: top of the zone[[True, 19], [False, 19]][[True, 19], [False, 19]]Passed
boundary: bottom of the zone[[True, 10], [False, 10]][[True, 10], [False, 10]]Passed
sampled regression 1[[False, 30], [True, 30], [False, 30]][[False, 30], [True, 30], [False, 30]]Passed
control 4[[False, 19], [False, 0]][[False, 19], [False, 0]]Passed
control 7[[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]][[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]]Passed

SHA-256 / 5c6d3ae4262e1010308c7e6faf203ad1ea42f7e7254ad5e3b562b36f3652a0a6

Verification & scope

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

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

Case digest / 525d65ba02ec8c87a858bae40bd161a2f9dd83fe1e9239d06376a5eac9080bb1