{"abstract":"An out-of-service car is scheduled for return or selected to run.","category":"Elevator dispatch scheduling","checks":8,"contract":"On emergency power in-service cars (not oos) return to the lobby one at a time: occupied cars (load > 0) first, then by lower floor, then id. Each return takes floor*per_floor_s + door_s; starts are cumulative. Afterwards the preselected car runs if it is in service, otherwise the first car of the return order (None if no car).","evaluation_group":"w2-elevator_dispatch_scheduling-emergency-power-return","failed_approach":"Selecting the preselected car from all cars can pick an out-of-service car.","family":"w2-elevator_dispatch_scheduling-emergency-power-return-out-of-service-exclusion","id":"FA-67676","implementations":{"attempt":{"sha256":"7d1d21aa7998bd2d94671581a626087173c1f6eee4d57854f24d44301329cfac","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cars = [c for c in x['cars'] if not c['oos']]\n    order = sorted(cars, key=lambda c: (c['load'] == 0, c['floor'], c['id']))\n    t = 0\n    starts = {}\n    for c in order:\n        starts[c['id']] = t\n        t += c['floor'] * x['per_floor_s'] + x['door_s']\n    pre = x['preselect']\n    sel = pre if pre in [c['id'] for c in x['cars']] else (order[0]['id'] if order else None)\n    return {'order': [c['id'] for c in order], 'starts': starts, 'selected': sel, 'done_s': t}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 4', {'cars': [{'id': 'P4', 'floor': 5, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 11, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P2', 'P4'], 'starts': {'P2': 0, 'P4': 20}, 'selected': 'P2', 'done_s': 43}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 1', {'cars': [{'id': 'P4', 'floor': 4, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 13, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P1'}, {'order': ['P4', 'P1'], 'starts': {'P4': 0, 'P1': 16}, 'selected': 'P1', 'done_s': 50}), ('sampled regression 7', {'cars': [{'id': 'P1', 'floor': 9, 'load': 300, 'oos': True}, {'id': 'P4', 'floor': 19, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P3'}, {'order': ['P4'], 'starts': {'P4': 0}, 'selected': 'P4', 'done_s': 43}), ('sampled regression 10', {'cars': [{'id': 'P3', 'floor': 2, 'load': 300, 'oos': False}, {'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P2'}, {'order': ['P3'], 'starts': {'P3': 0}, 'selected': 'P3', 'done_s': 9})], [('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('sampled regression 15', {'cars': [{'id': 'P2', 'floor': 14, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 19, 'load': 75, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': None}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 36}), ('sampled regression 42', {'cars': [{'id': 'P4', 'floor': 11, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 15, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P1', 'P4'], 'starts': {'P3': 0, 'P1': 41, 'P4': 49}, 'selected': 'P3', 'done_s': 90}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('boundary: no preselection', {'cars': [{'id': 'P3', 'floor': 6, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 6, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P3'], 'starts': {'P2': 0, 'P3': 17}, 'selected': 'P2', 'done_s': 34}), ('sampled regression 12', {'cars': [{'id': 'P2', 'floor': 9, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 12, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 26}), ('control 18', {'cars': [{'id': 'P3', 'floor': 7, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 10, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 12, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P4', 'P2', 'P3'], 'starts': {'P4': 0, 'P2': 28, 'P3': 60}, 'selected': 'P2', 'done_s': 82}), ('sampled regression 21', {'cars': [{'id': 'P1', 'floor': 13, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 3, 'load': 75, 'oos': False}, {'id': 'P2', 'floor': 8, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P4', 'P1'], 'starts': {'P4': 0, 'P1': 14}, 'selected': 'P4', 'done_s': 48})], [('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 36', {'cars': [{'id': 'P4', 'floor': 11, 'load': 75, 'oos': False}, {'id': 'P2', 'floor': 5, 'load': 75, 'oos': True}, {'id': 'P3', 'floor': 0, 'load': 300, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P4'], 'starts': {'P4': 0}, 'selected': 'P4', 'done_s': 30}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 23', {'cars': [{'id': 'P4', 'floor': 10, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 9, 'load': 75, 'oos': False}, {'id': 'P3', 'floor': 19, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P3'}, {'order': ['P1', 'P3', 'P4'], 'starts': {'P1': 0, 'P3': 35, 'P4': 100}, 'selected': 'P3', 'done_s': 138}), ('control 26', {'cars': [{'id': 'P2', 'floor': 14, 'load': 300, 'oos': False}, {'id': 'P3', 'floor': 14, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 3, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 15, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P2', 'P3', 'P4', 'P1'], 'starts': {'P2': 0, 'P3': 50, 'P4': 100, 'P1': 153}, 'selected': 'P4', 'done_s': 170}), ('control 29', {'cars': [{'id': 'P2', 'floor': 7, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 26})], [('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('sampled regression 49', {'cars': [{'id': 'P4', 'floor': 2, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 19, 'load': 300, 'oos': True}, {'id': 'P2', 'floor': 7, 'load': 0, 'oos': True}, {'id': 'P3', 'floor': 16, 'load': 300, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P3'], 'starts': {'P3': 0}, 'selected': 'P3', 'done_s': 56}), ('sampled regression 42', {'cars': [{'id': 'P4', 'floor': 11, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 15, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P1', 'P4'], 'starts': {'P3': 0, 'P1': 41, 'P4': 49}, 'selected': 'P3', 'done_s': 90}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 34', {'cars': [{'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 16}), ('control 37', {'cars': [{'id': 'P3', 'floor': 6, 'load': 75, 'oos': False}, {'id': 'P4', 'floor': 14, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P4'], 'starts': {'P3': 0, 'P4': 26}, 'selected': 'P3', 'done_s': 76}), ('control 40', {'cars': [{'id': 'P4', 'floor': 16, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 5, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 1, 'load': 75, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P3'}, {'order': ['P1', 'P2', 'P3', 'P4'], 'starts': {'P1': 0, 'P2': 7, 'P3': 22, 'P4': 49}, 'selected': 'P3', 'done_s': 86})], [('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 61', {'cars': [{'id': 'P2', 'floor': 2, 'load': 300, 'oos': True}, {'id': 'P4', 'floor': 16, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 14, 'load': 300, 'oos': False}, {'id': 'P3', 'floor': 18, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P3'}, {'order': ['P1', 'P4', 'P3'], 'starts': {'P1': 0, 'P4': 36, 'P3': 76}, 'selected': 'P3', 'done_s': 120}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: no preselection', {'cars': [{'id': 'P3', 'floor': 6, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 6, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P3'], 'starts': {'P2': 0, 'P3': 17}, 'selected': 'P2', 'done_s': 34}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('control 45', {'cars': [{'id': 'P3', 'floor': 13, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 19, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 5, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P3', 'P4', 'P1'], 'starts': {'P3': 0, 'P4': 47, 'P1': 70}, 'selected': 'P3', 'done_s': 135}), ('sampled regression 48', {'cars': [{'id': 'P1', 'floor': 2, 'load': 75, 'oos': True}, {'id': 'P2', 'floor': 16, 'load': 300, 'oos': False}, {'id': 'P4', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P2', 'P4'], 'starts': {'P2': 0, 'P4': 56}, 'selected': 'P2', 'done_s': 64}), ('control 51', {'cars': [{'id': 'P1', 'floor': 2, 'load': 75, 'oos': False}, {'id': 'P4', 'floor': 4, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 16, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P4'}, {'order': ['P1', 'P2', 'P3', 'P4'], 'starts': {'P1': 0, 'P2': 9, 'P3': 22, 'P4': 59}, 'selected': 'P4', 'done_s': 72})]]\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":"3ccf86f40bbb6dde79a9313da0354b41e3e7801f78dc55f1bf3cc21729aa98cf","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cars = list(x['cars'])\n    order = sorted(cars, key=lambda c: (c['load'] == 0, c['floor'], c['id']))\n    t = 0\n    starts = {}\n    for c in order:\n        starts[c['id']] = t\n        t += c['floor'] * x['per_floor_s'] + x['door_s']\n    pre = x['preselect']\n    sel = pre if pre in starts else (order[0]['id'] if order else None)\n    return {'order': [c['id'] for c in order], 'starts': starts, 'selected': sel, 'done_s': t}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 4', {'cars': [{'id': 'P4', 'floor': 5, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 11, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P2', 'P4'], 'starts': {'P2': 0, 'P4': 20}, 'selected': 'P2', 'done_s': 43}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 1', {'cars': [{'id': 'P4', 'floor': 4, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 13, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P1'}, {'order': ['P4', 'P1'], 'starts': {'P4': 0, 'P1': 16}, 'selected': 'P1', 'done_s': 50}), ('sampled regression 7', {'cars': [{'id': 'P1', 'floor': 9, 'load': 300, 'oos': True}, {'id': 'P4', 'floor': 19, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P3'}, {'order': ['P4'], 'starts': {'P4': 0}, 'selected': 'P4', 'done_s': 43}), ('sampled regression 10', {'cars': [{'id': 'P3', 'floor': 2, 'load': 300, 'oos': False}, {'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P2'}, {'order': ['P3'], 'starts': {'P3': 0}, 'selected': 'P3', 'done_s': 9})], [('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('sampled regression 15', {'cars': [{'id': 'P2', 'floor': 14, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 19, 'load': 75, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': None}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 36}), ('sampled regression 42', {'cars': [{'id': 'P4', 'floor': 11, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 15, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P1', 'P4'], 'starts': {'P3': 0, 'P1': 41, 'P4': 49}, 'selected': 'P3', 'done_s': 90}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('boundary: no preselection', {'cars': [{'id': 'P3', 'floor': 6, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 6, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P3'], 'starts': {'P2': 0, 'P3': 17}, 'selected': 'P2', 'done_s': 34}), ('sampled regression 12', {'cars': [{'id': 'P2', 'floor': 9, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 12, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 26}), ('control 18', {'cars': [{'id': 'P3', 'floor': 7, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 10, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 12, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P4', 'P2', 'P3'], 'starts': {'P4': 0, 'P2': 28, 'P3': 60}, 'selected': 'P2', 'done_s': 82}), ('sampled regression 21', {'cars': [{'id': 'P1', 'floor': 13, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 3, 'load': 75, 'oos': False}, {'id': 'P2', 'floor': 8, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P4', 'P1'], 'starts': {'P4': 0, 'P1': 14}, 'selected': 'P4', 'done_s': 48})], [('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 36', {'cars': [{'id': 'P4', 'floor': 11, 'load': 75, 'oos': False}, {'id': 'P2', 'floor': 5, 'load': 75, 'oos': True}, {'id': 'P3', 'floor': 0, 'load': 300, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P4'], 'starts': {'P4': 0}, 'selected': 'P4', 'done_s': 30}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 23', {'cars': [{'id': 'P4', 'floor': 10, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 9, 'load': 75, 'oos': False}, {'id': 'P3', 'floor': 19, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P3'}, {'order': ['P1', 'P3', 'P4'], 'starts': {'P1': 0, 'P3': 35, 'P4': 100}, 'selected': 'P3', 'done_s': 138}), ('control 26', {'cars': [{'id': 'P2', 'floor': 14, 'load': 300, 'oos': False}, {'id': 'P3', 'floor': 14, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 3, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 15, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P2', 'P3', 'P4', 'P1'], 'starts': {'P2': 0, 'P3': 50, 'P4': 100, 'P1': 153}, 'selected': 'P4', 'done_s': 170}), ('control 29', {'cars': [{'id': 'P2', 'floor': 7, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 26})], [('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('sampled regression 49', {'cars': [{'id': 'P4', 'floor': 2, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 19, 'load': 300, 'oos': True}, {'id': 'P2', 'floor': 7, 'load': 0, 'oos': True}, {'id': 'P3', 'floor': 16, 'load': 300, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P3'], 'starts': {'P3': 0}, 'selected': 'P3', 'done_s': 56}), ('sampled regression 42', {'cars': [{'id': 'P4', 'floor': 11, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 15, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P1', 'P4'], 'starts': {'P3': 0, 'P1': 41, 'P4': 49}, 'selected': 'P3', 'done_s': 90}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 34', {'cars': [{'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 16}), ('control 37', {'cars': [{'id': 'P3', 'floor': 6, 'load': 75, 'oos': False}, {'id': 'P4', 'floor': 14, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P4'], 'starts': {'P3': 0, 'P4': 26}, 'selected': 'P3', 'done_s': 76}), ('control 40', {'cars': [{'id': 'P4', 'floor': 16, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 5, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 1, 'load': 75, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P3'}, {'order': ['P1', 'P2', 'P3', 'P4'], 'starts': {'P1': 0, 'P2': 7, 'P3': 22, 'P4': 49}, 'selected': 'P3', 'done_s': 86})], [('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 61', {'cars': [{'id': 'P2', 'floor': 2, 'load': 300, 'oos': True}, {'id': 'P4', 'floor': 16, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 14, 'load': 300, 'oos': False}, {'id': 'P3', 'floor': 18, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P3'}, {'order': ['P1', 'P4', 'P3'], 'starts': {'P1': 0, 'P4': 36, 'P3': 76}, 'selected': 'P3', 'done_s': 120}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: no preselection', {'cars': [{'id': 'P3', 'floor': 6, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 6, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P3'], 'starts': {'P2': 0, 'P3': 17}, 'selected': 'P2', 'done_s': 34}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('control 45', {'cars': [{'id': 'P3', 'floor': 13, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 19, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 5, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P3', 'P4', 'P1'], 'starts': {'P3': 0, 'P4': 47, 'P1': 70}, 'selected': 'P3', 'done_s': 135}), ('sampled regression 48', {'cars': [{'id': 'P1', 'floor': 2, 'load': 75, 'oos': True}, {'id': 'P2', 'floor': 16, 'load': 300, 'oos': False}, {'id': 'P4', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P2', 'P4'], 'starts': {'P2': 0, 'P4': 56}, 'selected': 'P2', 'done_s': 64}), ('control 51', {'cars': [{'id': 'P1', 'floor': 2, 'load': 75, 'oos': False}, {'id': 'P4', 'floor': 4, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 16, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P4'}, {'order': ['P1', 'P2', 'P3', 'P4'], 'starts': {'P1': 0, 'P2': 9, 'P3': 22, 'P4': 59}, 'selected': 'P4', 'done_s': 72})]]\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":"3fdbbfa830a9e33a6b9b6c24c8e93eed4c4a11099732e1fc4c6e857d8a935560","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cars = [c for c in x['cars'] if not c['oos']]\n    order = sorted(cars, key=lambda c: (c['load'] == 0, c['floor'], c['id']))\n    t = 0\n    starts = {}\n    for c in order:\n        starts[c['id']] = t\n        t += c['floor'] * x['per_floor_s'] + x['door_s']\n    pre = x['preselect']\n    sel = pre if pre in starts else (order[0]['id'] if order else None)\n    return {'order': [c['id'] for c in order], 'starts': starts, 'selected': sel, 'done_s': t}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 4', {'cars': [{'id': 'P4', 'floor': 5, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 11, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P2', 'P4'], 'starts': {'P2': 0, 'P4': 20}, 'selected': 'P2', 'done_s': 43}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 1', {'cars': [{'id': 'P4', 'floor': 4, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 13, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P1'}, {'order': ['P4', 'P1'], 'starts': {'P4': 0, 'P1': 16}, 'selected': 'P1', 'done_s': 50}), ('sampled regression 7', {'cars': [{'id': 'P1', 'floor': 9, 'load': 300, 'oos': True}, {'id': 'P4', 'floor': 19, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P3'}, {'order': ['P4'], 'starts': {'P4': 0}, 'selected': 'P4', 'done_s': 43}), ('sampled regression 10', {'cars': [{'id': 'P3', 'floor': 2, 'load': 300, 'oos': False}, {'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P2'}, {'order': ['P3'], 'starts': {'P3': 0}, 'selected': 'P3', 'done_s': 9})], [('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('sampled regression 15', {'cars': [{'id': 'P2', 'floor': 14, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 19, 'load': 75, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': None}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 36}), ('sampled regression 42', {'cars': [{'id': 'P4', 'floor': 11, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 15, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P1', 'P4'], 'starts': {'P3': 0, 'P1': 41, 'P4': 49}, 'selected': 'P3', 'done_s': 90}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('boundary: no preselection', {'cars': [{'id': 'P3', 'floor': 6, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 6, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P3'], 'starts': {'P2': 0, 'P3': 17}, 'selected': 'P2', 'done_s': 34}), ('sampled regression 12', {'cars': [{'id': 'P2', 'floor': 9, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 12, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 26}), ('control 18', {'cars': [{'id': 'P3', 'floor': 7, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 10, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 12, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P4', 'P2', 'P3'], 'starts': {'P4': 0, 'P2': 28, 'P3': 60}, 'selected': 'P2', 'done_s': 82}), ('sampled regression 21', {'cars': [{'id': 'P1', 'floor': 13, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 3, 'load': 75, 'oos': False}, {'id': 'P2', 'floor': 8, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P4', 'P1'], 'starts': {'P4': 0, 'P1': 14}, 'selected': 'P4', 'done_s': 48})], [('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 36', {'cars': [{'id': 'P4', 'floor': 11, 'load': 75, 'oos': False}, {'id': 'P2', 'floor': 5, 'load': 75, 'oos': True}, {'id': 'P3', 'floor': 0, 'load': 300, 'oos': True}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P4'], 'starts': {'P4': 0}, 'selected': 'P4', 'done_s': 30}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 23', {'cars': [{'id': 'P4', 'floor': 10, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 9, 'load': 75, 'oos': False}, {'id': 'P3', 'floor': 19, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P3'}, {'order': ['P1', 'P3', 'P4'], 'starts': {'P1': 0, 'P3': 35, 'P4': 100}, 'selected': 'P3', 'done_s': 138}), ('control 26', {'cars': [{'id': 'P2', 'floor': 14, 'load': 300, 'oos': False}, {'id': 'P3', 'floor': 14, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 3, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 15, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P2', 'P3', 'P4', 'P1'], 'starts': {'P2': 0, 'P3': 50, 'P4': 100, 'P1': 153}, 'selected': 'P4', 'done_s': 170}), ('control 29', {'cars': [{'id': 'P2', 'floor': 7, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 26})], [('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('sampled regression 49', {'cars': [{'id': 'P4', 'floor': 2, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 19, 'load': 300, 'oos': True}, {'id': 'P2', 'floor': 7, 'load': 0, 'oos': True}, {'id': 'P3', 'floor': 16, 'load': 300, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P4'}, {'order': ['P3'], 'starts': {'P3': 0}, 'selected': 'P3', 'done_s': 56}), ('sampled regression 42', {'cars': [{'id': 'P4', 'floor': 11, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 15, 'load': 0, 'oos': True}, {'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P1', 'P4'], 'starts': {'P3': 0, 'P1': 41, 'P4': 49}, 'selected': 'P3', 'done_s': 90}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('boundary: lobby car still takes door time', {'cars': [{'id': 'P1', 'floor': 0, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P1', 'P2'], 'starts': {'P1': 0, 'P2': 5}, 'selected': 'P1', 'done_s': 18}), ('control 34', {'cars': [{'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 16}), ('control 37', {'cars': [{'id': 'P3', 'floor': 6, 'load': 75, 'oos': False}, {'id': 'P4', 'floor': 14, 'load': 75, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': 'P2'}, {'order': ['P3', 'P4'], 'starts': {'P3': 0, 'P4': 26}, 'selected': 'P3', 'done_s': 76}), ('control 40', {'cars': [{'id': 'P4', 'floor': 16, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 5, 'load': 0, 'oos': False}, {'id': 'P1', 'floor': 1, 'load': 75, 'oos': False}, {'id': 'P3', 'floor': 11, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P3'}, {'order': ['P1', 'P2', 'P3', 'P4'], 'starts': {'P1': 0, 'P2': 7, 'P3': 22, 'P4': 49}, 'selected': 'P3', 'done_s': 86})], [('regression: out of service car preselected', {'cars': [{'id': 'P1', 'floor': 5, 'load': 0, 'oos': True}, {'id': 'P2', 'floor': 3, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': ['P2'], 'starts': {'P2': 0}, 'selected': 'P2', 'done_s': 11}), ('sampled regression 61', {'cars': [{'id': 'P2', 'floor': 2, 'load': 300, 'oos': True}, {'id': 'P4', 'floor': 16, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 14, 'load': 300, 'oos': False}, {'id': 'P3', 'floor': 18, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 8, 'preselect': 'P3'}, {'order': ['P1', 'P4', 'P3'], 'starts': {'P1': 0, 'P4': 36, 'P3': 76}, 'selected': 'P3', 'done_s': 120}), ('regression: all cars out of service', {'cars': [{'id': 'P1', 'floor': 3, 'load': 0, 'oos': True}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P1'}, {'order': [], 'starts': {}, 'selected': None, 'done_s': 0}), ('boundary: no preselection', {'cars': [{'id': 'P3', 'floor': 6, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 6, 'load': 0, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P3'], 'starts': {'P2': 0, 'P3': 17}, 'selected': 'P2', 'done_s': 34}), ('boundary: occupied car first', {'cars': [{'id': 'P1', 'floor': 2, 'load': 0, 'oos': False}, {'id': 'P2', 'floor': 9, 'load': 80, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': None}, {'order': ['P2', 'P1'], 'starts': {'P2': 0, 'P1': 23}, 'selected': 'P2', 'done_s': 32}), ('control 45', {'cars': [{'id': 'P3', 'floor': 13, 'load': 75, 'oos': False}, {'id': 'P1', 'floor': 19, 'load': 0, 'oos': False}, {'id': 'P4', 'floor': 5, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P3', 'P4', 'P1'], 'starts': {'P3': 0, 'P4': 47, 'P1': 70}, 'selected': 'P3', 'done_s': 135}), ('sampled regression 48', {'cars': [{'id': 'P1', 'floor': 2, 'load': 75, 'oos': True}, {'id': 'P2', 'floor': 16, 'load': 300, 'oos': False}, {'id': 'P4', 'floor': 0, 'load': 0, 'oos': False}], 'per_floor_s': 3, 'door_s': 8, 'preselect': None}, {'order': ['P2', 'P4'], 'starts': {'P2': 0, 'P4': 56}, 'selected': 'P2', 'done_s': 64}), ('control 51', {'cars': [{'id': 'P1', 'floor': 2, 'load': 75, 'oos': False}, {'id': 'P4', 'floor': 4, 'load': 0, 'oos': False}, {'id': 'P3', 'floor': 16, 'load': 300, 'oos': False}, {'id': 'P2', 'floor': 4, 'load': 300, 'oos': False}], 'per_floor_s': 2, 'door_s': 5, 'preselect': 'P4'}, {'order': ['P1', 'P2', 'P3', 'P4'], 'starts': {'P1': 0, 'P2': 9, 'P3': 22, 'P4': 59}, 'selected': 'P4', 'done_s': 72})]]\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":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-elevator_dispatch_scheduling-emergency-power-return-out-of-service-exclusion","generated_at":"2026-09-29T14:47:55.087018+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Lift group controllers make these decisions many times per minute; a wrong answer strands passengers, wastes trips or overrides a safety rule.","repair":"Drop out-of-service cars before sequencing and selection.","root_cause":"Out-of-service cars are kept in the return sequence.","sha256":"09eb609ffc478c0a26ba546c7660923c6de28b711debb8a6ef0fd5fe5374f9bc","title":"Emergency power sequential return: out of service exclusion · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.896,"exit_code":1,"observations":[{"actual":{"done_s":11,"order":["P2"],"selected":"P1","starts":{"P2":0}},"check":"regression: out of service car preselected","expected":{"done_s":11,"order":["P2"],"selected":"P2","starts":{"P2":0}},"passed":false},{"actual":{"done_s":43,"order":["P2","P4"],"selected":"P2","starts":{"P2":0,"P4":20}},"check":"sampled regression 4","expected":{"done_s":43,"order":["P2","P4"],"selected":"P2","starts":{"P2":0,"P4":20}},"passed":true},{"actual":{"done_s":0,"order":[],"selected":"P1","starts":{}},"check":"regression: all cars out of service","expected":{"done_s":0,"order":[],"selected":null,"starts":{}},"passed":false},{"actual":{"done_s":32,"order":["P2","P1"],"selected":"P2","starts":{"P1":23,"P2":0}},"check":"boundary: occupied car first","expected":{"done_s":32,"order":["P2","P1"],"selected":"P2","starts":{"P1":23,"P2":0}},"passed":true},{"actual":{"done_s":18,"order":["P1","P2"],"selected":"P1","starts":{"P1":0,"P2":5}},"check":"boundary: lobby car still takes door time","expected":{"done_s":18,"order":["P1","P2"],"selected":"P1","starts":{"P1":0,"P2":5}},"passed":true},{"actual":{"done_s":50,"order":["P4","P1"],"selected":"P1","starts":{"P1":16,"P4":0}},"check":"control 1","expected":{"done_s":50,"order":["P4","P1"],"selected":"P1","starts":{"P1":16,"P4":0}},"passed":true},{"actual":{"done_s":43,"order":["P4"],"selected":"P4","starts":{"P4":0}},"check":"sampled regression 7","expected":{"done_s":43,"order":["P4"],"selected":"P4","starts":{"P4":0}},"passed":true},{"actual":{"done_s":9,"order":["P3"],"selected":"P3","starts":{"P3":0}},"check":"sampled regression 10","expected":{"done_s":9,"order":["P3"],"selected":"P3","starts":{"P3":0}},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: out of service car preselected\", \"actual\": {\"order\": [\"P2\"], \"starts\": {\"P2\": 0}, \"selected\": \"P1\", \"done_s\": 11}, \"expected\": {\"order\": [\"P2\"], \"starts\": {\"P2\": 0}, \"selected\": \"P2\", \"done_s\": 11}, \"passed\": false}, {\"check\": \"sampled regression 4\", \"actual\": {\"order\": [\"P2\", \"P4\"], \"starts\": {\"P2\": 0, \"P4\": 20}, \"selected\": \"P2\", \"done_s\": 43}, \"expected\": {\"order\": [\"P2\", \"P4\"], \"starts\": {\"P2\": 0, \"P4\": 20}, \"selected\": \"P2\", \"done_s\": 43}, \"passed\": true}, {\"check\": \"regression: all cars out of service\", \"actual\": {\"order\": [], \"starts\": {}, \"selected\": \"P1\", \"done_s\": 0}, \"expected\": {\"order\": [], \"starts\": {}, \"selected\": null, \"done_s\": 0}, \"passed\": false}, {\"check\": \"boundary: occupied car first\", \"actual\": {\"order\": [\"P2\", \"P1\"], \"starts\": {\"P2\": 0, \"P1\": 23}, \"selected\": \"P2\", \"done_s\": 32}, \"expected\": {\"order\": [\"P2\", \"P1\"], \"starts\": {\"P2\": 0, \"P1\": 23}, \"selected\": \"P2\", \"done_s\": 32}, \"passed\": true}, {\"check\": \"boundary: lobby car still takes door time\", \"actual\": {\"order\": [\"P1\", \"P2\"], \"starts\": {\"P1\": 0, \"P2\": 5}, \"selected\": \"P1\", \"done_s\": 18}, \"expected\": {\"order\": [\"P1\", \"P2\"], \"starts\": {\"P1\": 0, \"P2\": 5}, \"selected\": \"P1\", \"done_s\": 18}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"order\": [\"P4\", \"P1\"], \"starts\": {\"P4\": 0, \"P1\": 16}, \"selected\": \"P1\", \"done_s\": 50}, \"expected\": {\"order\": [\"P4\", \"P1\"], \"starts\": {\"P4\": 0, \"P1\": 16}, \"selected\": \"P1\", \"done_s\": 50}, \"passed\": true}, {\"check\": \"sampled regression 7\", \"actual\": {\"order\": [\"P4\"], \"starts\": {\"P4\": 0}, \"selected\": \"P4\", \"done_s\": 43}, \"expected\": {\"order\": [\"P4\"], \"starts\": {\"P4\": 0}, \"selected\": \"P4\", \"done_s\": 43}, \"passed\": true}, {\"check\": \"sampled regression 10\", \"actual\": {\"order\": [\"P3\"], \"starts\": {\"P3\": 0}, \"selected\": \"P3\", \"done_s\": 9}, \"expected\": {\"order\": [\"P3\"], \"starts\": {\"P3\": 0}, \"selected\": \"P3\", \"done_s\": 9}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.284,"exit_code":1,"observations":[{"actual":{"done_s":26,"order":["P2","P1"],"selected":"P1","starts":{"P1":11,"P2":0}},"check":"regression: out of service car preselected","expected":{"done_s":11,"order":["P2"],"selected":"P2","starts":{"P2":0}},"passed":false},{"actual":{"done_s":84,"order":["P2","P4","P1"],"selected":"P2","starts":{"P1":43,"P2":0,"P4":20}},"check":"sampled regression 4","expected":{"done_s":43,"order":["P2","P4"],"selected":"P2","starts":{"P2":0,"P4":20}},"passed":false},{"actual":{"done_s":11,"order":["P1"],"selected":"P1","starts":{"P1":0}},"check":"regression: all cars out of service","expected":{"done_s":0,"order":[],"selected":null,"starts":{}},"passed":false},{"actual":{"done_s":32,"order":["P2","P1"],"selected":"P2","starts":{"P1":23,"P2":0}},"check":"boundary: occupied car first","expected":{"done_s":32,"order":["P2","P1"],"selected":"P2","starts":{"P1":23,"P2":0}},"passed":true},{"actual":{"done_s":18,"order":["P1","P2"],"selected":"P1","starts":{"P1":0,"P2":5}},"check":"boundary: lobby car still takes door time","expected":{"done_s":18,"order":["P1","P2"],"selected":"P1","starts":{"P1":0,"P2":5}},"passed":true},{"actual":{"done_s":50,"order":["P4","P1"],"selected":"P1","starts":{"P1":16,"P4":0}},"check":"control 1","expected":{"done_s":50,"order":["P4","P1"],"selected":"P1","starts":{"P1":16,"P4":0}},"passed":true},{"actual":{"done_s":66,"order":["P1","P4"],"selected":"P1","starts":{"P1":0,"P4":23}},"check":"sampled regression 7","expected":{"done_s":43,"order":["P4"],"selected":"P4","starts":{"P4":0}},"passed":false},{"actual":{"done_s":20,"order":["P3","P1"],"selected":"P3","starts":{"P1":9,"P3":0}},"check":"sampled regression 10","expected":{"done_s":9,"order":["P3"],"selected":"P3","starts":{"P3":0}},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: out of service car preselected\", \"actual\": {\"order\": [\"P2\", \"P1\"], \"starts\": {\"P2\": 0, \"P1\": 11}, \"selected\": \"P1\", \"done_s\": 26}, \"expected\": {\"order\": [\"P2\"], \"starts\": {\"P2\": 0}, \"selected\": \"P2\", \"done_s\": 11}, \"passed\": false}, {\"check\": \"sampled regression 4\", \"actual\": {\"order\": [\"P2\", \"P4\", \"P1\"], \"starts\": {\"P2\": 0, \"P4\": 20, \"P1\": 43}, \"selected\": \"P2\", \"done_s\": 84}, \"expected\": {\"order\": [\"P2\", \"P4\"], \"starts\": {\"P2\": 0, \"P4\": 20}, \"selected\": \"P2\", \"done_s\": 43}, \"passed\": false}, {\"check\": \"regression: all cars out of service\", \"actual\": {\"order\": [\"P1\"], \"starts\": {\"P1\": 0}, \"selected\": \"P1\", \"done_s\": 11}, \"expected\": {\"order\": [], \"starts\": {}, \"selected\": null, \"done_s\": 0}, \"passed\": false}, {\"check\": \"boundary: occupied car first\", \"actual\": {\"order\": [\"P2\", \"P1\"], \"starts\": {\"P2\": 0, \"P1\": 23}, \"selected\": \"P2\", \"done_s\": 32}, \"expected\": {\"order\": [\"P2\", \"P1\"], \"starts\": {\"P2\": 0, \"P1\": 23}, \"selected\": \"P2\", \"done_s\": 32}, \"passed\": true}, {\"check\": \"boundary: lobby car still takes door time\", \"actual\": {\"order\": [\"P1\", \"P2\"], \"starts\": {\"P1\": 0, \"P2\": 5}, \"selected\": \"P1\", \"done_s\": 18}, \"expected\": {\"order\": [\"P1\", \"P2\"], \"starts\": {\"P1\": 0, \"P2\": 5}, \"selected\": \"P1\", \"done_s\": 18}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"order\": [\"P4\", \"P1\"], \"starts\": {\"P4\": 0, \"P1\": 16}, \"selected\": \"P1\", \"done_s\": 50}, \"expected\": {\"order\": [\"P4\", \"P1\"], \"starts\": {\"P4\": 0, \"P1\": 16}, \"selected\": \"P1\", \"done_s\": 50}, \"passed\": true}, {\"check\": \"sampled regression 7\", \"actual\": {\"order\": [\"P1\", \"P4\"], \"starts\": {\"P1\": 0, \"P4\": 23}, \"selected\": \"P1\", \"done_s\": 66}, \"expected\": {\"order\": [\"P4\"], \"starts\": {\"P4\": 0}, \"selected\": \"P4\", \"done_s\": 43}, \"passed\": false}, {\"check\": \"sampled regression 10\", \"actual\": {\"order\": [\"P3\", \"P1\"], \"starts\": {\"P3\": 0, \"P1\": 9}, \"selected\": \"P3\", \"done_s\": 20}, \"expected\": {\"order\": [\"P3\"], \"starts\": {\"P3\": 0}, \"selected\": \"P3\", \"done_s\": 9}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.061,"exit_code":0,"observations":[{"actual":{"done_s":11,"order":["P2"],"selected":"P2","starts":{"P2":0}},"check":"regression: out of service car preselected","expected":{"done_s":11,"order":["P2"],"selected":"P2","starts":{"P2":0}},"passed":true},{"actual":{"done_s":43,"order":["P2","P4"],"selected":"P2","starts":{"P2":0,"P4":20}},"check":"sampled regression 4","expected":{"done_s":43,"order":["P2","P4"],"selected":"P2","starts":{"P2":0,"P4":20}},"passed":true},{"actual":{"done_s":0,"order":[],"selected":null,"starts":{}},"check":"regression: all cars out of service","expected":{"done_s":0,"order":[],"selected":null,"starts":{}},"passed":true},{"actual":{"done_s":32,"order":["P2","P1"],"selected":"P2","starts":{"P1":23,"P2":0}},"check":"boundary: occupied car first","expected":{"done_s":32,"order":["P2","P1"],"selected":"P2","starts":{"P1":23,"P2":0}},"passed":true},{"actual":{"done_s":18,"order":["P1","P2"],"selected":"P1","starts":{"P1":0,"P2":5}},"check":"boundary: lobby car still takes door time","expected":{"done_s":18,"order":["P1","P2"],"selected":"P1","starts":{"P1":0,"P2":5}},"passed":true},{"actual":{"done_s":50,"order":["P4","P1"],"selected":"P1","starts":{"P1":16,"P4":0}},"check":"control 1","expected":{"done_s":50,"order":["P4","P1"],"selected":"P1","starts":{"P1":16,"P4":0}},"passed":true},{"actual":{"done_s":43,"order":["P4"],"selected":"P4","starts":{"P4":0}},"check":"sampled regression 7","expected":{"done_s":43,"order":["P4"],"selected":"P4","starts":{"P4":0}},"passed":true},{"actual":{"done_s":9,"order":["P3"],"selected":"P3","starts":{"P3":0}},"check":"sampled regression 10","expected":{"done_s":9,"order":["P3"],"selected":"P3","starts":{"P3":0}},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: out of service car preselected\", \"actual\": {\"order\": [\"P2\"], \"starts\": {\"P2\": 0}, \"selected\": \"P2\", \"done_s\": 11}, \"expected\": {\"order\": [\"P2\"], \"starts\": {\"P2\": 0}, \"selected\": \"P2\", \"done_s\": 11}, \"passed\": true}, {\"check\": \"sampled regression 4\", \"actual\": {\"order\": [\"P2\", \"P4\"], \"starts\": {\"P2\": 0, \"P4\": 20}, \"selected\": \"P2\", \"done_s\": 43}, \"expected\": {\"order\": [\"P2\", \"P4\"], \"starts\": {\"P2\": 0, \"P4\": 20}, \"selected\": \"P2\", \"done_s\": 43}, \"passed\": true}, {\"check\": \"regression: all cars out of service\", \"actual\": {\"order\": [], \"starts\": {}, \"selected\": null, \"done_s\": 0}, \"expected\": {\"order\": [], \"starts\": {}, \"selected\": null, \"done_s\": 0}, \"passed\": true}, {\"check\": \"boundary: occupied car first\", \"actual\": {\"order\": [\"P2\", \"P1\"], \"starts\": {\"P2\": 0, \"P1\": 23}, \"selected\": \"P2\", \"done_s\": 32}, \"expected\": {\"order\": [\"P2\", \"P1\"], \"starts\": {\"P2\": 0, \"P1\": 23}, \"selected\": \"P2\", \"done_s\": 32}, \"passed\": true}, {\"check\": \"boundary: lobby car still takes door time\", \"actual\": {\"order\": [\"P1\", \"P2\"], \"starts\": {\"P1\": 0, \"P2\": 5}, \"selected\": \"P1\", \"done_s\": 18}, \"expected\": {\"order\": [\"P1\", \"P2\"], \"starts\": {\"P1\": 0, \"P2\": 5}, \"selected\": \"P1\", \"done_s\": 18}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"order\": [\"P4\", \"P1\"], \"starts\": {\"P4\": 0, \"P1\": 16}, \"selected\": \"P1\", \"done_s\": 50}, \"expected\": {\"order\": [\"P4\", \"P1\"], \"starts\": {\"P4\": 0, \"P1\": 16}, \"selected\": \"P1\", \"done_s\": 50}, \"passed\": true}, {\"check\": \"sampled regression 7\", \"actual\": {\"order\": [\"P4\"], \"starts\": {\"P4\": 0}, \"selected\": \"P4\", \"done_s\": 43}, \"expected\": {\"order\": [\"P4\"], \"starts\": {\"P4\": 0}, \"selected\": \"P4\", \"done_s\": 43}, \"passed\": true}, {\"check\": \"sampled regression 10\", \"actual\": {\"order\": [\"P3\"], \"starts\": {\"P3\": 0}, \"selected\": \"P3\", \"done_s\": 9}, \"expected\": {\"order\": [\"P3\"], \"starts\": {\"P3\": 0}, \"selected\": \"P3\", \"done_s\": 9}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}