{"abstract":"Routes in the opposite direction anywhere on the layout block each other and opposing routes are misreported.","category":"Railway interlocking logic","checks":8,"contract":"x has a route table (sections, overlap sections, required point positions, direction), the locked routes, occupied sections and a requested route. Return unknown-route, already-set, occupied (any path section occupied), opposing:<r> (shared path/overlap with an opposite-direction locked route), section-conflict:<r>, point-conflict:<r> (a shared point needed in the other position) or granted. Locked routes are examined in sorted order. Overlap may overlap another overlap.","contract_signature":"x","evaluation_group":"w2-railway_interlocking_logic-route-admission","failed_approach":"Flipping the direction comparison labels same-direction conflicts as opposing and opposing ones as plain section conflicts.","family":"w2-railway_interlocking_logic-route-admission-opposing-detection-scope","id":"FA-66851","implementations":{"attempt":{"sha256":"6a41e6ea35a08bf81182bb82955395f3ecadfcb2c16637c82d59a78e9b8d4dee","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    routes = x['routes']\n    name = x['request']\n    if name not in routes:\n        return 'unknown-route'\n    if name in x['locked']:\n        return 'already-set'\n    req = routes[name]\n    occ = set(x['occupied'])\n    if any(s in occ for s in req['sections']):\n        return 'occupied'\n    for other in sorted(x['locked']):\n        o = routes[other]\n        mine = set(req['sections'])\n        theirs = set(o['sections'])\n        shared = (mine & (theirs | set(o['overlap']))) | (set(req['overlap']) & theirs)\n        if shared and o['dir'] == req['dir']:\n            return 'opposing:' + other\n        if shared:\n            return 'section-conflict:' + other\n        for p, pos in sorted(req['points'].items()):\n            if p in o['points'] and o['points'][p] != pos:\n                return 'point-conflict:' + other\n    return 'granted'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: points agree between two locked routes', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S13-S14'}, 'granted'), ('boundary: shared point in the same lie', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5'], 'occupied': [], 'request': 'S13-S14'}, 'section-conflict:S3-S5'), ('sampled regression 18', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6', 'S11-S12', 'S3-S5'], 'occupied': ['J'], 'request': 'S6-S2'}, 'section-conflict:S8-S6'), ('boundary: overlaps overlapping each other', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S7-S2'}, 'section-conflict:S6-S2'), ('boundary: train standing in the second path section', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['B'], 'request': 'S1-S3'}, 'occupied'), ('control 1', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S1-S4', 'S7-S2'], 'occupied': [], 'request': 'S7-S2'}, 'already-set'), ('control 4', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S1-S4'], 'occupied': ['G', 'K'], 'request': 'S13-S14'}, 'point-conflict:S1-S4'), ('control 7', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S4-S9', 'S13-S14', 'S11-S12'], 'occupied': [], 'request': 'S99-S1'}, 'unknown-route')], [('regression: opposite direction elsewhere on the layout', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6'], 'occupied': [], 'request': 'S11-S12'}, 'granted'), ('boundary: overlaps overlapping each other', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S7-S2'}, 'section-conflict:S6-S2'), ('sampled regression 77', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S7-S2', 'S1-S4'], 'occupied': [], 'request': 'S11-S12'}, 'granted'), ('control 13', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6', 'S13-S14', 'S4-S9'], 'occupied': [], 'request': 'S1-S3'}, 'opposing:S8-S6'), ('boundary: shared point in the same lie', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5'], 'occupied': [], 'request': 'S13-S14'}, 'section-conflict:S3-S5'), ('control 12', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['G'], 'request': 'S11-S12'}, 'granted'), ('control 15', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['B'], 'request': 'S10-S7'}, 'granted'), ('sampled regression 18', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6', 'S11-S12', 'S3-S5'], 'occupied': ['J'], 'request': 'S6-S2'}, 'section-conflict:S8-S6')], [('regression: points agree between two locked routes', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S13-S14'}, 'granted'), ('boundary: overlap overlapping another path', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5'], 'occupied': [], 'request': 'S1-S3'}, 'section-conflict:S3-S5'), ('sampled regression 24', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S7-S2'], 'occupied': ['A', 'D'], 'request': 'S11-S12'}, 'granted'), ('control 29', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S13-S14'], 'occupied': ['K'], 'request': 'S8-S6'}, 'opposing:S13-S14'), ('boundary: overlaps overlapping each other', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S7-S2'}, 'section-conflict:S6-S2'), ('control 23', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S4-S9'], 'occupied': [], 'request': 'S3-S5'}, 'section-conflict:S4-S9'), ('control 26', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S13-S14'], 'occupied': ['B', 'D', 'H'], 'request': 'S13-S14'}, 'already-set'), ('control 32', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['L'], 'request': 'S8-S6'}, 'granted')], [('regression: opposite direction elsewhere on the layout', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6'], 'occupied': [], 'request': 'S11-S12'}, 'granted'), ('boundary: opposing movement into the same path', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S1-S3'], 'occupied': [], 'request': 'S6-S2'}, 'opposing:S1-S3'), ('regression: points agree between two locked routes', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S13-S14'}, 'granted'), ('control 45', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S1-S4', 'S1-S3'], 'occupied': ['E'], 'request': 'S7-S2'}, 'opposing:S1-S3'), ('boundary: re-request of a set route under a train', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S1-S3'], 'occupied': ['A'], 'request': 'S1-S3'}, 'already-set'), ('control 34', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S4-S9', 'S1-S3'], 'occupied': [], 'request': 'S1-S3'}, 'already-set'), ('control 37', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S4-S9'], 'occupied': [], 'request': 'S99-S1'}, 'unknown-route'), ('control 40', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['D'], 'request': 'S3-S5'}, 'granted')], [('regression: points agree between two locked routes', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S13-S14'}, 'granted'), ('boundary: shared point in the same lie', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5'], 'occupied': [], 'request': 'S13-S14'}, 'section-conflict:S3-S5'), ('sampled regression 42', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S10-S7', 'S7-S2', 'S3-S5'], 'occupied': ['E'], 'request': 'S13-S14'}, 'section-conflict:S3-S5'), ('sampled regression 78', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2', 'S11-S12'], 'occupied': ['C', 'G', 'L'], 'request': 'S7-S2'}, 'section-conflict:S6-S2'), ('boundary: re-request of a set route under a train', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S1-S3'], 'occupied': ['A'], 'request': 'S1-S3'}, 'already-set'), ('control 45', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S1-S4', 'S1-S3'], 'occupied': ['E'], 'request': 'S7-S2'}, 'opposing:S1-S3'), ('control 48', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['K'], 'request': 'S13-S14'}, 'granted'), ('control 51', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['F'], 'request': 'S6-S2'}, 'granted')]]\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":"0b912acdca53b41d6b9f330318d563832d34c7a272472d4fbb74e9b071b6b5b3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    routes = x['routes']\n    name = x['request']\n    if name not in routes:\n        return 'unknown-route'\n    if name in x['locked']:\n        return 'already-set'\n    req = routes[name]\n    occ = set(x['occupied'])\n    if any(s in occ for s in req['sections']):\n        return 'occupied'\n    for other in sorted(x['locked']):\n        o = routes[other]\n        mine = set(req['sections'])\n        theirs = set(o['sections'])\n        shared = (mine & (theirs | set(o['overlap']))) | (set(req['overlap']) & theirs)\n        if o['dir'] != req['dir']:\n            return 'opposing:' + other\n        if shared:\n            return 'section-conflict:' + other\n        for p, pos in sorted(req['points'].items()):\n            if p in o['points'] and o['points'][p] != pos:\n                return 'point-conflict:' + other\n    return 'granted'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: points agree between two locked routes', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S13-S14'}, 'granted'), ('boundary: shared point in the same lie', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5'], 'occupied': [], 'request': 'S13-S14'}, 'section-conflict:S3-S5'), ('sampled regression 18', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6', 'S11-S12', 'S3-S5'], 'occupied': ['J'], 'request': 'S6-S2'}, 'section-conflict:S8-S6'), ('boundary: overlaps overlapping each other', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S7-S2'}, 'section-conflict:S6-S2'), ('boundary: train standing in the second path section', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['B'], 'request': 'S1-S3'}, 'occupied'), ('control 1', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S1-S4', 'S7-S2'], 'occupied': [], 'request': 'S7-S2'}, 'already-set'), ('control 4', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S1-S4'], 'occupied': ['G', 'K'], 'request': 'S13-S14'}, 'point-conflict:S1-S4'), ('control 7', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S4-S9', 'S13-S14', 'S11-S12'], 'occupied': [], 'request': 'S99-S1'}, 'unknown-route')], [('regression: opposite direction elsewhere on the layout', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6'], 'occupied': [], 'request': 'S11-S12'}, 'granted'), ('boundary: overlaps overlapping each other', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S7-S2'}, 'section-conflict:S6-S2'), ('sampled regression 77', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S7-S2', 'S1-S4'], 'occupied': [], 'request': 'S11-S12'}, 'granted'), ('control 13', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6', 'S13-S14', 'S4-S9'], 'occupied': [], 'request': 'S1-S3'}, 'opposing:S8-S6'), ('boundary: shared point in the same lie', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5'], 'occupied': [], 'request': 'S13-S14'}, 'section-conflict:S3-S5'), ('control 12', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['G'], 'request': 'S11-S12'}, 'granted'), ('control 15', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['B'], 'request': 'S10-S7'}, 'granted'), ('sampled regression 18', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6', 'S11-S12', 'S3-S5'], 'occupied': ['J'], 'request': 'S6-S2'}, 'section-conflict:S8-S6')], [('regression: points agree between two locked routes', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S13-S14'}, 'granted'), ('boundary: overlap overlapping another path', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5'], 'occupied': [], 'request': 'S1-S3'}, 'section-conflict:S3-S5'), ('sampled regression 24', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S7-S2'], 'occupied': ['A', 'D'], 'request': 'S11-S12'}, 'granted'), ('control 29', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S13-S14'], 'occupied': ['K'], 'request': 'S8-S6'}, 'opposing:S13-S14'), ('boundary: overlaps overlapping each other', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S7-S2'}, 'section-conflict:S6-S2'), ('control 23', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S4-S9'], 'occupied': [], 'request': 'S3-S5'}, 'section-conflict:S4-S9'), ('control 26', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S13-S14'], 'occupied': ['B', 'D', 'H'], 'request': 'S13-S14'}, 'already-set'), ('control 32', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['L'], 'request': 'S8-S6'}, 'granted')], [('regression: opposite direction elsewhere on the layout', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S8-S6'], 'occupied': [], 'request': 'S11-S12'}, 'granted'), ('boundary: opposing movement into the same path', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S1-S3'], 'occupied': [], 'request': 'S6-S2'}, 'opposing:S1-S3'), ('regression: points agree between two locked routes', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S13-S14'}, 'granted'), ('control 45', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S1-S4', 'S1-S3'], 'occupied': ['E'], 'request': 'S7-S2'}, 'opposing:S1-S3'), ('boundary: re-request of a set route under a train', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S1-S3'], 'occupied': ['A'], 'request': 'S1-S3'}, 'already-set'), ('control 34', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S4-S9', 'S1-S3'], 'occupied': [], 'request': 'S1-S3'}, 'already-set'), ('control 37', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S4-S9'], 'occupied': [], 'request': 'S99-S1'}, 'unknown-route'), ('control 40', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['D'], 'request': 'S3-S5'}, 'granted')], [('regression: points agree between two locked routes', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2'], 'occupied': [], 'request': 'S13-S14'}, 'granted'), ('boundary: shared point in the same lie', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5'], 'occupied': [], 'request': 'S13-S14'}, 'section-conflict:S3-S5'), ('sampled regression 42', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S10-S7', 'S7-S2', 'S3-S5'], 'occupied': ['E'], 'request': 'S13-S14'}, 'section-conflict:S3-S5'), ('sampled regression 78', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S6-S2', 'S11-S12'], 'occupied': ['C', 'G', 'L'], 'request': 'S7-S2'}, 'section-conflict:S6-S2'), ('boundary: re-request of a set route under a train', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S1-S3'], 'occupied': ['A'], 'request': 'S1-S3'}, 'already-set'), ('control 45', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': ['S3-S5', 'S1-S4', 'S1-S3'], 'occupied': ['E'], 'request': 'S7-S2'}, 'opposing:S1-S3'), ('control 48', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['K'], 'request': 'S13-S14'}, 'granted'), ('control 51', {'routes': {'S1-S3': {'sections': ['A', 'B'], 'overlap': ['C'], 'points': {'P1': 'N'}, 'dir': 'up'}, 'S1-S4': {'sections': ['A', 'D'], 'overlap': ['E'], 'points': {'P1': 'R'}, 'dir': 'up'}, 'S3-S5': {'sections': ['C', 'F'], 'overlap': ['G'], 'points': {'P2': 'N'}, 'dir': 'up'}, 'S6-S2': {'sections': ['B', 'A'], 'overlap': ['H'], 'points': {'P1': 'N'}, 'dir': 'down'}, 'S7-S2': {'sections': ['D', 'A'], 'overlap': ['H'], 'points': {'P1': 'R'}, 'dir': 'down'}, 'S8-S6': {'sections': ['F', 'C'], 'overlap': ['B'], 'points': {'P2': 'N'}, 'dir': 'down'}, 'S4-S9': {'sections': ['E', 'G'], 'overlap': ['K'], 'points': {'P2': 'R', 'P3': 'N'}, 'dir': 'up'}, 'S10-S7': {'sections': ['G', 'E'], 'overlap': ['D'], 'points': {'P3': 'N'}, 'dir': 'down'}, 'S11-S12': {'sections': ['J'], 'overlap': ['K'], 'points': {'P3': 'R'}, 'dir': 'up'}, 'S13-S14': {'sections': ['L'], 'overlap': ['C'], 'points': {'P1': 'N', 'P4': 'R'}, 'dir': 'up'}}, 'locked': [], 'occupied': ['F'], 'request': 'S6-S2'}, 'granted')]]\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 interlocking contract for a bounded teaching model; it makes no claim of conformance to any railway signalling standard 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-railway_interlocking_logic-route-admission-opposing-detection-scope","generated_at":"2026-09-29T14:47:47.497549+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Interlocking logic decides whether trains may be given authority; a wrong decision at this point either grants unsafe movements or strands traffic.","root_cause":"The opposing test drops the shared-section condition so any opposite-direction locked route is treated as opposing.","sha256":"a2704c402ebd8b282ef0a8371deca455934fe017ac83c09c444a0af965afd454","title":"Route request admission: opposing detection scope · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.756,"exit_code":1,"observations":[{"actual":"granted","check":"regression: points agree between two locked routes","expected":"granted","passed":true},{"actual":"opposing:S3-S5","check":"boundary: shared point in the same lie","expected":"section-conflict:S3-S5","passed":false},{"actual":"opposing:S8-S6","check":"sampled regression 18","expected":"section-conflict:S8-S6","passed":false},{"actual":"opposing:S6-S2","check":"boundary: overlaps overlapping each other","expected":"section-conflict:S6-S2","passed":false},{"actual":"occupied","check":"boundary: train standing in the second path section","expected":"occupied","passed":true},{"actual":"already-set","check":"control 1","expected":"already-set","passed":true},{"actual":"point-conflict:S1-S4","check":"control 4","expected":"point-conflict:S1-S4","passed":true},{"actual":"unknown-route","check":"control 7","expected":"unknown-route","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: points agree between two locked routes\", \"actual\": \"granted\", \"expected\": \"granted\", \"passed\": true}, {\"check\": \"boundary: shared point in the same lie\", \"actual\": \"opposing:S3-S5\", \"expected\": \"section-conflict:S3-S5\", \"passed\": false}, {\"check\": \"sampled regression 18\", \"actual\": \"opposing:S8-S6\", \"expected\": \"section-conflict:S8-S6\", \"passed\": false}, {\"check\": \"boundary: overlaps overlapping each other\", \"actual\": \"opposing:S6-S2\", \"expected\": \"section-conflict:S6-S2\", \"passed\": false}, {\"check\": \"boundary: train standing in the second path section\", \"actual\": \"occupied\", \"expected\": \"occupied\", \"passed\": true}, {\"check\": \"control 1\", \"actual\": \"already-set\", \"expected\": \"already-set\", \"passed\": true}, {\"check\": \"control 4\", \"actual\": \"point-conflict:S1-S4\", \"expected\": \"point-conflict:S1-S4\", \"passed\": true}, {\"check\": \"control 7\", \"actual\": \"unknown-route\", \"expected\": \"unknown-route\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.671,"exit_code":1,"observations":[{"actual":"opposing:S6-S2","check":"regression: points agree between two locked routes","expected":"granted","passed":false},{"actual":"section-conflict:S3-S5","check":"boundary: shared point in the same lie","expected":"section-conflict:S3-S5","passed":true},{"actual":"opposing:S11-S12","check":"sampled regression 18","expected":"section-conflict:S8-S6","passed":false},{"actual":"section-conflict:S6-S2","check":"boundary: overlaps overlapping each other","expected":"section-conflict:S6-S2","passed":true},{"actual":"occupied","check":"boundary: train standing in the second path section","expected":"occupied","passed":true},{"actual":"already-set","check":"control 1","expected":"already-set","passed":true},{"actual":"point-conflict:S1-S4","check":"control 4","expected":"point-conflict:S1-S4","passed":true},{"actual":"unknown-route","check":"control 7","expected":"unknown-route","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: points agree between two locked routes\", \"actual\": \"opposing:S6-S2\", \"expected\": \"granted\", \"passed\": false}, {\"check\": \"boundary: shared point in the same lie\", \"actual\": \"section-conflict:S3-S5\", \"expected\": \"section-conflict:S3-S5\", \"passed\": true}, {\"check\": \"sampled regression 18\", \"actual\": \"opposing:S11-S12\", \"expected\": \"section-conflict:S8-S6\", \"passed\": false}, {\"check\": \"boundary: overlaps overlapping each other\", \"actual\": \"section-conflict:S6-S2\", \"expected\": \"section-conflict:S6-S2\", \"passed\": true}, {\"check\": \"boundary: train standing in the second path section\", \"actual\": \"occupied\", \"expected\": \"occupied\", \"passed\": true}, {\"check\": \"control 1\", \"actual\": \"already-set\", \"expected\": \"already-set\", \"passed\": true}, {\"check\": \"control 4\", \"actual\": \"point-conflict:S1-S4\", \"expected\": \"point-conflict:S1-S4\", \"passed\": true}, {\"check\": \"control 7\", \"actual\": \"unknown-route\", \"expected\": \"unknown-route\", \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}