{"abstract":"Stops are planned where one of the decks would leave the shaft.","category":"Elevator dispatch scheduling","checks":8,"contract":"A double-deck car has a lower deck and an upper deck one floor above it; the car position is the lower deck floor. With lower_odd the lower deck serves odd destinations and the upper deck even ones (reversed otherwise). A destination served by the upper deck needs car position dest-1. Positions must lie in 1..top-1 (the lower deck never reaches the top floor); unreachable destinations are rejected. Return sorted unique stop positions, deck per destination and rejected destinations in input order.","evaluation_group":"w2-elevator_dispatch_scheduling-double-deck-stops","failed_approach":"Letting the car reach the top puts the upper deck above the shaft.","family":"w2-elevator_dispatch_scheduling-double-deck-stops-shaft-reach-limits","id":"FA-67726","implementations":{"attempt":{"sha256":"2c4eb1a5dc1ee456dea968cc521eea5f599725f7f901d65d7937b4133b8bad05","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    stops = set()\n    deck = {}\n    rejected = []\n    for d in x['dests']:\n        lower = (d % 2 == 1) == x['lower_odd']\n        pos = d if lower else d - 1\n        if pos < 1 or pos > x['top']:\n            rejected.append(d)\n            continue\n        deck[str(d)] = 'lower' if lower else 'upper'\n        stops.add(pos)\n    return {'stops': sorted(stops), 'deck_of': deck, 'rejected': rejected}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 5', {'top': 21, 'lower_odd': True, 'dests': [21, 7, 16]}, {'stops': [7, 15], 'deck_of': {'7': 'lower', '16': 'upper'}, 'rejected': [21]}), ('sampled regression 2', {'top': 21, 'lower_odd': True, 'dests': [21, 20, 0, 16, 19, 7]}, {'stops': [7, 15, 19], 'deck_of': {'20': 'upper', '16': 'upper', '19': 'lower', '7': 'lower'}, 'rejected': [21, 0]}), ('boundary: odd and even floors share a stop', {'top': 20, 'lower_odd': True, 'dests': [5, 6]}, {'stops': [5], 'deck_of': {'5': 'lower', '6': 'upper'}, 'rejected': []}), ('boundary: even-lower convention', {'top': 20, 'lower_odd': False, 'dests': [6, 7]}, {'stops': [6], 'deck_of': {'6': 'lower', '7': 'upper'}, 'rejected': []}), ('control 1', {'top': 30, 'lower_odd': True, 'dests': [0]}, {'stops': [], 'deck_of': {}, 'rejected': [0]}), ('control 4', {'top': 20, 'lower_odd': False, 'dests': [19, 3]}, {'stops': [2, 18], 'deck_of': {'19': 'upper', '3': 'upper'}, 'rejected': []}), ('control 7', {'top': 21, 'lower_odd': False, 'dests': [9, 10, 3, 4, 7]}, {'stops': [2, 4, 6, 8, 10], 'deck_of': {'9': 'upper', '10': 'lower', '3': 'upper', '4': 'lower', '7': 'upper'}, 'rejected': []})], [('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 44', {'top': 21, 'lower_odd': False, 'dests': [1, 21, 20]}, {'stops': [20], 'deck_of': {'21': 'upper', '20': 'lower'}, 'rejected': [1]}), ('sampled regression 51', {'top': 21, 'lower_odd': True, 'dests': [22, 5, 13]}, {'stops': [5, 13], 'deck_of': {'5': 'lower', '13': 'lower'}, 'rejected': [22]}), ('boundary: top floor by the upper deck', {'top': 20, 'lower_odd': True, 'dests': [20]}, {'stops': [19], 'deck_of': {'20': 'upper'}, 'rejected': []}), ('control 12', {'top': 21, 'lower_odd': True, 'dests': [7, 16, 15, 14, 18, 5]}, {'stops': [5, 7, 13, 15, 17], 'deck_of': {'7': 'lower', '16': 'upper', '15': 'lower', '14': 'upper', '18': 'upper', '5': 'lower'}, 'rejected': []}), ('control 15', {'top': 21, 'lower_odd': False, 'dests': [2]}, {'stops': [2], 'deck_of': {'2': 'lower'}, 'rejected': []}), ('control 18', {'top': 30, 'lower_odd': True, 'dests': [1, 2, 16, 17, 9, 14]}, {'stops': [1, 9, 13, 15, 17], 'deck_of': {'1': 'lower', '2': 'upper', '16': 'upper', '17': 'lower', '9': 'lower', '14': 'upper'}, 'rejected': []})], [('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 74', {'top': 20, 'lower_odd': False, 'dests': [4, 1, 8, 18, 18]}, {'stops': [4, 8, 18], 'deck_of': {'4': 'lower', '8': 'lower', '18': 'lower'}, 'rejected': [1]}), ('sampled regression 14', {'top': 20, 'lower_odd': False, 'dests': [5, 21, 17, 0, 13, 8]}, {'stops': [4, 8, 12, 16], 'deck_of': {'5': 'upper', '17': 'upper', '13': 'upper', '8': 'lower'}, 'rejected': [21, 0]}), ('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('boundary: repeated destinations', {'top': 20, 'lower_odd': True, 'dests': [9, 9, 10]}, {'stops': [9], 'deck_of': {'9': 'lower', '10': 'upper'}, 'rejected': []}), ('control 23', {'top': 20, 'lower_odd': True, 'dests': [11, 6, 9, 18, 10, 19]}, {'stops': [5, 9, 11, 17, 19], 'deck_of': {'11': 'lower', '6': 'upper', '9': 'lower', '18': 'upper', '10': 'upper', '19': 'lower'}, 'rejected': []}), ('control 26', {'top': 20, 'lower_odd': True, 'dests': [0, 7, 4, 8, 20]}, {'stops': [3, 7, 19], 'deck_of': {'7': 'lower', '4': 'upper', '8': 'upper', '20': 'upper'}, 'rejected': [0]}), ('sampled regression 29', {'top': 21, 'lower_odd': False, 'dests': [3, 12, 13, 19, 1]}, {'stops': [2, 12, 18], 'deck_of': {'3': 'upper', '12': 'lower', '13': 'upper', '19': 'upper'}, 'rejected': [1]})], [('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 14', {'top': 20, 'lower_odd': False, 'dests': [5, 21, 17, 0, 13, 8]}, {'stops': [4, 8, 12, 16], 'deck_of': {'5': 'upper', '17': 'upper', '13': 'upper', '8': 'lower'}, 'rejected': [21, 0]}), ('sampled regression 5', {'top': 21, 'lower_odd': True, 'dests': [21, 7, 16]}, {'stops': [7, 15], 'deck_of': {'7': 'lower', '16': 'upper'}, 'rejected': [21]}), ('boundary: odd and even floors share a stop', {'top': 20, 'lower_odd': True, 'dests': [5, 6]}, {'stops': [5], 'deck_of': {'5': 'lower', '6': 'upper'}, 'rejected': []}), ('control 34', {'top': 20, 'lower_odd': True, 'dests': [5, 0]}, {'stops': [5], 'deck_of': {'5': 'lower'}, 'rejected': [0]}), ('control 37', {'top': 30, 'lower_odd': False, 'dests': [18, 28, 28]}, {'stops': [18, 28], 'deck_of': {'18': 'lower', '28': 'lower'}, 'rejected': []}), ('sampled regression 40', {'top': 20, 'lower_odd': False, 'dests': [11, 14, 12, 8, 0, 4]}, {'stops': [4, 8, 10, 12, 14], 'deck_of': {'11': 'upper', '14': 'lower', '12': 'lower', '8': 'lower', '4': 'lower'}, 'rejected': [0]})], [('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 51', {'top': 21, 'lower_odd': True, 'dests': [22, 5, 13]}, {'stops': [5, 13], 'deck_of': {'5': 'lower', '13': 'lower'}, 'rejected': [22]}), ('boundary: top floor by the upper deck', {'top': 20, 'lower_odd': True, 'dests': [20]}, {'stops': [19], 'deck_of': {'20': 'upper'}, 'rejected': []}), ('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('boundary: repeated destinations', {'top': 20, 'lower_odd': True, 'dests': [9, 9, 10]}, {'stops': [9], 'deck_of': {'9': 'lower', '10': 'upper'}, 'rejected': []}), ('sampled regression 45', {'top': 30, 'lower_odd': False, 'dests': [1, 11, 0, 7, 22]}, {'stops': [6, 10, 22], 'deck_of': {'11': 'upper', '7': 'upper', '22': 'lower'}, 'rejected': [1, 0]}), ('control 48', {'top': 20, 'lower_odd': True, 'dests': [7, 1, 12, 15, 14, 20]}, {'stops': [1, 7, 11, 13, 15, 19], 'deck_of': {'7': 'lower', '1': 'lower', '12': 'upper', '15': 'lower', '14': 'upper', '20': 'upper'}, 'rejected': []}), ('control 54', {'top': 30, 'lower_odd': True, 'dests': [29]}, {'stops': [29], 'deck_of': {'29': 'lower'}, 'rejected': []})]]\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":"c0a900a8d136ec7bdae22ea8b5dce78369ce46916bd47da970f1107c812245c0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    stops = set()\n    deck = {}\n    rejected = []\n    for d in x['dests']:\n        lower = (d % 2 == 1) == x['lower_odd']\n        pos = d if lower else d - 1\n        if pos < 0 or pos > x['top']:\n            rejected.append(d)\n            continue\n        deck[str(d)] = 'lower' if lower else 'upper'\n        stops.add(pos)\n    return {'stops': sorted(stops), 'deck_of': deck, 'rejected': rejected}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 5', {'top': 21, 'lower_odd': True, 'dests': [21, 7, 16]}, {'stops': [7, 15], 'deck_of': {'7': 'lower', '16': 'upper'}, 'rejected': [21]}), ('sampled regression 2', {'top': 21, 'lower_odd': True, 'dests': [21, 20, 0, 16, 19, 7]}, {'stops': [7, 15, 19], 'deck_of': {'20': 'upper', '16': 'upper', '19': 'lower', '7': 'lower'}, 'rejected': [21, 0]}), ('boundary: odd and even floors share a stop', {'top': 20, 'lower_odd': True, 'dests': [5, 6]}, {'stops': [5], 'deck_of': {'5': 'lower', '6': 'upper'}, 'rejected': []}), ('boundary: even-lower convention', {'top': 20, 'lower_odd': False, 'dests': [6, 7]}, {'stops': [6], 'deck_of': {'6': 'lower', '7': 'upper'}, 'rejected': []}), ('control 1', {'top': 30, 'lower_odd': True, 'dests': [0]}, {'stops': [], 'deck_of': {}, 'rejected': [0]}), ('control 4', {'top': 20, 'lower_odd': False, 'dests': [19, 3]}, {'stops': [2, 18], 'deck_of': {'19': 'upper', '3': 'upper'}, 'rejected': []}), ('control 7', {'top': 21, 'lower_odd': False, 'dests': [9, 10, 3, 4, 7]}, {'stops': [2, 4, 6, 8, 10], 'deck_of': {'9': 'upper', '10': 'lower', '3': 'upper', '4': 'lower', '7': 'upper'}, 'rejected': []})], [('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 44', {'top': 21, 'lower_odd': False, 'dests': [1, 21, 20]}, {'stops': [20], 'deck_of': {'21': 'upper', '20': 'lower'}, 'rejected': [1]}), ('sampled regression 51', {'top': 21, 'lower_odd': True, 'dests': [22, 5, 13]}, {'stops': [5, 13], 'deck_of': {'5': 'lower', '13': 'lower'}, 'rejected': [22]}), ('boundary: top floor by the upper deck', {'top': 20, 'lower_odd': True, 'dests': [20]}, {'stops': [19], 'deck_of': {'20': 'upper'}, 'rejected': []}), ('control 12', {'top': 21, 'lower_odd': True, 'dests': [7, 16, 15, 14, 18, 5]}, {'stops': [5, 7, 13, 15, 17], 'deck_of': {'7': 'lower', '16': 'upper', '15': 'lower', '14': 'upper', '18': 'upper', '5': 'lower'}, 'rejected': []}), ('control 15', {'top': 21, 'lower_odd': False, 'dests': [2]}, {'stops': [2], 'deck_of': {'2': 'lower'}, 'rejected': []}), ('control 18', {'top': 30, 'lower_odd': True, 'dests': [1, 2, 16, 17, 9, 14]}, {'stops': [1, 9, 13, 15, 17], 'deck_of': {'1': 'lower', '2': 'upper', '16': 'upper', '17': 'lower', '9': 'lower', '14': 'upper'}, 'rejected': []})], [('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 74', {'top': 20, 'lower_odd': False, 'dests': [4, 1, 8, 18, 18]}, {'stops': [4, 8, 18], 'deck_of': {'4': 'lower', '8': 'lower', '18': 'lower'}, 'rejected': [1]}), ('sampled regression 14', {'top': 20, 'lower_odd': False, 'dests': [5, 21, 17, 0, 13, 8]}, {'stops': [4, 8, 12, 16], 'deck_of': {'5': 'upper', '17': 'upper', '13': 'upper', '8': 'lower'}, 'rejected': [21, 0]}), ('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('boundary: repeated destinations', {'top': 20, 'lower_odd': True, 'dests': [9, 9, 10]}, {'stops': [9], 'deck_of': {'9': 'lower', '10': 'upper'}, 'rejected': []}), ('control 23', {'top': 20, 'lower_odd': True, 'dests': [11, 6, 9, 18, 10, 19]}, {'stops': [5, 9, 11, 17, 19], 'deck_of': {'11': 'lower', '6': 'upper', '9': 'lower', '18': 'upper', '10': 'upper', '19': 'lower'}, 'rejected': []}), ('control 26', {'top': 20, 'lower_odd': True, 'dests': [0, 7, 4, 8, 20]}, {'stops': [3, 7, 19], 'deck_of': {'7': 'lower', '4': 'upper', '8': 'upper', '20': 'upper'}, 'rejected': [0]}), ('sampled regression 29', {'top': 21, 'lower_odd': False, 'dests': [3, 12, 13, 19, 1]}, {'stops': [2, 12, 18], 'deck_of': {'3': 'upper', '12': 'lower', '13': 'upper', '19': 'upper'}, 'rejected': [1]})], [('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 14', {'top': 20, 'lower_odd': False, 'dests': [5, 21, 17, 0, 13, 8]}, {'stops': [4, 8, 12, 16], 'deck_of': {'5': 'upper', '17': 'upper', '13': 'upper', '8': 'lower'}, 'rejected': [21, 0]}), ('sampled regression 5', {'top': 21, 'lower_odd': True, 'dests': [21, 7, 16]}, {'stops': [7, 15], 'deck_of': {'7': 'lower', '16': 'upper'}, 'rejected': [21]}), ('boundary: odd and even floors share a stop', {'top': 20, 'lower_odd': True, 'dests': [5, 6]}, {'stops': [5], 'deck_of': {'5': 'lower', '6': 'upper'}, 'rejected': []}), ('control 34', {'top': 20, 'lower_odd': True, 'dests': [5, 0]}, {'stops': [5], 'deck_of': {'5': 'lower'}, 'rejected': [0]}), ('control 37', {'top': 30, 'lower_odd': False, 'dests': [18, 28, 28]}, {'stops': [18, 28], 'deck_of': {'18': 'lower', '28': 'lower'}, 'rejected': []}), ('sampled regression 40', {'top': 20, 'lower_odd': False, 'dests': [11, 14, 12, 8, 0, 4]}, {'stops': [4, 8, 10, 12, 14], 'deck_of': {'11': 'upper', '14': 'lower', '12': 'lower', '8': 'lower', '4': 'lower'}, 'rejected': [0]})], [('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 51', {'top': 21, 'lower_odd': True, 'dests': [22, 5, 13]}, {'stops': [5, 13], 'deck_of': {'5': 'lower', '13': 'lower'}, 'rejected': [22]}), ('boundary: top floor by the upper deck', {'top': 20, 'lower_odd': True, 'dests': [20]}, {'stops': [19], 'deck_of': {'20': 'upper'}, 'rejected': []}), ('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('boundary: repeated destinations', {'top': 20, 'lower_odd': True, 'dests': [9, 9, 10]}, {'stops': [9], 'deck_of': {'9': 'lower', '10': 'upper'}, 'rejected': []}), ('sampled regression 45', {'top': 30, 'lower_odd': False, 'dests': [1, 11, 0, 7, 22]}, {'stops': [6, 10, 22], 'deck_of': {'11': 'upper', '7': 'upper', '22': 'lower'}, 'rejected': [1, 0]}), ('control 48', {'top': 20, 'lower_odd': True, 'dests': [7, 1, 12, 15, 14, 20]}, {'stops': [1, 7, 11, 13, 15, 19], 'deck_of': {'7': 'lower', '1': 'lower', '12': 'upper', '15': 'lower', '14': 'upper', '20': 'upper'}, 'rejected': []}), ('control 54', {'top': 30, 'lower_odd': True, 'dests': [29]}, {'stops': [29], 'deck_of': {'29': 'lower'}, 'rejected': []})]]\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":"9118ed5388a7053ff7790e107d78ecf7640984a93a9e7c635b6af176ca90f008","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    stops = set()\n    deck = {}\n    rejected = []\n    for d in x['dests']:\n        lower = (d % 2 == 1) == x['lower_odd']\n        pos = d if lower else d - 1\n        if pos < 1 or pos > x['top'] - 1:\n            rejected.append(d)\n            continue\n        deck[str(d)] = 'lower' if lower else 'upper'\n        stops.add(pos)\n    return {'stops': sorted(stops), 'deck_of': deck, 'rejected': rejected}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 5', {'top': 21, 'lower_odd': True, 'dests': [21, 7, 16]}, {'stops': [7, 15], 'deck_of': {'7': 'lower', '16': 'upper'}, 'rejected': [21]}), ('sampled regression 2', {'top': 21, 'lower_odd': True, 'dests': [21, 20, 0, 16, 19, 7]}, {'stops': [7, 15, 19], 'deck_of': {'20': 'upper', '16': 'upper', '19': 'lower', '7': 'lower'}, 'rejected': [21, 0]}), ('boundary: odd and even floors share a stop', {'top': 20, 'lower_odd': True, 'dests': [5, 6]}, {'stops': [5], 'deck_of': {'5': 'lower', '6': 'upper'}, 'rejected': []}), ('boundary: even-lower convention', {'top': 20, 'lower_odd': False, 'dests': [6, 7]}, {'stops': [6], 'deck_of': {'6': 'lower', '7': 'upper'}, 'rejected': []}), ('control 1', {'top': 30, 'lower_odd': True, 'dests': [0]}, {'stops': [], 'deck_of': {}, 'rejected': [0]}), ('control 4', {'top': 20, 'lower_odd': False, 'dests': [19, 3]}, {'stops': [2, 18], 'deck_of': {'19': 'upper', '3': 'upper'}, 'rejected': []}), ('control 7', {'top': 21, 'lower_odd': False, 'dests': [9, 10, 3, 4, 7]}, {'stops': [2, 4, 6, 8, 10], 'deck_of': {'9': 'upper', '10': 'lower', '3': 'upper', '4': 'lower', '7': 'upper'}, 'rejected': []})], [('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 44', {'top': 21, 'lower_odd': False, 'dests': [1, 21, 20]}, {'stops': [20], 'deck_of': {'21': 'upper', '20': 'lower'}, 'rejected': [1]}), ('sampled regression 51', {'top': 21, 'lower_odd': True, 'dests': [22, 5, 13]}, {'stops': [5, 13], 'deck_of': {'5': 'lower', '13': 'lower'}, 'rejected': [22]}), ('boundary: top floor by the upper deck', {'top': 20, 'lower_odd': True, 'dests': [20]}, {'stops': [19], 'deck_of': {'20': 'upper'}, 'rejected': []}), ('control 12', {'top': 21, 'lower_odd': True, 'dests': [7, 16, 15, 14, 18, 5]}, {'stops': [5, 7, 13, 15, 17], 'deck_of': {'7': 'lower', '16': 'upper', '15': 'lower', '14': 'upper', '18': 'upper', '5': 'lower'}, 'rejected': []}), ('control 15', {'top': 21, 'lower_odd': False, 'dests': [2]}, {'stops': [2], 'deck_of': {'2': 'lower'}, 'rejected': []}), ('control 18', {'top': 30, 'lower_odd': True, 'dests': [1, 2, 16, 17, 9, 14]}, {'stops': [1, 9, 13, 15, 17], 'deck_of': {'1': 'lower', '2': 'upper', '16': 'upper', '17': 'lower', '9': 'lower', '14': 'upper'}, 'rejected': []})], [('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 74', {'top': 20, 'lower_odd': False, 'dests': [4, 1, 8, 18, 18]}, {'stops': [4, 8, 18], 'deck_of': {'4': 'lower', '8': 'lower', '18': 'lower'}, 'rejected': [1]}), ('sampled regression 14', {'top': 20, 'lower_odd': False, 'dests': [5, 21, 17, 0, 13, 8]}, {'stops': [4, 8, 12, 16], 'deck_of': {'5': 'upper', '17': 'upper', '13': 'upper', '8': 'lower'}, 'rejected': [21, 0]}), ('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('boundary: repeated destinations', {'top': 20, 'lower_odd': True, 'dests': [9, 9, 10]}, {'stops': [9], 'deck_of': {'9': 'lower', '10': 'upper'}, 'rejected': []}), ('control 23', {'top': 20, 'lower_odd': True, 'dests': [11, 6, 9, 18, 10, 19]}, {'stops': [5, 9, 11, 17, 19], 'deck_of': {'11': 'lower', '6': 'upper', '9': 'lower', '18': 'upper', '10': 'upper', '19': 'lower'}, 'rejected': []}), ('control 26', {'top': 20, 'lower_odd': True, 'dests': [0, 7, 4, 8, 20]}, {'stops': [3, 7, 19], 'deck_of': {'7': 'lower', '4': 'upper', '8': 'upper', '20': 'upper'}, 'rejected': [0]}), ('sampled regression 29', {'top': 21, 'lower_odd': False, 'dests': [3, 12, 13, 19, 1]}, {'stops': [2, 12, 18], 'deck_of': {'3': 'upper', '12': 'lower', '13': 'upper', '19': 'upper'}, 'rejected': [1]})], [('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 14', {'top': 20, 'lower_odd': False, 'dests': [5, 21, 17, 0, 13, 8]}, {'stops': [4, 8, 12, 16], 'deck_of': {'5': 'upper', '17': 'upper', '13': 'upper', '8': 'lower'}, 'rejected': [21, 0]}), ('sampled regression 5', {'top': 21, 'lower_odd': True, 'dests': [21, 7, 16]}, {'stops': [7, 15], 'deck_of': {'7': 'lower', '16': 'upper'}, 'rejected': [21]}), ('boundary: odd and even floors share a stop', {'top': 20, 'lower_odd': True, 'dests': [5, 6]}, {'stops': [5], 'deck_of': {'5': 'lower', '6': 'upper'}, 'rejected': []}), ('control 34', {'top': 20, 'lower_odd': True, 'dests': [5, 0]}, {'stops': [5], 'deck_of': {'5': 'lower'}, 'rejected': [0]}), ('control 37', {'top': 30, 'lower_odd': False, 'dests': [18, 28, 28]}, {'stops': [18, 28], 'deck_of': {'18': 'lower', '28': 'lower'}, 'rejected': []}), ('sampled regression 40', {'top': 20, 'lower_odd': False, 'dests': [11, 14, 12, 8, 0, 4]}, {'stops': [4, 8, 10, 12, 14], 'deck_of': {'11': 'upper', '14': 'lower', '12': 'lower', '8': 'lower', '4': 'lower'}, 'rejected': [0]})], [('regression: top floor by the lower deck', {'top': 21, 'lower_odd': True, 'dests': [21]}, {'stops': [], 'deck_of': {}, 'rejected': [21]}), ('sampled regression 51', {'top': 21, 'lower_odd': True, 'dests': [22, 5, 13]}, {'stops': [5, 13], 'deck_of': {'5': 'lower', '13': 'lower'}, 'rejected': [22]}), ('boundary: top floor by the upper deck', {'top': 20, 'lower_odd': True, 'dests': [20]}, {'stops': [19], 'deck_of': {'20': 'upper'}, 'rejected': []}), ('regression: floor one by the upper deck', {'top': 20, 'lower_odd': False, 'dests': [1]}, {'stops': [], 'deck_of': {}, 'rejected': [1]}), ('boundary: repeated destinations', {'top': 20, 'lower_odd': True, 'dests': [9, 9, 10]}, {'stops': [9], 'deck_of': {'9': 'lower', '10': 'upper'}, 'rejected': []}), ('sampled regression 45', {'top': 30, 'lower_odd': False, 'dests': [1, 11, 0, 7, 22]}, {'stops': [6, 10, 22], 'deck_of': {'11': 'upper', '7': 'upper', '22': 'lower'}, 'rejected': [1, 0]}), ('control 48', {'top': 20, 'lower_odd': True, 'dests': [7, 1, 12, 15, 14, 20]}, {'stops': [1, 7, 11, 13, 15, 19], 'deck_of': {'7': 'lower', '1': 'lower', '12': 'upper', '15': 'lower', '14': 'upper', '20': 'upper'}, 'rejected': []}), ('control 54', {'top': 30, 'lower_odd': True, 'dests': [29]}, {'stops': [29], 'deck_of': {'29': 'lower'}, 'rejected': []})]]\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-double-deck-stops-shaft-reach-limits","generated_at":"2026-09-29T14:47:55.636103+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":"Keep car positions within 1..top-1.","root_cause":"The limits allow the lower deck at floor 0 and at the top floor.","sha256":"c961a9c7446be410db931a798dabee18b0efc76555589a279405ce02945816e3","title":"Double-deck car stop planning: shaft reach limits · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.737,"exit_code":1,"observations":[{"actual":{"deck_of":{"21":"lower"},"rejected":[],"stops":[21]},"check":"regression: top floor by the lower deck","expected":{"deck_of":{},"rejected":[21],"stops":[]},"passed":false},{"actual":{"deck_of":{"16":"upper","21":"lower","7":"lower"},"rejected":[],"stops":[7,15,21]},"check":"sampled regression 5","expected":{"deck_of":{"16":"upper","7":"lower"},"rejected":[21],"stops":[7,15]},"passed":false},{"actual":{"deck_of":{"16":"upper","19":"lower","20":"upper","21":"lower","7":"lower"},"rejected":[0],"stops":[7,15,19,21]},"check":"sampled regression 2","expected":{"deck_of":{"16":"upper","19":"lower","20":"upper","7":"lower"},"rejected":[21,0],"stops":[7,15,19]},"passed":false},{"actual":{"deck_of":{"5":"lower","6":"upper"},"rejected":[],"stops":[5]},"check":"boundary: odd and even floors share a stop","expected":{"deck_of":{"5":"lower","6":"upper"},"rejected":[],"stops":[5]},"passed":true},{"actual":{"deck_of":{"6":"lower","7":"upper"},"rejected":[],"stops":[6]},"check":"boundary: even-lower convention","expected":{"deck_of":{"6":"lower","7":"upper"},"rejected":[],"stops":[6]},"passed":true},{"actual":{"deck_of":{},"rejected":[0],"stops":[]},"check":"control 1","expected":{"deck_of":{},"rejected":[0],"stops":[]},"passed":true},{"actual":{"deck_of":{"19":"upper","3":"upper"},"rejected":[],"stops":[2,18]},"check":"control 4","expected":{"deck_of":{"19":"upper","3":"upper"},"rejected":[],"stops":[2,18]},"passed":true},{"actual":{"deck_of":{"10":"lower","3":"upper","4":"lower","7":"upper","9":"upper"},"rejected":[],"stops":[2,4,6,8,10]},"check":"control 7","expected":{"deck_of":{"10":"lower","3":"upper","4":"lower","7":"upper","9":"upper"},"rejected":[],"stops":[2,4,6,8,10]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: top floor by the lower deck\", \"actual\": {\"stops\": [21], \"deck_of\": {\"21\": \"lower\"}, \"rejected\": []}, \"expected\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [21]}, \"passed\": false}, {\"check\": \"sampled regression 5\", \"actual\": {\"stops\": [7, 15, 21], \"deck_of\": {\"21\": \"lower\", \"7\": \"lower\", \"16\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [7, 15], \"deck_of\": {\"7\": \"lower\", \"16\": \"upper\"}, \"rejected\": [21]}, \"passed\": false}, {\"check\": \"sampled regression 2\", \"actual\": {\"stops\": [7, 15, 19, 21], \"deck_of\": {\"21\": \"lower\", \"20\": \"upper\", \"16\": \"upper\", \"19\": \"lower\", \"7\": \"lower\"}, \"rejected\": [0]}, \"expected\": {\"stops\": [7, 15, 19], \"deck_of\": {\"20\": \"upper\", \"16\": \"upper\", \"19\": \"lower\", \"7\": \"lower\"}, \"rejected\": [21, 0]}, \"passed\": false}, {\"check\": \"boundary: odd and even floors share a stop\", \"actual\": {\"stops\": [5], \"deck_of\": {\"5\": \"lower\", \"6\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [5], \"deck_of\": {\"5\": \"lower\", \"6\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"boundary: even-lower convention\", \"actual\": {\"stops\": [6], \"deck_of\": {\"6\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [6], \"deck_of\": {\"6\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [0]}, \"expected\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [0]}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"stops\": [2, 18], \"deck_of\": {\"19\": \"upper\", \"3\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [2, 18], \"deck_of\": {\"19\": \"upper\", \"3\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"stops\": [2, 4, 6, 8, 10], \"deck_of\": {\"9\": \"upper\", \"10\": \"lower\", \"3\": \"upper\", \"4\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [2, 4, 6, 8, 10], \"deck_of\": {\"9\": \"upper\", \"10\": \"lower\", \"3\": \"upper\", \"4\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.658,"exit_code":1,"observations":[{"actual":{"deck_of":{"21":"lower"},"rejected":[],"stops":[21]},"check":"regression: top floor by the lower deck","expected":{"deck_of":{},"rejected":[21],"stops":[]},"passed":false},{"actual":{"deck_of":{"16":"upper","21":"lower","7":"lower"},"rejected":[],"stops":[7,15,21]},"check":"sampled regression 5","expected":{"deck_of":{"16":"upper","7":"lower"},"rejected":[21],"stops":[7,15]},"passed":false},{"actual":{"deck_of":{"16":"upper","19":"lower","20":"upper","21":"lower","7":"lower"},"rejected":[0],"stops":[7,15,19,21]},"check":"sampled regression 2","expected":{"deck_of":{"16":"upper","19":"lower","20":"upper","7":"lower"},"rejected":[21,0],"stops":[7,15,19]},"passed":false},{"actual":{"deck_of":{"5":"lower","6":"upper"},"rejected":[],"stops":[5]},"check":"boundary: odd and even floors share a stop","expected":{"deck_of":{"5":"lower","6":"upper"},"rejected":[],"stops":[5]},"passed":true},{"actual":{"deck_of":{"6":"lower","7":"upper"},"rejected":[],"stops":[6]},"check":"boundary: even-lower convention","expected":{"deck_of":{"6":"lower","7":"upper"},"rejected":[],"stops":[6]},"passed":true},{"actual":{"deck_of":{},"rejected":[0],"stops":[]},"check":"control 1","expected":{"deck_of":{},"rejected":[0],"stops":[]},"passed":true},{"actual":{"deck_of":{"19":"upper","3":"upper"},"rejected":[],"stops":[2,18]},"check":"control 4","expected":{"deck_of":{"19":"upper","3":"upper"},"rejected":[],"stops":[2,18]},"passed":true},{"actual":{"deck_of":{"10":"lower","3":"upper","4":"lower","7":"upper","9":"upper"},"rejected":[],"stops":[2,4,6,8,10]},"check":"control 7","expected":{"deck_of":{"10":"lower","3":"upper","4":"lower","7":"upper","9":"upper"},"rejected":[],"stops":[2,4,6,8,10]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: top floor by the lower deck\", \"actual\": {\"stops\": [21], \"deck_of\": {\"21\": \"lower\"}, \"rejected\": []}, \"expected\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [21]}, \"passed\": false}, {\"check\": \"sampled regression 5\", \"actual\": {\"stops\": [7, 15, 21], \"deck_of\": {\"21\": \"lower\", \"7\": \"lower\", \"16\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [7, 15], \"deck_of\": {\"7\": \"lower\", \"16\": \"upper\"}, \"rejected\": [21]}, \"passed\": false}, {\"check\": \"sampled regression 2\", \"actual\": {\"stops\": [7, 15, 19, 21], \"deck_of\": {\"21\": \"lower\", \"20\": \"upper\", \"16\": \"upper\", \"19\": \"lower\", \"7\": \"lower\"}, \"rejected\": [0]}, \"expected\": {\"stops\": [7, 15, 19], \"deck_of\": {\"20\": \"upper\", \"16\": \"upper\", \"19\": \"lower\", \"7\": \"lower\"}, \"rejected\": [21, 0]}, \"passed\": false}, {\"check\": \"boundary: odd and even floors share a stop\", \"actual\": {\"stops\": [5], \"deck_of\": {\"5\": \"lower\", \"6\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [5], \"deck_of\": {\"5\": \"lower\", \"6\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"boundary: even-lower convention\", \"actual\": {\"stops\": [6], \"deck_of\": {\"6\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [6], \"deck_of\": {\"6\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [0]}, \"expected\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [0]}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"stops\": [2, 18], \"deck_of\": {\"19\": \"upper\", \"3\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [2, 18], \"deck_of\": {\"19\": \"upper\", \"3\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"stops\": [2, 4, 6, 8, 10], \"deck_of\": {\"9\": \"upper\", \"10\": \"lower\", \"3\": \"upper\", \"4\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [2, 4, 6, 8, 10], \"deck_of\": {\"9\": \"upper\", \"10\": \"lower\", \"3\": \"upper\", \"4\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.528,"exit_code":0,"observations":[{"actual":{"deck_of":{},"rejected":[21],"stops":[]},"check":"regression: top floor by the lower deck","expected":{"deck_of":{},"rejected":[21],"stops":[]},"passed":true},{"actual":{"deck_of":{"16":"upper","7":"lower"},"rejected":[21],"stops":[7,15]},"check":"sampled regression 5","expected":{"deck_of":{"16":"upper","7":"lower"},"rejected":[21],"stops":[7,15]},"passed":true},{"actual":{"deck_of":{"16":"upper","19":"lower","20":"upper","7":"lower"},"rejected":[21,0],"stops":[7,15,19]},"check":"sampled regression 2","expected":{"deck_of":{"16":"upper","19":"lower","20":"upper","7":"lower"},"rejected":[21,0],"stops":[7,15,19]},"passed":true},{"actual":{"deck_of":{"5":"lower","6":"upper"},"rejected":[],"stops":[5]},"check":"boundary: odd and even floors share a stop","expected":{"deck_of":{"5":"lower","6":"upper"},"rejected":[],"stops":[5]},"passed":true},{"actual":{"deck_of":{"6":"lower","7":"upper"},"rejected":[],"stops":[6]},"check":"boundary: even-lower convention","expected":{"deck_of":{"6":"lower","7":"upper"},"rejected":[],"stops":[6]},"passed":true},{"actual":{"deck_of":{},"rejected":[0],"stops":[]},"check":"control 1","expected":{"deck_of":{},"rejected":[0],"stops":[]},"passed":true},{"actual":{"deck_of":{"19":"upper","3":"upper"},"rejected":[],"stops":[2,18]},"check":"control 4","expected":{"deck_of":{"19":"upper","3":"upper"},"rejected":[],"stops":[2,18]},"passed":true},{"actual":{"deck_of":{"10":"lower","3":"upper","4":"lower","7":"upper","9":"upper"},"rejected":[],"stops":[2,4,6,8,10]},"check":"control 7","expected":{"deck_of":{"10":"lower","3":"upper","4":"lower","7":"upper","9":"upper"},"rejected":[],"stops":[2,4,6,8,10]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: top floor by the lower deck\", \"actual\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [21]}, \"expected\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [21]}, \"passed\": true}, {\"check\": \"sampled regression 5\", \"actual\": {\"stops\": [7, 15], \"deck_of\": {\"7\": \"lower\", \"16\": \"upper\"}, \"rejected\": [21]}, \"expected\": {\"stops\": [7, 15], \"deck_of\": {\"7\": \"lower\", \"16\": \"upper\"}, \"rejected\": [21]}, \"passed\": true}, {\"check\": \"sampled regression 2\", \"actual\": {\"stops\": [7, 15, 19], \"deck_of\": {\"20\": \"upper\", \"16\": \"upper\", \"19\": \"lower\", \"7\": \"lower\"}, \"rejected\": [21, 0]}, \"expected\": {\"stops\": [7, 15, 19], \"deck_of\": {\"20\": \"upper\", \"16\": \"upper\", \"19\": \"lower\", \"7\": \"lower\"}, \"rejected\": [21, 0]}, \"passed\": true}, {\"check\": \"boundary: odd and even floors share a stop\", \"actual\": {\"stops\": [5], \"deck_of\": {\"5\": \"lower\", \"6\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [5], \"deck_of\": {\"5\": \"lower\", \"6\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"boundary: even-lower convention\", \"actual\": {\"stops\": [6], \"deck_of\": {\"6\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [6], \"deck_of\": {\"6\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [0]}, \"expected\": {\"stops\": [], \"deck_of\": {}, \"rejected\": [0]}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"stops\": [2, 18], \"deck_of\": {\"19\": \"upper\", \"3\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [2, 18], \"deck_of\": {\"19\": \"upper\", \"3\": \"upper\"}, \"rejected\": []}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"stops\": [2, 4, 6, 8, 10], \"deck_of\": {\"9\": \"upper\", \"10\": \"lower\", \"3\": \"upper\", \"4\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"expected\": {\"stops\": [2, 4, 6, 8, 10], \"deck_of\": {\"9\": \"upper\", \"10\": \"lower\", \"3\": \"upper\", \"4\": \"lower\", \"7\": \"upper\"}, \"rejected\": []}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}