FA-67591 / Elevator dispatch scheduling / Open access
Zoned express car call acceptance: suggestion tie-break · case 01
Equidistant suggestions point downwards.
ROOT CAUSE
Ties go to the lower floor.
VERIFIED REPAIR
Break ties towards the higher floor.
Unsuccessful approach: Preferring floors above ignores a much nearer served floor below.
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)) | 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 50', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 9], 'requests': [27, 24, 9, 5, 12, 14]}, [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]]), ('control 3', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [25, 30], 'requests': [6, 8, 22]}, [[False, 0], [False, 0], [True, 22]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('control 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 13', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [30], 'requests': [14, 16, 0, 5, 11, 37]}, [[True, 14], [True, 16], [True, 0], [False, 10], [True, 11], [False, 30]]), ('control 15', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30, 5], 'requests': [20, 16, 37, 2]}, [[True, 20], [True, 16], [False, 30], [False, 0]]), ('boundary: 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]]), ('control 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]]), ('control 21', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [5], 'requests': [25, 20, 29, 29, 31, 32]}, [[False, 20], [True, 20], [False, 20], [False, 20], [False, 20], [False, 20]])], [('regression: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('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]]), ('control 24', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [], 'requests': [27, 4, 24]}, [[False, 24], [False, 0], [True, 24]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('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]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('control 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('control 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: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 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 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 50', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 9], 'requests': [27, 24, 9, 5, 12, 14]}, [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]]), ('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]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: midway between lobby and zone | [[False, 0]] | [[False, 10]] | Failed |
| boundary: floor just below the sky lobby | [[False, 15], [False, 15]] | [[False, 15], [False, 15]] | Passed |
| sampled regression 50 | [[True, 27], [True, 24], [True, 9], [False, 9], [False, 9], [False, 15]] | [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]] | Failed |
| control 3 | [[False, 0], [False, 0], [True, 22]] | [[False, 0], [False, 0], [True, 22]] | Passed |
| boundary: top of the zone | [[True, 19], [False, 19]] | [[True, 19], [False, 19]] | Passed |
| control 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 / 0b09763efefd1d8255c7d24165d6d323b3da33fa9887f9ff3e95d1bd31ad1fcf
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)) | 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: (s < f, abs(s - f)))
res.append([False, best])
return res
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 50', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 9], 'requests': [27, 24, 9, 5, 12, 14]}, [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]]), ('control 3', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [25, 30], 'requests': [6, 8, 22]}, [[False, 0], [False, 0], [True, 22]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('control 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 13', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [30], 'requests': [14, 16, 0, 5, 11, 37]}, [[True, 14], [True, 16], [True, 0], [False, 10], [True, 11], [False, 30]]), ('control 15', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30, 5], 'requests': [20, 16, 37, 2]}, [[True, 20], [True, 16], [False, 30], [False, 0]]), ('boundary: 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]]), ('control 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]]), ('control 21', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [5], 'requests': [25, 20, 29, 29, 31, 32]}, [[False, 20], [True, 20], [False, 20], [False, 20], [False, 20], [False, 20]])], [('regression: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('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]]), ('control 24', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [], 'requests': [27, 4, 24]}, [[False, 24], [False, 0], [True, 24]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('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]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('control 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('control 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: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 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 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 50', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 9], 'requests': [27, 24, 9, 5, 12, 14]}, [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]]), ('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]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: midway between lobby and zone | [[False, 10]] | [[False, 10]] | Passed |
| boundary: floor just below the sky lobby | [[False, 15], [False, 20]] | [[False, 15], [False, 15]] | Failed |
| sampled regression 50 | [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]] | [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]] | Passed |
| control 3 | [[False, 20], [False, 20], [True, 22]] | [[False, 0], [False, 0], [True, 22]] | Failed |
| boundary: top of the zone | [[True, 19], [False, 19]] | [[True, 19], [False, 19]] | Passed |
| control 1 | [[False, 30], [True, 30], [False, 30]] | [[False, 30], [True, 30], [False, 30]] | Passed |
| control 4 | [[False, 19], [False, 10]] | [[False, 19], [False, 0]] | Failed |
| control 7 | [[False, 22], [False, 10], [False, 10], [True, 19], [True, 14]] | [[False, 22], [False, 0], [False, 0], [True, 19], [True, 14]] | Failed |
SHA-256 / 2ebc34799ab58c3f3a5627aa18e9d966edac958d4bd18e6461286bfa610c5de8
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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 50', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 9], 'requests': [27, 24, 9, 5, 12, 14]}, [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]]), ('control 3', {'floors': 40, 'zone': [20, 32], 'sky_lobbies': [25, 30], 'requests': [6, 8, 22]}, [[False, 0], [False, 0], [True, 22]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('control 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 13', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [30], 'requests': [14, 16, 0, 5, 11, 37]}, [[True, 14], [True, 16], [True, 0], [False, 10], [True, 11], [False, 30]]), ('control 15', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [30, 5], 'requests': [20, 16, 37, 2]}, [[True, 20], [True, 16], [False, 30], [False, 0]]), ('boundary: 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]]), ('control 18', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [32, 19]}, [[False, 19], [True, 19]]), ('control 21', {'floors': 40, 'zone': [15, 20], 'sky_lobbies': [5], 'requests': [25, 20, 29, 29, 31, 32]}, [[False, 20], [True, 20], [False, 20], [False, 20], [False, 20], [False, 20]])], [('regression: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('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]]), ('control 24', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [], 'requests': [27, 4, 24]}, [[False, 24], [False, 0], [True, 24]]), ('boundary: top of the zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [19, 20]}, [[True, 19], [False, 19]]), ('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]]), ('control 26', {'floors': 40, 'zone': [15, 24], 'sky_lobbies': [5, 25], 'requests': [22, 21, 11]}, [[True, 22], [True, 21], [False, 15]]), ('control 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('control 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: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('control 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 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: midway between lobby and zone', {'floors': 40, 'zone': [10, 19], 'sky_lobbies': [], 'requests': [5]}, [[False, 10]]), ('boundary: floor just below the sky lobby', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [15], 'requests': [14, 17]}, [[False, 15], [False, 15]]), ('sampled regression 50', {'floors': 40, 'zone': [15, 27], 'sky_lobbies': [25, 9], 'requests': [27, 24, 9, 5, 12, 14]}, [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]]), ('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]]), ('boundary: sky lobby transfer', {'floors': 40, 'zone': [20, 29], 'sky_lobbies': [9], 'requests': [9, 8]}, [[True, 9], [False, 9]]), ('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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: midway between lobby and zone | [[False, 10]] | [[False, 10]] | Passed |
| boundary: floor just below the sky lobby | [[False, 15], [False, 15]] | [[False, 15], [False, 15]] | Passed |
| sampled regression 50 | [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]] | [[True, 27], [True, 24], [True, 9], [False, 9], [False, 15], [False, 15]] | Passed |
| control 3 | [[False, 0], [False, 0], [True, 22]] | [[False, 0], [False, 0], [True, 22]] | Passed |
| boundary: top of the zone | [[True, 19], [False, 19]] | [[True, 19], [False, 19]] | Passed |
| control 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 / 4e4fcfe2dd4ef8436a35abeecc1f8a2a498f48f7ea32088765feaf2223f13f91
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.411405+00:00.
Case digest / dcef896fbebc4d1e2e3158bfbb8d99ddc87f87429a03af66c18211ea7a965ed3