FA-93076 / EV charging session scheduling / Open access
Round-robin port rotation: preempted vehicle queue position · case 01
A vehicle whose quantum expired immediately gets its port back, starving waiting vehicles.
ROOT CAUSE
Preempted vehicles are pushed to the front of the queue.
THE FAILURE
Preempted vehicles are pushed to the front of the queue.
Unsuccessful approach: Inserting behind only the first waiter still lets the preempted vehicle jump the line.
Case contract
vehicles is [[id, need_slots]] in arrival order. Each slot, free ports are filled from the FIFO queue; a vehicle holds its port for quantum slots or until done, then goes to the back of the queue. Return [timeline of sorted charging ids per slot, [[id, finish]] sorted by id] where finish is the slot index after its last charging slot, 0 when nothing was needed, None if unfinished.
Why this case matters
Depot, workplace and public EV chargers schedule sessions against prices, circuit limits and departure deadlines; a wrong decision silently strands a driver or overloads a feeder.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(vehicles, ports, slots, quantum):
queue = [[vid, need] for vid, need in vehicles if need > 0]
done = {vid: (0 if need <= 0 else None) for vid, need in vehicles}
active = []
timeline = []
for t in range(slots):
while len(active) < ports and queue:
v = queue.pop(0)
active.append([v[0], v[1], quantum])
timeline.append(sorted(a[0] for a in active))
nxt = []
for a in active:
a[1] -= 1
a[2] -= 1
if a[1] == 0:
done[a[0]] = t + 1
elif a[2] == 0:
queue.insert(0, [a[0], a[1]])
else:
nxt.append(a)
active = nxt
return [timeline, [[k, done[k]] for k in sorted(done)]]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position',
[[['V0', 4], ['V1', 4], ['V2', 0], ['V3', 5], ['V4', 6], ['V5', 0]], 1, 9, 1],
[[['V0'], ['V1'], ['V3'], ['V4'], ['V0'], ['V1'], ['V3'], ['V4'], ['V0']],
[['V0', None], ['V1', None], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 3], ['V1', 5], ['V2', 3], ['V3', 4], ['V4', 4], ['V5', 4]], 1, 3, 1],
[[['V0'], ['V1'], ['V2']],
[['V0', None], ['V1', None], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],
['control 1', [[['V0', 1], ['V1', 4], ['V2', 6], ['V3', 2], ['V4', 5], ['V5', 5]], 1, 10, 2],
[[['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V3'], ['V3'], ['V4'], ['V4'], ['V5']],
[['V0', 1], ['V1', None], ['V2', None], ['V3', 7], ['V4', None], ['V5', None]]]],
['control 2', [[['V0', 5], ['V1', 3], ['V2', 2]], 1, 6, 2],
[[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2']], [['V0', None], ['V1', None], ['V2', 6]]]]],
[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position',
[[['V0', 5], ['V1', 2], ['V2', 5], ['V3', 1], ['V4', 2], ['V5', 5]], 1, 12, 3],
[[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V4'], ['V4'],
['V5']],
[['V0', None], ['V1', 5], ['V2', None], ['V3', 9], ['V4', 11], ['V5', None]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 5], ['V1', 4], ['V2', 4], ['V3', 1], ['V4', 5], ['V5', 1]], 3, 12, 3],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V3', 'V4', 'V5'],
['V0', 'V1', 'V4'], ['V0', 'V2', 'V4'], ['V4'], ['V4'], [], [], [], []],
[['V0', 6], ['V1', 5], ['V2', 6], ['V3', 4], ['V4', 8], ['V5', 4]]]],
['control 1', [[['V0', 1], ['V1', 6], ['V2', 6], ['V3', 1], ['V4', 1]], 1, 7, 3],
[[['V0'], ['V1'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2']],
[['V0', 1], ['V1', None], ['V2', None], ['V3', None], ['V4', None]]]],
['control 2', [[['V0', 2], ['V1', 2], ['V2', 3], ['V3', 0], ['V4', 4], ['V5', 3]], 1, 3, 3],
[[['V0'], ['V0'], ['V1']],
[['V0', 2], ['V1', None], ['V2', None], ['V3', 0], ['V4', None], ['V5', None]]]]],
[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position',
[[['V0', 4], ['V1', 2], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 6]], 1, 10, 3],
[[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V3']],
[['V0', None], ['V1', 5], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 4], ['V1', 0], ['V2', 3], ['V3', 1], ['V4', 0], ['V5', 4]], 2, 8, 2],
[[['V0', 'V2'], ['V0', 'V2'], ['V3', 'V5'], ['V0', 'V5'], ['V0', 'V2'], ['V5'], ['V5'], []],
[['V0', 5], ['V1', 0], ['V2', 5], ['V3', 3], ['V4', 0], ['V5', 7]]]],
['control 1', [[['V0', 0], ['V1', 6], ['V2', 4]], 2, 7, 3],
[[['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1'], ['V1'], []],
[['V0', 0], ['V1', 6], ['V2', 4]]]],
['control 2', [[['V0', 3], ['V1', 0]], 1, 3, 1],
[[['V0'], ['V0'], ['V0']], [['V0', 3], ['V1', 0]]]]],
[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position', [[['V0', 6], ['V1', 6]], 1, 3, 2],
[[['V0'], ['V0'], ['V1']], [['V0', None], ['V1', None]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 4], ['V1', 6], ['V2', 2], ['V3', 2], ['V4', 5]], 3, 5, 3],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V3'], ['V0', 'V3', 'V4'], ['V1', 'V4']],
[['V0', 4], ['V1', None], ['V2', 2], ['V3', 4], ['V4', None]]]],
['control 1', [[['V0', 2], ['V1', 3], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 3]], 3, 3, 2],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V3', 'V4', 'V5']],
[['V0', 2], ['V1', None], ['V2', None], ['V3', None], ['V4', 3], ['V5', None]]]],
['control 2', [[['V0', 2], ['V1', 6], ['V2', 6]], 1, 10, 2],
[[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V1'], ['V1'], ['V2'], ['V2']],
[['V0', 2], ['V1', None], ['V2', None]]]]],
[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position',
[[['V0', 5], ['V1', 5], ['V2', 6], ['V3', 0], ['V4', 6]], 3, 8, 3],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V4'],
['V0', 'V1', 'V4'], ['V2', 'V4'], ['V2', 'V4'], ['V2', 'V4']],
[['V0', 5], ['V1', 5], ['V2', 8], ['V3', 0], ['V4', None]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 5], ['V1', 3], ['V2', 2], ['V3', 1], ['V4', 3]], 3, 3, 2],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V3', 'V4']],
[['V0', None], ['V1', None], ['V2', 2], ['V3', 3], ['V4', None]]]],
['control 1', [[['V0', 4], ['V1', 3], ['V2', 4], ['V3', 5], ['V4', 6]], 3, 3, 3],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2']],
[['V0', None], ['V1', 3], ['V2', None], ['V3', None], ['V4', None]]]],
['control 2', [[['V0', 4], ['V1', 0], ['V2', 0], ['V3', 4], ['V4', 2]], 1, 12, 1],
[[['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V0'], ['V3'], [], []],
[['V0', 9], ['V1', 0], ['V2', 0], ['V3', 10], ['V4', 6]]]]]]
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 |
|---|---|---|---|
| boundary: vehicle needing nothing | [[['B'], ['B'], []], [['A', 0], ['B', 2]]] | [[['B'], ['B'], []], [['A', 0], ['B', 2]]] | Passed |
| boundary: finishes exactly at quantum end | [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]] | [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]] | Passed |
| boundary: more ports than vehicles | [[['A'], ['A'], ['A'], []], [['A', 3]]] | [[['A'], ['A'], ['A'], []], [['A', 3]]] | Passed |
| regression: preempted vehicle queue position | [[['V0'], ['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V1'], ['V1'], ['V3']], [['V0', 4], ['V1', 8], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]] | [[['V0'], ['V1'], ['V3'], ['V4'], ['V0'], ['V1'], ['V3'], ['V4'], ['V0']], [['V0', None], ['V1', None], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]] | Failed |
| regression: preempted vehicle queue position (partial repair) | [[['V0'], ['V0'], ['V0']], [['V0', 3], ['V1', None], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]] | [[['V0'], ['V1'], ['V2']], [['V0', None], ['V1', None], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]] | Failed |
| control 1 | [[['V0'], ['V1'], ['V1'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V2'], ['V2']], [['V0', 1], ['V1', 5], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]] | [[['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V3'], ['V3'], ['V4'], ['V4'], ['V5']], [['V0', 1], ['V1', None], ['V2', None], ['V3', 7], ['V4', None], ['V5', None]]] | Failed |
| control 2 | [[['V0'], ['V0'], ['V0'], ['V0'], ['V0'], ['V1']], [['V0', 5], ['V1', None], ['V2', None]]] | [[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2']], [['V0', None], ['V1', None], ['V2', 6]]] | Failed |
SHA-256 / 47d28ff1b5d756686f78f86ecc24cbf4cffd4b68c11857824ea912d84fb49068
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(vehicles, ports, slots, quantum):
queue = [[vid, need] for vid, need in vehicles if need > 0]
done = {vid: (0 if need <= 0 else None) for vid, need in vehicles}
active = []
timeline = []
for t in range(slots):
while len(active) < ports and queue:
v = queue.pop(0)
active.append([v[0], v[1], quantum])
timeline.append(sorted(a[0] for a in active))
nxt = []
for a in active:
a[1] -= 1
a[2] -= 1
if a[1] == 0:
done[a[0]] = t + 1
elif a[2] == 0:
queue.insert(1, [a[0], a[1]])
else:
nxt.append(a)
active = nxt
return [timeline, [[k, done[k]] for k in sorted(done)]]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position',
[[['V0', 4], ['V1', 4], ['V2', 0], ['V3', 5], ['V4', 6], ['V5', 0]], 1, 9, 1],
[[['V0'], ['V1'], ['V3'], ['V4'], ['V0'], ['V1'], ['V3'], ['V4'], ['V0']],
[['V0', None], ['V1', None], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 3], ['V1', 5], ['V2', 3], ['V3', 4], ['V4', 4], ['V5', 4]], 1, 3, 1],
[[['V0'], ['V1'], ['V2']],
[['V0', None], ['V1', None], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],
['control 1', [[['V0', 1], ['V1', 4], ['V2', 6], ['V3', 2], ['V4', 5], ['V5', 5]], 1, 10, 2],
[[['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V3'], ['V3'], ['V4'], ['V4'], ['V5']],
[['V0', 1], ['V1', None], ['V2', None], ['V3', 7], ['V4', None], ['V5', None]]]],
['control 2', [[['V0', 5], ['V1', 3], ['V2', 2]], 1, 6, 2],
[[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2']], [['V0', None], ['V1', None], ['V2', 6]]]]],
[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position',
[[['V0', 5], ['V1', 2], ['V2', 5], ['V3', 1], ['V4', 2], ['V5', 5]], 1, 12, 3],
[[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V4'], ['V4'],
['V5']],
[['V0', None], ['V1', 5], ['V2', None], ['V3', 9], ['V4', 11], ['V5', None]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 5], ['V1', 4], ['V2', 4], ['V3', 1], ['V4', 5], ['V5', 1]], 3, 12, 3],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V3', 'V4', 'V5'],
['V0', 'V1', 'V4'], ['V0', 'V2', 'V4'], ['V4'], ['V4'], [], [], [], []],
[['V0', 6], ['V1', 5], ['V2', 6], ['V3', 4], ['V4', 8], ['V5', 4]]]],
['control 1', [[['V0', 1], ['V1', 6], ['V2', 6], ['V3', 1], ['V4', 1]], 1, 7, 3],
[[['V0'], ['V1'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2']],
[['V0', 1], ['V1', None], ['V2', None], ['V3', None], ['V4', None]]]],
['control 2', [[['V0', 2], ['V1', 2], ['V2', 3], ['V3', 0], ['V4', 4], ['V5', 3]], 1, 3, 3],
[[['V0'], ['V0'], ['V1']],
[['V0', 2], ['V1', None], ['V2', None], ['V3', 0], ['V4', None], ['V5', None]]]]],
[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position',
[[['V0', 4], ['V1', 2], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 6]], 1, 10, 3],
[[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V3']],
[['V0', None], ['V1', 5], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 4], ['V1', 0], ['V2', 3], ['V3', 1], ['V4', 0], ['V5', 4]], 2, 8, 2],
[[['V0', 'V2'], ['V0', 'V2'], ['V3', 'V5'], ['V0', 'V5'], ['V0', 'V2'], ['V5'], ['V5'], []],
[['V0', 5], ['V1', 0], ['V2', 5], ['V3', 3], ['V4', 0], ['V5', 7]]]],
['control 1', [[['V0', 0], ['V1', 6], ['V2', 4]], 2, 7, 3],
[[['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1'], ['V1'], []],
[['V0', 0], ['V1', 6], ['V2', 4]]]],
['control 2', [[['V0', 3], ['V1', 0]], 1, 3, 1],
[[['V0'], ['V0'], ['V0']], [['V0', 3], ['V1', 0]]]]],
[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position', [[['V0', 6], ['V1', 6]], 1, 3, 2],
[[['V0'], ['V0'], ['V1']], [['V0', None], ['V1', None]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 4], ['V1', 6], ['V2', 2], ['V3', 2], ['V4', 5]], 3, 5, 3],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V3'], ['V0', 'V3', 'V4'], ['V1', 'V4']],
[['V0', 4], ['V1', None], ['V2', 2], ['V3', 4], ['V4', None]]]],
['control 1', [[['V0', 2], ['V1', 3], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 3]], 3, 3, 2],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V3', 'V4', 'V5']],
[['V0', 2], ['V1', None], ['V2', None], ['V3', None], ['V4', 3], ['V5', None]]]],
['control 2', [[['V0', 2], ['V1', 6], ['V2', 6]], 1, 10, 2],
[[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V1'], ['V1'], ['V2'], ['V2']],
[['V0', 2], ['V1', None], ['V2', None]]]]],
[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],
[[['B'], ['B'], []], [['A', 0], ['B', 2]]]],
['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],
[[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],
['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],
[[['A'], ['A'], ['A'], []], [['A', 3]]]],
['regression: preempted vehicle queue position',
[[['V0', 5], ['V1', 5], ['V2', 6], ['V3', 0], ['V4', 6]], 3, 8, 3],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V4'],
['V0', 'V1', 'V4'], ['V2', 'V4'], ['V2', 'V4'], ['V2', 'V4']],
[['V0', 5], ['V1', 5], ['V2', 8], ['V3', 0], ['V4', None]]]],
['regression: preempted vehicle queue position (partial repair)',
[[['V0', 5], ['V1', 3], ['V2', 2], ['V3', 1], ['V4', 3]], 3, 3, 2],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V3', 'V4']],
[['V0', None], ['V1', None], ['V2', 2], ['V3', 3], ['V4', None]]]],
['control 1', [[['V0', 4], ['V1', 3], ['V2', 4], ['V3', 5], ['V4', 6]], 3, 3, 3],
[[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2']],
[['V0', None], ['V1', 3], ['V2', None], ['V3', None], ['V4', None]]]],
['control 2', [[['V0', 4], ['V1', 0], ['V2', 0], ['V3', 4], ['V4', 2]], 1, 12, 1],
[[['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V0'], ['V3'], [], []],
[['V0', 9], ['V1', 0], ['V2', 0], ['V3', 10], ['V4', 6]]]]]]
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 |
|---|---|---|---|
| boundary: vehicle needing nothing | [[['B'], ['B'], []], [['A', 0], ['B', 2]]] | [[['B'], ['B'], []], [['A', 0], ['B', 2]]] | Passed |
| boundary: finishes exactly at quantum end | [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]] | [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]] | Passed |
| boundary: more ports than vehicles | [[['A'], ['A'], ['A'], []], [['A', 3]]] | [[['A'], ['A'], ['A'], []], [['A', 3]]] | Passed |
| regression: preempted vehicle queue position | [[['V0'], ['V1'], ['V0'], ['V1'], ['V0'], ['V1'], ['V0'], ['V1'], ['V3']], [['V0', 7], ['V1', 8], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]] | [[['V0'], ['V1'], ['V3'], ['V4'], ['V0'], ['V1'], ['V3'], ['V4'], ['V0']], [['V0', None], ['V1', None], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]] | Failed |
| regression: preempted vehicle queue position (partial repair) | [[['V0'], ['V1'], ['V0']], [['V0', None], ['V1', None], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]] | [[['V0'], ['V1'], ['V2']], [['V0', None], ['V1', None], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]] | Failed |
| control 1 | [[['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V1'], ['V1'], ['V2'], ['V2'], ['V3']], [['V0', 1], ['V1', 7], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]] | [[['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V3'], ['V3'], ['V4'], ['V4'], ['V5']], [['V0', 1], ['V1', None], ['V2', None], ['V3', 7], ['V4', None], ['V5', None]]] | Failed |
| control 2 | [[['V0'], ['V0'], ['V1'], ['V1'], ['V0'], ['V0']], [['V0', None], ['V1', None], ['V2', None]]] | [[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2']], [['V0', None], ['V1', None], ['V2', 6]]] | Failed |
SHA-256 / 2ec7a0ee08f1fc826fcbc89e97f60721f4110ce06c9ef131523e1dd18adadab1
HELD IN THE MEMBER ARCHIVE
The verified repair and its recorded checks are member-only.
This mechanism has 7 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.
Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.
Member access is invitation-based. Sign in with your invited account to inspect the repair.
Sign in to the archive ↗Verification & scope
Deterministic stipulated toy contract for teaching; no claim of conformance with any standard, vendor protocol or production controller. 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:51:51.767733+00:00.
Case digest / 3f4d3f507f6c925ebc8ff4e85595687cd43f094c1e450adc3f04f9306574a24f