FAILURE MAP
← Case archive

FA-67586 / Elevator dispatch scheduling / Open access

Zoned express car call acceptance: zone upper bound · case 01

The top floor of the zone is refused.

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

ROOT CAUSE

The zone range excludes its upper bound.

VERIFIED REPAIR

Serve the zone inclusively from lo to hi.

Unsuccessful approach: Shifting the range drops the lowest zone floor instead.

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)) | 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: 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 6', {'floors': 40, 'zone': [20, 25], 'sky_lobbies': [], 'requests': [23, 24, 8, 10, 36, 7]}, [[True, 23], [True, 24], [False, 0], [False, 20], [False, 25], [False, 0]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 1', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [9, 30], 'requests': [28, 30, 24]}, [[False, 30], [True, 30], [False, 30]]), ('sampled regression 4', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [39, 4]}, [[False, 19], [False, 0]]), ('sampled regression 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: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('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]]), ('sampled regression 11', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [40, 10, 38, 22, -1, 37]}, [[False, 19], [True, 10], [False, 19], [False, 19], [False, 0], [False, 19]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 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]]), ('sampled regression 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]])], [('regression: 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 32', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30], 'requests': [2, 20, 28]}, [[False, 0], [True, 20], [False, 30]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('control 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 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]]), ('sampled regression 35', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [25, 5], 'requests': [0, 30, 8, 17, 9, 40]}, [[True, 0], [False, 25], [False, 10], [False, 15], [False, 10], [False, 25]])], [('regression: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('sampled regression 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]]), ('sampled regression 44', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [], 'requests': [40, 9, 17, 16, 9, 29]}, [[False, 32], [False, 0], [False, 20], [False, 20], [False, 0], [True, 29]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [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]]), ('control 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 43', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 9], 'requests': [24, 9]}, [[True, 24], [True, 9]])], [('regression: 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 51', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [5], 'requests': [30, 40]}, [[True, 30], [False, 32]]), ('control 53', {'floors': 40, 'zone': [20, 25], 'sky_lobbies': [], 'requests': [6, 18, 14]}, [[False, 0], [False, 20], [False, 20]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 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]]), ('sampled regression 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 54', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [], 'requests': [26, 23]}, [[True, 26], [True, 23]])]]
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: top of the zone[[False, 18], [False, 18]][[True, 19], [False, 19]]Failed
boundary: bottom of the zone[[True, 10], [False, 10]][[True, 10], [False, 10]]Passed
sampled regression 6[[True, 23], [True, 24], [False, 0], [False, 20], [False, 24], [False, 0]][[True, 23], [True, 24], [False, 0], [False, 20], [False, 25], [False, 0]]Failed
boundary: midway between lobby and zone[[False, 10]][[False, 10]]Passed
boundary: sky lobby transfer[[True, 9], [False, 9]][[True, 9], [False, 9]]Passed
control 1[[False, 30], [True, 30], [False, 30]][[False, 30], [True, 30], [False, 30]]Passed
sampled regression 4[[False, 18], [False, 0]][[False, 19], [False, 0]]Failed
sampled regression 7[[False, 21], [False, 0], [False, 0], [True, 19], [True, 14]][[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]]Failed

