{"abstract":"Only one waiting vehicle is connected per slot even when several ports are free.","category":"EV charging session scheduling","checks":7,"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.","evaluation_group":"w2-ev_charging_session_scheduling-round-robin-port-rotation","failed_approach":"Holding one port in reserve leaves capacity idle.","family":"w2-ev_charging_session_scheduling-round-robin-port-rotation-port-refill-loop","id":"FA-93086","implementations":{"attempt":{"sha256":"cc5532df5a04008f887b8d7e903e9db76311d82da99ff8eb3b6a3198db22ee76","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(vehicles, ports, slots, quantum):\n    queue = [[vid, need] for vid, need in vehicles if need > 0]\n    done = {vid: (0 if need <= 0 else None) for vid, need in vehicles}\n    active = []\n    timeline = []\n    for t in range(slots):\n        while len(active) < ports - 1 and queue:\n            v = queue.pop(0)\n            active.append([v[0], v[1], quantum])\n        timeline.append(sorted(a[0] for a in active))\n        nxt = []\n        for a in active:\n            a[1] -= 1\n            a[2] -= 1\n            if a[1] == 0:\n                done[a[0]] = t + 1\n            elif a[2] == 0:\n                queue.append([a[0], a[1]])\n            else:\n                nxt.append(a)\n        active = nxt\n    return [timeline, [[k, done[k]] for k in sorted(done)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop', [[['V0', 2], ['V1', 0], ['V2', 3]], 3, 8, 1],\n   [[['V0', 'V2'], ['V0', 'V2'], ['V2'], [], [], [], [], []], [['V0', 2], ['V1', 0], ['V2', 3]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 4], ['V1', 4], ['V2', 0], ['V3', 5], ['V4', 6], ['V5', 0]], 1, 9, 1],\n   [[['V0'], ['V1'], ['V3'], ['V4'], ['V0'], ['V1'], ['V3'], ['V4'], ['V0']],\n    [['V0', None], ['V1', None], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]]],\n  ['control 1', [[['V0', 1], ['V1', 4], ['V2', 6], ['V3', 2], ['V4', 5], ['V5', 5]], 1, 10, 2],\n   [[['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V3'], ['V3'], ['V4'], ['V4'], ['V5']],\n    [['V0', 1], ['V1', None], ['V2', None], ['V3', 7], ['V4', None], ['V5', None]]]],\n  ['control 2', [[['V0', 5], ['V1', 3], ['V2', 2]], 1, 6, 2],\n   [[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2']], [['V0', None], ['V1', None], ['V2', 6]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 1], ['V1', 3], ['V2', 2], ['V3', 6], ['V4', 0], ['V5', 0]], 2, 5, 3],\n   [[['V0', 'V1'], ['V1', 'V2'], ['V1', 'V2'], ['V3'], ['V3']],\n    [['V0', 1], ['V1', 3], ['V2', 3], ['V3', None], ['V4', 0], ['V5', 0]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 5], ['V1', 2], ['V2', 5], ['V3', 1], ['V4', 2], ['V5', 5]], 1, 12, 3],\n   [[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V4'], ['V4'],\n     ['V5']],\n    [['V0', None], ['V1', 5], ['V2', None], ['V3', 9], ['V4', 11], ['V5', None]]]],\n  ['control 1', [[['V0', 1], ['V1', 6], ['V2', 6], ['V3', 1], ['V4', 1]], 1, 7, 3],\n   [[['V0'], ['V1'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2']],\n    [['V0', 1], ['V1', None], ['V2', None], ['V3', None], ['V4', None]]]],\n  ['control 2', [[['V0', 2], ['V1', 2], ['V2', 3], ['V3', 0], ['V4', 4], ['V5', 3]], 1, 3, 3],\n   [[['V0'], ['V0'], ['V1']],\n    [['V0', 2], ['V1', None], ['V2', None], ['V3', 0], ['V4', None], ['V5', None]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 4], ['V1', 0], ['V2', 3], ['V3', 1], ['V4', 0], ['V5', 4]], 2, 8, 2],\n   [[['V0', 'V2'], ['V0', 'V2'], ['V3', 'V5'], ['V0', 'V5'], ['V0', 'V2'], ['V5'], ['V5'], []],\n    [['V0', 5], ['V1', 0], ['V2', 5], ['V3', 3], ['V4', 0], ['V5', 7]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 4], ['V1', 2], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 6]], 1, 10, 3],\n   [[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V3']],\n    [['V0', None], ['V1', 5], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],\n  ['control 1', [[['V0', 0], ['V1', 6], ['V2', 4]], 2, 7, 3],\n   [[['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1'], ['V1'], []],\n    [['V0', 0], ['V1', 6], ['V2', 4]]]],\n  ['control 2', [[['V0', 3], ['V1', 0]], 1, 3, 1],\n   [[['V0'], ['V0'], ['V0']], [['V0', 3], ['V1', 0]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 4], ['V1', 6], ['V2', 2], ['V3', 2], ['V4', 5]], 3, 5, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V3'], ['V0', 'V3', 'V4'], ['V1', 'V4']],\n    [['V0', 4], ['V1', None], ['V2', 2], ['V3', 4], ['V4', None]]]],\n  ['regression: port refill loop (partial repair)', [[['V0', 6], ['V1', 6]], 1, 3, 2],\n   [[['V0'], ['V0'], ['V1']], [['V0', None], ['V1', None]]]],\n  ['control 1', [[['V0', 2], ['V1', 3], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 3]], 3, 3, 2],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V3', 'V4', 'V5']],\n    [['V0', 2], ['V1', None], ['V2', None], ['V3', None], ['V4', 3], ['V5', None]]]],\n  ['control 2', [[['V0', 2], ['V1', 6], ['V2', 6]], 1, 10, 2],\n   [[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V1'], ['V1'], ['V2'], ['V2']],\n    [['V0', 2], ['V1', None], ['V2', None]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 5], ['V1', 5], ['V2', 6], ['V3', 0], ['V4', 6]], 3, 8, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V4'],\n     ['V0', 'V1', 'V4'], ['V2', 'V4'], ['V2', 'V4'], ['V2', 'V4']],\n    [['V0', 5], ['V1', 5], ['V2', 8], ['V3', 0], ['V4', None]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 3], ['V1', 1], ['V2', 1], ['V3', 1], ['V4', 5], ['V5', 2]], 1, 3, 2],\n   [[['V0'], ['V0'], ['V1']],\n    [['V0', None], ['V1', 3], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],\n  ['control 1', [[['V0', 4], ['V1', 3], ['V2', 4], ['V3', 5], ['V4', 6]], 3, 3, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2']],\n    [['V0', None], ['V1', 3], ['V2', None], ['V3', None], ['V4', None]]]],\n  ['control 2', [[['V0', 4], ['V1', 0], ['V2', 0], ['V3', 4], ['V4', 2]], 1, 12, 1],\n   [[['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V0'], ['V3'], [], []],\n    [['V0', 9], ['V1', 0], ['V2', 0], ['V3', 10], ['V4', 6]]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"bf8e0bca8072d20ae1280f050a3f167284ce7dc156c662f81dd4d511350f7291","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(vehicles, ports, slots, quantum):\n    queue = [[vid, need] for vid, need in vehicles if need > 0]\n    done = {vid: (0 if need <= 0 else None) for vid, need in vehicles}\n    active = []\n    timeline = []\n    for t in range(slots):\n        if len(active) < ports and queue:\n            v = queue.pop(0)\n            active.append([v[0], v[1], quantum])\n        timeline.append(sorted(a[0] for a in active))\n        nxt = []\n        for a in active:\n            a[1] -= 1\n            a[2] -= 1\n            if a[1] == 0:\n                done[a[0]] = t + 1\n            elif a[2] == 0:\n                queue.append([a[0], a[1]])\n            else:\n                nxt.append(a)\n        active = nxt\n    return [timeline, [[k, done[k]] for k in sorted(done)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop', [[['V0', 2], ['V1', 0], ['V2', 3]], 3, 8, 1],\n   [[['V0', 'V2'], ['V0', 'V2'], ['V2'], [], [], [], [], []], [['V0', 2], ['V1', 0], ['V2', 3]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 4], ['V1', 4], ['V2', 0], ['V3', 5], ['V4', 6], ['V5', 0]], 1, 9, 1],\n   [[['V0'], ['V1'], ['V3'], ['V4'], ['V0'], ['V1'], ['V3'], ['V4'], ['V0']],\n    [['V0', None], ['V1', None], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]]],\n  ['control 1', [[['V0', 1], ['V1', 4], ['V2', 6], ['V3', 2], ['V4', 5], ['V5', 5]], 1, 10, 2],\n   [[['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V3'], ['V3'], ['V4'], ['V4'], ['V5']],\n    [['V0', 1], ['V1', None], ['V2', None], ['V3', 7], ['V4', None], ['V5', None]]]],\n  ['control 2', [[['V0', 5], ['V1', 3], ['V2', 2]], 1, 6, 2],\n   [[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2']], [['V0', None], ['V1', None], ['V2', 6]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 1], ['V1', 3], ['V2', 2], ['V3', 6], ['V4', 0], ['V5', 0]], 2, 5, 3],\n   [[['V0', 'V1'], ['V1', 'V2'], ['V1', 'V2'], ['V3'], ['V3']],\n    [['V0', 1], ['V1', 3], ['V2', 3], ['V3', None], ['V4', 0], ['V5', 0]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 5], ['V1', 2], ['V2', 5], ['V3', 1], ['V4', 2], ['V5', 5]], 1, 12, 3],\n   [[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V4'], ['V4'],\n     ['V5']],\n    [['V0', None], ['V1', 5], ['V2', None], ['V3', 9], ['V4', 11], ['V5', None]]]],\n  ['control 1', [[['V0', 1], ['V1', 6], ['V2', 6], ['V3', 1], ['V4', 1]], 1, 7, 3],\n   [[['V0'], ['V1'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2']],\n    [['V0', 1], ['V1', None], ['V2', None], ['V3', None], ['V4', None]]]],\n  ['control 2', [[['V0', 2], ['V1', 2], ['V2', 3], ['V3', 0], ['V4', 4], ['V5', 3]], 1, 3, 3],\n   [[['V0'], ['V0'], ['V1']],\n    [['V0', 2], ['V1', None], ['V2', None], ['V3', 0], ['V4', None], ['V5', None]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 4], ['V1', 0], ['V2', 3], ['V3', 1], ['V4', 0], ['V5', 4]], 2, 8, 2],\n   [[['V0', 'V2'], ['V0', 'V2'], ['V3', 'V5'], ['V0', 'V5'], ['V0', 'V2'], ['V5'], ['V5'], []],\n    [['V0', 5], ['V1', 0], ['V2', 5], ['V3', 3], ['V4', 0], ['V5', 7]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 4], ['V1', 2], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 6]], 1, 10, 3],\n   [[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V3']],\n    [['V0', None], ['V1', 5], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],\n  ['control 1', [[['V0', 0], ['V1', 6], ['V2', 4]], 2, 7, 3],\n   [[['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1'], ['V1'], []],\n    [['V0', 0], ['V1', 6], ['V2', 4]]]],\n  ['control 2', [[['V0', 3], ['V1', 0]], 1, 3, 1],\n   [[['V0'], ['V0'], ['V0']], [['V0', 3], ['V1', 0]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 4], ['V1', 6], ['V2', 2], ['V3', 2], ['V4', 5]], 3, 5, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V3'], ['V0', 'V3', 'V4'], ['V1', 'V4']],\n    [['V0', 4], ['V1', None], ['V2', 2], ['V3', 4], ['V4', None]]]],\n  ['regression: port refill loop (partial repair)', [[['V0', 6], ['V1', 6]], 1, 3, 2],\n   [[['V0'], ['V0'], ['V1']], [['V0', None], ['V1', None]]]],\n  ['control 1', [[['V0', 2], ['V1', 3], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 3]], 3, 3, 2],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V3', 'V4', 'V5']],\n    [['V0', 2], ['V1', None], ['V2', None], ['V3', None], ['V4', 3], ['V5', None]]]],\n  ['control 2', [[['V0', 2], ['V1', 6], ['V2', 6]], 1, 10, 2],\n   [[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V1'], ['V1'], ['V2'], ['V2']],\n    [['V0', 2], ['V1', None], ['V2', None]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 5], ['V1', 5], ['V2', 6], ['V3', 0], ['V4', 6]], 3, 8, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V4'],\n     ['V0', 'V1', 'V4'], ['V2', 'V4'], ['V2', 'V4'], ['V2', 'V4']],\n    [['V0', 5], ['V1', 5], ['V2', 8], ['V3', 0], ['V4', None]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 3], ['V1', 1], ['V2', 1], ['V3', 1], ['V4', 5], ['V5', 2]], 1, 3, 2],\n   [[['V0'], ['V0'], ['V1']],\n    [['V0', None], ['V1', 3], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],\n  ['control 1', [[['V0', 4], ['V1', 3], ['V2', 4], ['V3', 5], ['V4', 6]], 3, 3, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2']],\n    [['V0', None], ['V1', 3], ['V2', None], ['V3', None], ['V4', None]]]],\n  ['control 2', [[['V0', 4], ['V1', 0], ['V2', 0], ['V3', 4], ['V4', 2]], 1, 12, 1],\n   [[['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V0'], ['V3'], [], []],\n    [['V0', 9], ['V1', 0], ['V2', 0], ['V3', 10], ['V4', 6]]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"aa4f76fbc186b050a90ecd2197e11baa1b428400710755bbf45f166e9a4a2355","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(vehicles, ports, slots, quantum):\n    queue = [[vid, need] for vid, need in vehicles if need > 0]\n    done = {vid: (0 if need <= 0 else None) for vid, need in vehicles}\n    active = []\n    timeline = []\n    for t in range(slots):\n        while len(active) < ports and queue:\n            v = queue.pop(0)\n            active.append([v[0], v[1], quantum])\n        timeline.append(sorted(a[0] for a in active))\n        nxt = []\n        for a in active:\n            a[1] -= 1\n            a[2] -= 1\n            if a[1] == 0:\n                done[a[0]] = t + 1\n            elif a[2] == 0:\n                queue.append([a[0], a[1]])\n            else:\n                nxt.append(a)\n        active = nxt\n    return [timeline, [[k, done[k]] for k in sorted(done)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop', [[['V0', 2], ['V1', 0], ['V2', 3]], 3, 8, 1],\n   [[['V0', 'V2'], ['V0', 'V2'], ['V2'], [], [], [], [], []], [['V0', 2], ['V1', 0], ['V2', 3]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 4], ['V1', 4], ['V2', 0], ['V3', 5], ['V4', 6], ['V5', 0]], 1, 9, 1],\n   [[['V0'], ['V1'], ['V3'], ['V4'], ['V0'], ['V1'], ['V3'], ['V4'], ['V0']],\n    [['V0', None], ['V1', None], ['V2', 0], ['V3', None], ['V4', None], ['V5', 0]]]],\n  ['control 1', [[['V0', 1], ['V1', 4], ['V2', 6], ['V3', 2], ['V4', 5], ['V5', 5]], 1, 10, 2],\n   [[['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V3'], ['V3'], ['V4'], ['V4'], ['V5']],\n    [['V0', 1], ['V1', None], ['V2', None], ['V3', 7], ['V4', None], ['V5', None]]]],\n  ['control 2', [[['V0', 5], ['V1', 3], ['V2', 2]], 1, 6, 2],\n   [[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2']], [['V0', None], ['V1', None], ['V2', 6]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 1], ['V1', 3], ['V2', 2], ['V3', 6], ['V4', 0], ['V5', 0]], 2, 5, 3],\n   [[['V0', 'V1'], ['V1', 'V2'], ['V1', 'V2'], ['V3'], ['V3']],\n    [['V0', 1], ['V1', 3], ['V2', 3], ['V3', None], ['V4', 0], ['V5', 0]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 5], ['V1', 2], ['V2', 5], ['V3', 1], ['V4', 2], ['V5', 5]], 1, 12, 3],\n   [[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V4'], ['V4'],\n     ['V5']],\n    [['V0', None], ['V1', 5], ['V2', None], ['V3', 9], ['V4', 11], ['V5', None]]]],\n  ['control 1', [[['V0', 1], ['V1', 6], ['V2', 6], ['V3', 1], ['V4', 1]], 1, 7, 3],\n   [[['V0'], ['V1'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2']],\n    [['V0', 1], ['V1', None], ['V2', None], ['V3', None], ['V4', None]]]],\n  ['control 2', [[['V0', 2], ['V1', 2], ['V2', 3], ['V3', 0], ['V4', 4], ['V5', 3]], 1, 3, 3],\n   [[['V0'], ['V0'], ['V1']],\n    [['V0', 2], ['V1', None], ['V2', None], ['V3', 0], ['V4', None], ['V5', None]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 4], ['V1', 0], ['V2', 3], ['V3', 1], ['V4', 0], ['V5', 4]], 2, 8, 2],\n   [[['V0', 'V2'], ['V0', 'V2'], ['V3', 'V5'], ['V0', 'V5'], ['V0', 'V2'], ['V5'], ['V5'], []],\n    [['V0', 5], ['V1', 0], ['V2', 5], ['V3', 3], ['V4', 0], ['V5', 7]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 4], ['V1', 2], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 6]], 1, 10, 3],\n   [[['V0'], ['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V2'], ['V3'], ['V3']],\n    [['V0', None], ['V1', 5], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],\n  ['control 1', [[['V0', 0], ['V1', 6], ['V2', 4]], 2, 7, 3],\n   [[['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1', 'V2'], ['V1'], ['V1'], []],\n    [['V0', 0], ['V1', 6], ['V2', 4]]]],\n  ['control 2', [[['V0', 3], ['V1', 0]], 1, 3, 1],\n   [[['V0'], ['V0'], ['V0']], [['V0', 3], ['V1', 0]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 4], ['V1', 6], ['V2', 2], ['V3', 2], ['V4', 5]], 3, 5, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V3'], ['V0', 'V3', 'V4'], ['V1', 'V4']],\n    [['V0', 4], ['V1', None], ['V2', 2], ['V3', 4], ['V4', None]]]],\n  ['regression: port refill loop (partial repair)', [[['V0', 6], ['V1', 6]], 1, 3, 2],\n   [[['V0'], ['V0'], ['V1']], [['V0', None], ['V1', None]]]],\n  ['control 1', [[['V0', 2], ['V1', 3], ['V2', 6], ['V3', 6], ['V4', 1], ['V5', 3]], 3, 3, 2],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V3', 'V4', 'V5']],\n    [['V0', 2], ['V1', None], ['V2', None], ['V3', None], ['V4', 3], ['V5', None]]]],\n  ['control 2', [[['V0', 2], ['V1', 6], ['V2', 6]], 1, 10, 2],\n   [[['V0'], ['V0'], ['V1'], ['V1'], ['V2'], ['V2'], ['V1'], ['V1'], ['V2'], ['V2']],\n    [['V0', 2], ['V1', None], ['V2', None]]]]],\n [['boundary: vehicle needing nothing', [[['A', 0], ['B', 2]], 1, 3, 1],\n   [[['B'], ['B'], []], [['A', 0], ['B', 2]]]],\n  ['boundary: finishes exactly at quantum end', [[['A', 2], ['B', 2]], 1, 5, 2],\n   [[['A'], ['A'], ['B'], ['B'], []], [['A', 2], ['B', 4]]]],\n  ['boundary: more ports than vehicles', [[['A', 3]], 2, 4, 1],\n   [[['A'], ['A'], ['A'], []], [['A', 3]]]],\n  ['regression: port refill loop',\n   [[['V0', 5], ['V1', 5], ['V2', 6], ['V3', 0], ['V4', 6]], 3, 8, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V4'],\n     ['V0', 'V1', 'V4'], ['V2', 'V4'], ['V2', 'V4'], ['V2', 'V4']],\n    [['V0', 5], ['V1', 5], ['V2', 8], ['V3', 0], ['V4', None]]]],\n  ['regression: port refill loop (partial repair)',\n   [[['V0', 3], ['V1', 1], ['V2', 1], ['V3', 1], ['V4', 5], ['V5', 2]], 1, 3, 2],\n   [[['V0'], ['V0'], ['V1']],\n    [['V0', None], ['V1', 3], ['V2', None], ['V3', None], ['V4', None], ['V5', None]]]],\n  ['control 1', [[['V0', 4], ['V1', 3], ['V2', 4], ['V3', 5], ['V4', 6]], 3, 3, 3],\n   [[['V0', 'V1', 'V2'], ['V0', 'V1', 'V2'], ['V0', 'V1', 'V2']],\n    [['V0', None], ['V1', 3], ['V2', None], ['V3', None], ['V4', None]]]],\n  ['control 2', [[['V0', 4], ['V1', 0], ['V2', 0], ['V3', 4], ['V4', 2]], 1, 12, 1],\n   [[['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V4'], ['V0'], ['V3'], ['V0'], ['V3'], [], []],\n    [['V0', 9], ['V1', 0], ['V2', 0], ['V3', 10], ['V4', 6]]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-ev_charging_session_scheduling-round-robin-port-rotation-port-refill-loop","generated_at":"2026-09-29T14:51:51.853019+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"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.","repair":"Keep admitting until every port is busy or the queue is empty.","root_cause":"Port refill admits at most one vehicle per slot.","sha256":"d76f76a349c87e7b56eb80dd7b15eb2aadef351794a2d7261adf20ffd23522d3","title":"Round-robin port rotation: port refill loop · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.271,"exit_code":1,"observations":[{"actual":[[[],[],[]],[["A",0],["B",null]]],"check":"boundary: vehicle needing nothing","expected":[[["B"],["B"],[]],[["A",0],["B",2]]],"passed":false},{"actual":[[[],[],[],[],[]],[["A",null],["B",null]]],"check":"boundary: finishes exactly at quantum end","expected":[[["A"],["A"],["B"],["B"],[]],[["A",2],["B",4]]],"passed":false},{"actual":[[["A"],["A"],["A"],[]],[["A",3]]],"check":"boundary: more ports than vehicles","expected":[[["A"],["A"],["A"],[]],[["A",3]]],"passed":true},{"actual":[[["V0","V2"],["V0","V2"],["V2"],[],[],[],[],[]],[["V0",2],["V1",0],["V2",3]]],"check":"regression: port refill loop","expected":[[["V0","V2"],["V0","V2"],["V2"],[],[],[],[],[]],[["V0",2],["V1",0],["V2",3]]],"passed":true},{"actual":[[[],[],[],[],[],[],[],[],[]],[["V0",null],["V1",null],["V2",0],["V3",null],["V4",null],["V5",0]]],"check":"regression: port refill loop (partial repair)","expected":[[["V0"],["V1"],["V3"],["V4"],["V0"],["V1"],["V3"],["V4"],["V0"]],[["V0",null],["V1",null],["V2",0],["V3",null],["V4",null],["V5",0]]],"passed":false},{"actual":[[[],[],[],[],[],[],[],[],[],[]],[["V0",null],["V1",null],["V2",null],["V3",null],["V4",null],["V5",null]]],"check":"control 1","expected":[[["V0"],["V1"],["V1"],["V2"],["V2"],["V3"],["V3"],["V4"],["V4"],["V5"]],[["V0",1],["V1",null],["V2",null],["V3",7],["V4",null],["V5",null]]],"passed":false},{"actual":[[[],[],[],[],[],[]],[["V0",null],["V1",null],["V2",null]]],"check":"control 2","expected":[[["V0"],["V0"],["V1"],["V1"],["V2"],["V2"]],[["V0",null],["V1",null],["V2",6]]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"boundary: vehicle needing nothing\", \"actual\": [[[], [], []], [[\"A\", 0], [\"B\", null]]], \"expected\": [[[\"B\"], [\"B\"], []], [[\"A\", 0], [\"B\", 2]]], \"passed\": false}, {\"check\": \"boundary: finishes exactly at quantum end\", \"actual\": [[[], [], [], [], []], [[\"A\", null], [\"B\", null]]], \"expected\": [[[\"A\"], [\"A\"], [\"B\"], [\"B\"], []], [[\"A\", 2], [\"B\", 4]]], \"passed\": false}, {\"check\": \"boundary: more ports than vehicles\", \"actual\": [[[\"A\"], [\"A\"], [\"A\"], []], [[\"A\", 3]]], \"expected\": [[[\"A\"], [\"A\"], [\"A\"], []], [[\"A\", 3]]], \"passed\": true}, {\"check\": \"regression: port refill loop\", \"actual\": [[[\"V0\", \"V2\"], [\"V0\", \"V2\"], [\"V2\"], [], [], [], [], []], [[\"V0\", 2], [\"V1\", 0], [\"V2\", 3]]], \"expected\": [[[\"V0\", \"V2\"], [\"V0\", \"V2\"], [\"V2\"], [], [], [], [], []], [[\"V0\", 2], [\"V1\", 0], [\"V2\", 3]]], \"passed\": true}, {\"check\": \"regression: port refill loop (partial repair)\", \"actual\": [[[], [], [], [], [], [], [], [], []], [[\"V0\", null], [\"V1\", null], [\"V2\", 0], [\"V3\", null], [\"V4\", null], [\"V5\", 0]]], \"expected\": [[[\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 0], [\"V3\", null], [\"V4\", null], [\"V5\", 0]]], \"passed\": false}, {\"check\": \"control 1\", \"actual\": [[[], [], [], [], [], [], [], [], [], []], [[\"V0\", null], [\"V1\", null], [\"V2\", null], [\"V3\", null], [\"V4\", null], [\"V5\", null]]], \"expected\": [[[\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"], [\"V3\"], [\"V3\"], [\"V4\"], [\"V4\"], [\"V5\"]], [[\"V0\", 1], [\"V1\", null], [\"V2\", null], [\"V3\", 7], [\"V4\", null], [\"V5\", null]]], \"passed\": false}, {\"check\": \"control 2\", \"actual\": [[[], [], [], [], [], []], [[\"V0\", null], [\"V1\", null], [\"V2\", null]]], \"expected\": [[[\"V0\"], [\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 6]]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.716,"exit_code":1,"observations":[{"actual":[[["B"],["B"],[]],[["A",0],["B",2]]],"check":"boundary: vehicle needing nothing","expected":[[["B"],["B"],[]],[["A",0],["B",2]]],"passed":true},{"actual":[[["A"],["A"],["B"],["B"],[]],[["A",2],["B",4]]],"check":"boundary: finishes exactly at quantum end","expected":[[["A"],["A"],["B"],["B"],[]],[["A",2],["B",4]]],"passed":true},{"actual":[[["A"],["A"],["A"],[]],[["A",3]]],"check":"boundary: more ports than vehicles","expected":[[["A"],["A"],["A"],[]],[["A",3]]],"passed":true},{"actual":[[["V0"],["V2"],["V0"],["V2"],["V2"],[],[],[]],[["V0",3],["V1",0],["V2",5]]],"check":"regression: port refill loop","expected":[[["V0","V2"],["V0","V2"],["V2"],[],[],[],[],[]],[["V0",2],["V1",0],["V2",3]]],"passed":false},{"actual":[[["V0"],["V1"],["V3"],["V4"],["V0"],["V1"],["V3"],["V4"],["V0"]],[["V0",null],["V1",null],["V2",0],["V3",null],["V4",null],["V5",0]]],"check":"regression: port refill loop (partial repair)","expected":[[["V0"],["V1"],["V3"],["V4"],["V0"],["V1"],["V3"],["V4"],["V0"]],[["V0",null],["V1",null],["V2",0],["V3",null],["V4",null],["V5",0]]],"passed":true},{"actual":[[["V0"],["V1"],["V1"],["V2"],["V2"],["V3"],["V3"],["V4"],["V4"],["V5"]],[["V0",1],["V1",null],["V2",null],["V3",7],["V4",null],["V5",null]]],"check":"control 1","expected":[[["V0"],["V1"],["V1"],["V2"],["V2"],["V3"],["V3"],["V4"],["V4"],["V5"]],[["V0",1],["V1",null],["V2",null],["V3",7],["V4",null],["V5",null]]],"passed":true},{"actual":[[["V0"],["V0"],["V1"],["V1"],["V2"],["V2"]],[["V0",null],["V1",null],["V2",6]]],"check":"control 2","expected":[[["V0"],["V0"],["V1"],["V1"],["V2"],["V2"]],[["V0",null],["V1",null],["V2",6]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"boundary: vehicle needing nothing\", \"actual\": [[[\"B\"], [\"B\"], []], [[\"A\", 0], [\"B\", 2]]], \"expected\": [[[\"B\"], [\"B\"], []], [[\"A\", 0], [\"B\", 2]]], \"passed\": true}, {\"check\": \"boundary: finishes exactly at quantum end\", \"actual\": [[[\"A\"], [\"A\"], [\"B\"], [\"B\"], []], [[\"A\", 2], [\"B\", 4]]], \"expected\": [[[\"A\"], [\"A\"], [\"B\"], [\"B\"], []], [[\"A\", 2], [\"B\", 4]]], \"passed\": true}, {\"check\": \"boundary: more ports than vehicles\", \"actual\": [[[\"A\"], [\"A\"], [\"A\"], []], [[\"A\", 3]]], \"expected\": [[[\"A\"], [\"A\"], [\"A\"], []], [[\"A\", 3]]], \"passed\": true}, {\"check\": \"regression: port refill loop\", \"actual\": [[[\"V0\"], [\"V2\"], [\"V0\"], [\"V2\"], [\"V2\"], [], [], []], [[\"V0\", 3], [\"V1\", 0], [\"V2\", 5]]], \"expected\": [[[\"V0\", \"V2\"], [\"V0\", \"V2\"], [\"V2\"], [], [], [], [], []], [[\"V0\", 2], [\"V1\", 0], [\"V2\", 3]]], \"passed\": false}, {\"check\": \"regression: port refill loop (partial repair)\", \"actual\": [[[\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 0], [\"V3\", null], [\"V4\", null], [\"V5\", 0]]], \"expected\": [[[\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 0], [\"V3\", null], [\"V4\", null], [\"V5\", 0]]], \"passed\": true}, {\"check\": \"control 1\", \"actual\": [[[\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"], [\"V3\"], [\"V3\"], [\"V4\"], [\"V4\"], [\"V5\"]], [[\"V0\", 1], [\"V1\", null], [\"V2\", null], [\"V3\", 7], [\"V4\", null], [\"V5\", null]]], \"expected\": [[[\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"], [\"V3\"], [\"V3\"], [\"V4\"], [\"V4\"], [\"V5\"]], [[\"V0\", 1], [\"V1\", null], [\"V2\", null], [\"V3\", 7], [\"V4\", null], [\"V5\", null]]], \"passed\": true}, {\"check\": \"control 2\", \"actual\": [[[\"V0\"], [\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 6]]], \"expected\": [[[\"V0\"], [\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 6]]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.513,"exit_code":0,"observations":[{"actual":[[["B"],["B"],[]],[["A",0],["B",2]]],"check":"boundary: vehicle needing nothing","expected":[[["B"],["B"],[]],[["A",0],["B",2]]],"passed":true},{"actual":[[["A"],["A"],["B"],["B"],[]],[["A",2],["B",4]]],"check":"boundary: finishes exactly at quantum end","expected":[[["A"],["A"],["B"],["B"],[]],[["A",2],["B",4]]],"passed":true},{"actual":[[["A"],["A"],["A"],[]],[["A",3]]],"check":"boundary: more ports than vehicles","expected":[[["A"],["A"],["A"],[]],[["A",3]]],"passed":true},{"actual":[[["V0","V2"],["V0","V2"],["V2"],[],[],[],[],[]],[["V0",2],["V1",0],["V2",3]]],"check":"regression: port refill loop","expected":[[["V0","V2"],["V0","V2"],["V2"],[],[],[],[],[]],[["V0",2],["V1",0],["V2",3]]],"passed":true},{"actual":[[["V0"],["V1"],["V3"],["V4"],["V0"],["V1"],["V3"],["V4"],["V0"]],[["V0",null],["V1",null],["V2",0],["V3",null],["V4",null],["V5",0]]],"check":"regression: port refill loop (partial repair)","expected":[[["V0"],["V1"],["V3"],["V4"],["V0"],["V1"],["V3"],["V4"],["V0"]],[["V0",null],["V1",null],["V2",0],["V3",null],["V4",null],["V5",0]]],"passed":true},{"actual":[[["V0"],["V1"],["V1"],["V2"],["V2"],["V3"],["V3"],["V4"],["V4"],["V5"]],[["V0",1],["V1",null],["V2",null],["V3",7],["V4",null],["V5",null]]],"check":"control 1","expected":[[["V0"],["V1"],["V1"],["V2"],["V2"],["V3"],["V3"],["V4"],["V4"],["V5"]],[["V0",1],["V1",null],["V2",null],["V3",7],["V4",null],["V5",null]]],"passed":true},{"actual":[[["V0"],["V0"],["V1"],["V1"],["V2"],["V2"]],[["V0",null],["V1",null],["V2",6]]],"check":"control 2","expected":[[["V0"],["V0"],["V1"],["V1"],["V2"],["V2"]],[["V0",null],["V1",null],["V2",6]]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"boundary: vehicle needing nothing\", \"actual\": [[[\"B\"], [\"B\"], []], [[\"A\", 0], [\"B\", 2]]], \"expected\": [[[\"B\"], [\"B\"], []], [[\"A\", 0], [\"B\", 2]]], \"passed\": true}, {\"check\": \"boundary: finishes exactly at quantum end\", \"actual\": [[[\"A\"], [\"A\"], [\"B\"], [\"B\"], []], [[\"A\", 2], [\"B\", 4]]], \"expected\": [[[\"A\"], [\"A\"], [\"B\"], [\"B\"], []], [[\"A\", 2], [\"B\", 4]]], \"passed\": true}, {\"check\": \"boundary: more ports than vehicles\", \"actual\": [[[\"A\"], [\"A\"], [\"A\"], []], [[\"A\", 3]]], \"expected\": [[[\"A\"], [\"A\"], [\"A\"], []], [[\"A\", 3]]], \"passed\": true}, {\"check\": \"regression: port refill loop\", \"actual\": [[[\"V0\", \"V2\"], [\"V0\", \"V2\"], [\"V2\"], [], [], [], [], []], [[\"V0\", 2], [\"V1\", 0], [\"V2\", 3]]], \"expected\": [[[\"V0\", \"V2\"], [\"V0\", \"V2\"], [\"V2\"], [], [], [], [], []], [[\"V0\", 2], [\"V1\", 0], [\"V2\", 3]]], \"passed\": true}, {\"check\": \"regression: port refill loop (partial repair)\", \"actual\": [[[\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 0], [\"V3\", null], [\"V4\", null], [\"V5\", 0]]], \"expected\": [[[\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"], [\"V1\"], [\"V3\"], [\"V4\"], [\"V0\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 0], [\"V3\", null], [\"V4\", null], [\"V5\", 0]]], \"passed\": true}, {\"check\": \"control 1\", \"actual\": [[[\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"], [\"V3\"], [\"V3\"], [\"V4\"], [\"V4\"], [\"V5\"]], [[\"V0\", 1], [\"V1\", null], [\"V2\", null], [\"V3\", 7], [\"V4\", null], [\"V5\", null]]], \"expected\": [[[\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"], [\"V3\"], [\"V3\"], [\"V4\"], [\"V4\"], [\"V5\"]], [[\"V0\", 1], [\"V1\", null], [\"V2\", null], [\"V3\", 7], [\"V4\", null], [\"V5\", null]]], \"passed\": true}, {\"check\": \"control 2\", \"actual\": [[[\"V0\"], [\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 6]]], \"expected\": [[[\"V0\"], [\"V0\"], [\"V1\"], [\"V1\"], [\"V2\"], [\"V2\"]], [[\"V0\", null], [\"V1\", null], [\"V2\", 6]]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}