SHA-256 / c81785f02b79131ce0d9665104edd361d6ddf01b659149b6a7d7005a47969d94

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 + 1, 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: 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 6', {'floors': 40, 'zone': [20, 25], 'sky_lobbies': [], 'requests': [23, 24, 8, 10, 36, 7]}, [[True, 23], [True, 24], [False, 0], [False, 20], [False, 25], [False, 0]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 1', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [9, 30], 'requests': [28, 30, 24]}, [[False, 30], [True, 30], [False, 30]]), ('sampled regression 4', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [39, 4]}, [[False, 19], [False, 0]]), ('sampled regression 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: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('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]]), ('sampled regression 11', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [40, 10, 38, 22, -1, 37]}, [[False, 19], [True, 10], [False, 19], [False, 19], [False, 0], [False, 19]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 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]]), ('sampled regression 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]])], [('regression: 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 32', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30], 'requests': [2, 20, 28]}, [[False, 0], [True, 20], [False, 30]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('control 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 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]]), ('sampled regression 35', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [25, 5], 'requests': [0, 30, 8, 17, 9, 40]}, [[True, 0], [False, 25], [False, 10], [False, 15], [False, 10], [False, 25]])], [('regression: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('sampled regression 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]]), ('sampled regression 44', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [], 'requests': [40, 9, 17, 16, 9, 29]}, [[False, 32], [False, 0], [False, 20], [False, 20], [False, 0], [True, 29]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [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]]), ('control 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 43', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 9], 'requests': [24, 9]}, [[True, 24], [True, 9]])], [('regression: 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 51', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [5], 'requests': [30, 40]}, [[True, 30], [False, 32]]), ('control 53', {'floors': 40, 'zone': [20, 25], 'sky_lobbies': [], 'requests': [6, 18, 14]}, [[False, 0], [False, 20], [False, 20]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 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]]), ('sampled regression 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 54', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [], 'requests': [26, 23]}, [[True, 26], [True, 23]])]]
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: top of the zone[[True, 19], [False, 19]][[True, 19], [False, 19]]Passed
boundary: bottom of the zone[[False, 11], [False, 11]][[True, 10], [False, 10]]Failed
sampled regression 6[[True, 23], [True, 24], [False, 0], [False, 0], [False, 25], [False, 0]][[True, 23], [True, 24], [False, 0], [False, 20], [False, 25], [False, 0]]Failed
boundary: midway between lobby and zone[[False, 0]][[False, 10]]Failed
boundary: sky lobby transfer[[True, 9], [False, 9]][[True, 9], [False, 9]]Passed
control 1[[False, 30], [True, 30], [False, 30]][[False, 30], [True, 30], [False, 30]]Passed
sampled regression 4[[False, 19], [False, 0]][[False, 19], [False, 0]]Passed
sampled regression 7[[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]][[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]]Passed

SHA-256 / 9e02979750f399efedb66fe7a23de9d1e3322b657d2cfba812d1b0df5a4174bd

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: 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 6', {'floors': 40, 'zone': [20, 25], 'sky_lobbies': [], 'requests': [23, 24, 8, 10, 36, 7]}, [[True, 23], [True, 24], [False, 0], [False, 20], [False, 25], [False, 0]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 1', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [9, 30], 'requests': [28, 30, 24]}, [[False, 30], [True, 30], [False, 30]]), ('sampled regression 4', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [39, 4]}, [[False, 19], [False, 0]]), ('sampled regression 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: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('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]]), ('sampled regression 11', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [40, 10, 38, 22, -1, 37]}, [[False, 19], [True, 10], [False, 19], [False, 19], [False, 0], [False, 19]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 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]]), ('sampled regression 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]])], [('regression: 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 32', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30], 'requests': [2, 20, 28]}, [[False, 0], [True, 20], [False, 30]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('control 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 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]]), ('sampled regression 35', {'floors': 40, 'zone': [10, 15], 'sky_lobbies': [25, 5], 'requests': [0, 30, 8, 17, 9, 40]}, [[True, 0], [False, 25], [False, 10], [False, 15], [False, 10], [False, 25]])], [('regression: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('boundary: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('sampled regression 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]]), ('sampled regression 44', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [], 'requests': [40, 9, 17, 16, 9, 29]}, [[False, 32], [False, 0], [False, 20], [False, 20], [False, 0], [True, 29]]), ('boundary: bottom of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [10, 9]}, [[True, 10], [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]]), ('control 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 43', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [5, 9], 'requests': [24, 9]}, [[True, 24], [True, 9]])], [('regression: 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 51', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [5], 'requests': [30, 40]}, [[True, 30], [False, 32]]), ('control 53', {'floors': 40, 'zone': [20, 25], 'sky_lobbies': [], 'requests': [6, 18, 14]}, [[False, 0], [False, 20], [False, 20]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('sampled regression 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]]), ('sampled regression 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 54', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [], 'requests': [26, 23]}, [[True, 26], [True, 23]])]]
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: 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 6[[True, 23], [True, 24], [False, 0], [False, 20], [False, 25], [False, 0]][[True, 23], [True, 24], [False, 0], [False, 20], [False, 25], [False, 0]]Passed
boundary: midway between lobby and zone[[False, 10]][[False, 10]]Passed
boundary: sky lobby transfer[[True, 9], [False, 9]][[True, 9], [False, 9]]Passed
control 1[[False, 30], [True, 30], [False, 30]][[False, 30], [True, 30], [False, 30]]Passed
sampled regression 4[[False, 19], [False, 0]][[False, 19], [False, 0]]Passed
sampled regression 7[[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]][[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]]Passed

SHA-256 / 109b6596c34f88dda00d90874c415a40303ccbec410f434b68a60ba5a266a6ca

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

Case digest / 5898d5ac77ce70212edf9afaf4937c35d83bf0199ec4a31d191b55e4347043e9