{"abstract":"A lower-class train wins a conflicting route over a higher-class train.","category":"Railway interlocking logic","checks":8,"contract":"Trains whose eta is at most lookahead_s after now are candidates, including overdue trains (eta before now). Candidates are ordered by class (1 highest), then scheduled time, then id. Routes are granted greedily in that order; a candidate is skipped if its route equals or conflicts with (conflict pairs are unordered) any route already granted. Return granted train ids in grant order.","evaluation_group":"w2-railway_interlocking_logic-automatic-route-setting","failed_approach":"Putting schedule before class still lets an earlier freight beat an express.","family":"w2-railway_interlocking_logic-automatic-route-setting-arbitration-order","id":"FA-67301","implementations":{"attempt":{"sha256":"21ec167dfa15108841b0e38fb655e1d4736d437738508758e9347a99b5bb03c4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    now = x['now']\n    cand = [t for t in x['trains'] if t['eta'] - now <= x['lookahead_s']]\n    cand.sort(key=lambda t: (t['sched'], t['cls'], t['id']))\n    pairs = set()\n    for a, b in x['conflicts']:\n        pairs.add((a, b))\n        pairs.add((b, a))\n    granted = []\n    routes = []\n    for t in cand:\n        if any(t['route'] == r or (t['route'], r) in pairs for r in routes):\n            continue\n        granted.append(t['id'])\n        routes.append(t['route'])\n    return granted\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 4', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 200, 'eta': 220, 'route': 'R3'}, {'id': '8A01', 'cls': 1, 'sched': 100, 'eta': 80, 'route': 'R5'}, {'id': '7A02', 'cls': 3, 'sched': 100, 'eta': 80, 'route': 'R2'}], 'conflicts': [['R1', 'R5'], ['R1', 'R2'], ['R3', 'R2'], ['R4', 'R5']]}, ['8A01', '2A00']), ('sampled regression 3', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '3A00', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R1'}, {'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 160, 'route': 'R4'}, {'id': '6A02', 'cls': 1, 'sched': 120, 'eta': 100, 'route': 'R4'}, {'id': '1A03', 'cls': 3, 'sched': 150, 'eta': 80, 'route': 'R1'}, {'id': '9A04', 'cls': 3, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '7A05', 'cls': 3, 'sched': 120, 'eta': 220, 'route': 'R3'}], 'conflicts': [['R2', 'R1'], ['R1', 'R5'], ['R3', 'R4']]}, ['6A02', '3A00']), ('boundary: eta exactly at the lookahead', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 160, 'route': 'R1'}]}, ['1A01']), ('boundary: overdue train', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 60, 'eta': 70, 'route': 'R2'}]}, ['2A01']), ('control 1', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '6A00', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '7A01', 'cls': 1, 'sched': 120, 'eta': 220, 'route': 'R2'}], 'conflicts': [['R4', 'R3'], ['R2', 'R3'], ['R4', 'R5'], ['R2', 'R1']]}, []), ('control 7', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R5'}, {'id': '9A01', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R1'}], 'conflicts': [['R3', 'R2']]}, ['9A01']), ('sampled regression 10', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '1A00', 'cls': 1, 'sched': 200, 'eta': 220, 'route': 'R1'}, {'id': '6A01', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R5'}, {'id': '7A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R2'}, {'id': '4A03', 'cls': 3, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '1A04', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '8A05', 'cls': 3, 'sched': 150, 'eta': 400, 'route': 'R4'}], 'conflicts': [['R2', 'R1'], ['R3', 'R4'], ['R5', 'R4']]}, ['1A04', '1A00'])], [('regression: late running train keeps schedule order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 150, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 105, 'route': 'R2'}]}, ['1A01']), ('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 15', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 200, 'eta': 180, 'route': 'R5'}, {'id': '6A01', 'cls': 3, 'sched': 150, 'eta': 80, 'route': 'R2'}, {'id': '7A02', 'cls': 3, 'sched': 100, 'eta': 130, 'route': 'R5'}, {'id': '5A03', 'cls': 3, 'sched': 120, 'eta': 160, 'route': 'R1'}], 'conflicts': [['R2', 'R1'], ['R4', 'R5'], ['R1', 'R5']]}, ['7A02', '6A01']), ('sampled regression 18', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '8A01', 'cls': 2, 'sched': 100, 'eta': 80, 'route': 'R3'}], 'conflicts': [['R5', 'R4'], ['R1', 'R2'], ['R4', 'R3']]}, ['9A00']), ('boundary: conflict listed in reverse order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R2'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R1'}]}, ['1A01']), ('control 12', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '8A00', 'cls': 1, 'sched': 100, 'eta': 180, 'route': 'R3'}, {'id': '8A01', 'cls': 2, 'sched': 100, 'eta': 220, 'route': 'R2'}], 'conflicts': [['R3', 'R4']]}, ['8A00', '8A01']), ('control 21', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '8A00', 'cls': 3, 'sched': 150, 'eta': 180, 'route': 'R2'}, {'id': '7A01', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R5'}, {'id': '3A02', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R2'}], 'conflicts': [['R5', 'R1'], ['R4', 'R3'], ['R5', 'R4'], ['R1', 'R2']]}, ['7A01', '3A02']), ('sampled regression 24', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '5A00', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R4'}, {'id': '4A01', 'cls': 3, 'sched': 200, 'eta': 400, 'route': 'R5'}, {'id': '8A02', 'cls': 2, 'sched': 100, 'eta': 180, 'route': 'R2'}, {'id': '3A03', 'cls': 1, 'sched': 100, 'eta': 400, 'route': 'R5'}], 'conflicts': [['R2', 'R3'], ['R1', 'R5'], ['R1', 'R2']]}, ['8A02', '5A00'])], [('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 25', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R1'}, {'id': '7A01', 'cls': 1, 'sched': 150, 'eta': 80, 'route': 'R2'}, {'id': '2A02', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R2'}, {'id': '7A03', 'cls': 1, 'sched': 200, 'eta': 400, 'route': 'R2'}, {'id': '1A04', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R2', 'R3'], ['R4', 'R3']]}, ['2A00', '2A02']), ('sampled regression 33', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '7A00', 'cls': 1, 'sched': 200, 'eta': 130, 'route': 'R2'}, {'id': '1A01', 'cls': 2, 'sched': 120, 'eta': 400, 'route': 'R3'}, {'id': '9A02', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R2', 'R3'], ['R4', 'R3'], ['R4', 'R5']]}, ['7A00']), ('boundary: reverse-listed conflict granted in reverse', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R3', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R3'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R2'}]}, ['1A01']), ('boundary: two trains for one route', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R3'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R3'}]}, ['1A01']), ('sampled regression 23', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 200, 'eta': 180, 'route': 'R4'}, {'id': '1A01', 'cls': 2, 'sched': 200, 'eta': 220, 'route': 'R2'}, {'id': '5A02', 'cls': 2, 'sched': 120, 'eta': 160, 'route': 'R5'}, {'id': '2A03', 'cls': 2, 'sched': 150, 'eta': 80, 'route': 'R2'}], 'conflicts': [['R1', 'R5'], ['R2', 'R1']]}, ['9A00', '5A02', '2A03']), ('sampled regression 26', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 120, 'eta': 160, 'route': 'R2'}, {'id': '7A01', 'cls': 2, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '2A02', 'cls': 1, 'sched': 150, 'eta': 180, 'route': 'R2'}, {'id': '1A03', 'cls': 3, 'sched': 150, 'eta': 130, 'route': 'R1'}, {'id': '7A04', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R1'}, {'id': '1A05', 'cls': 2, 'sched': 150, 'eta': 400, 'route': 'R3'}], 'conflicts': [['R1', 'R5']]}, ['9A00', '7A04']), ('control 29', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '6A00', 'cls': 2, 'sched': 200, 'eta': 80, 'route': 'R5'}, {'id': '8A01', 'cls': 2, 'sched': 120, 'eta': 220, 'route': 'R1'}, {'id': '6A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '2A03', 'cls': 1, 'sched': 200, 'eta': 400, 'route': 'R3'}], 'conflicts': [['R5', 'R4'], ['R4', 'R3'], ['R2', 'R1'], ['R3', 'R2']]}, ['6A00'])], [('regression: late running train keeps schedule order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 150, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 105, 'route': 'R2'}]}, ['1A01']), ('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 35', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 100, 'eta': 80, 'route': 'R3'}, {'id': '1A01', 'cls': 2, 'sched': 100, 'eta': 100, 'route': 'R4'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R3'}, {'id': '8A03', 'cls': 2, 'sched': 200, 'eta': 100, 'route': 'R3'}, {'id': '8A04', 'cls': 2, 'sched': 120, 'eta': 400, 'route': 'R4'}], 'conflicts': [['R1', 'R2'], ['R2', 'R3'], ['R1', 'R5']]}, ['1A02', '1A01']), ('sampled regression 40', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 120, 'eta': 180, 'route': 'R4'}, {'id': '2A01', 'cls': 1, 'sched': 100, 'eta': 400, 'route': 'R4'}, {'id': '8A02', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R3'}, {'id': '1A03', 'cls': 2, 'sched': 200, 'eta': 100, 'route': 'R3'}, {'id': '8A04', 'cls': 2, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '3A05', 'cls': 3, 'sched': 120, 'eta': 130, 'route': 'R5'}], 'conflicts': [['R1', 'R5'], ['R2', 'R3'], ['R1', 'R2'], ['R3', 'R4']]}, ['8A02', '3A05']), ('boundary: conflict with an earlier grant', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R5']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 110, 'eta': 120, 'route': 'R4'}, {'id': '1A03', 'cls': 1, 'sched': 130, 'eta': 130, 'route': 'R5'}]}, ['1A01', '1A02']), ('sampled regression 34', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 150, 'eta': 160, 'route': 'R5'}, {'id': '6A01', 'cls': 2, 'sched': 200, 'eta': 130, 'route': 'R5'}], 'conflicts': [['R4', 'R3']]}, ['2A00']), ('control 37', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '4A00', 'cls': 3, 'sched': 120, 'eta': 400, 'route': 'R4'}, {'id': '1A01', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R4'}, {'id': '6A02', 'cls': 2, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '3A03', 'cls': 2, 'sched': 150, 'eta': 220, 'route': 'R5'}, {'id': '1A04', 'cls': 3, 'sched': 120, 'eta': 220, 'route': 'R2'}, {'id': '6A05', 'cls': 3, 'sched': 120, 'eta': 180, 'route': 'R1'}], 'conflicts': [['R1', 'R5'], ['R2', 'R1'], ['R3', 'R4']]}, ['1A01']), ('control 43', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '7A00', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R5'}, {'id': '3A01', 'cls': 1, 'sched': 150, 'eta': 180, 'route': 'R2'}], 'conflicts': [['R3', 'R2'], ['R5', 'R4']]}, ['7A00'])], [('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 45', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '6A00', 'cls': 3, 'sched': 150, 'eta': 180, 'route': 'R1'}, {'id': '2A01', 'cls': 3, 'sched': 120, 'eta': 80, 'route': 'R1'}, {'id': '2A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '5A03', 'cls': 1, 'sched': 120, 'eta': 160, 'route': 'R2'}, {'id': '9A04', 'cls': 3, 'sched': 200, 'eta': 130, 'route': 'R1'}, {'id': '5A05', 'cls': 1, 'sched': 120, 'eta': 130, 'route': 'R1'}], 'conflicts': [['R5', 'R4'], ['R3', 'R2'], ['R1', 'R5'], ['R3', 'R4']]}, ['5A03', '5A05']), ('sampled regression 58', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '8A00', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R5'}, {'id': '9A01', 'cls': 3, 'sched': 120, 'eta': 80, 'route': 'R4'}, {'id': '7A02', 'cls': 3, 'sched': 200, 'eta': 180, 'route': 'R1'}, {'id': '8A03', 'cls': 1, 'sched': 120, 'eta': 130, 'route': 'R5'}, {'id': '7A04', 'cls': 2, 'sched': 200, 'eta': 130, 'route': 'R5'}, {'id': '6A05', 'cls': 3, 'sched': 200, 'eta': 180, 'route': 'R1'}], 'conflicts': [['R4', 'R3'], ['R1', 'R2']]}, ['8A03', '9A01', '6A05']), ('boundary: eta exactly at the lookahead', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 160, 'route': 'R1'}]}, ['1A01']), ('boundary: overdue train', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 60, 'eta': 70, 'route': 'R2'}]}, ['2A01']), ('sampled regression 48', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '5A00', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R1'}, {'id': '2A01', 'cls': 3, 'sched': 100, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R4', 'R5'], ['R3', 'R4'], ['R1', 'R2']]}, ['5A00', '2A01']), ('control 51', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '5A00', 'cls': 3, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '6A01', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R2'}, {'id': '3A02', 'cls': 2, 'sched': 120, 'eta': 160, 'route': 'R4'}, {'id': '6A03', 'cls': 2, 'sched': 100, 'eta': 400, 'route': 'R2'}], 'conflicts': [['R3', 'R2'], ['R4', 'R5']]}, ['3A02']), ('sampled regression 54', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '7A00', 'cls': 3, 'sched': 150, 'eta': 100, 'route': 'R2'}, {'id': '5A01', 'cls': 3, 'sched': 150, 'eta': 400, 'route': 'R3'}, {'id': '9A02', 'cls': 1, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '7A03', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R3'}, {'id': '4A04', 'cls': 3, 'sched': 120, 'eta': 180, 'route': 'R3'}], 'conflicts': [['R3', 'R2'], ['R1', 'R5'], ['R4', 'R3']]}, ['9A02', '7A00'])]]\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":"592078b5ab05aceded9d83c1c17ee05ac3127d40aac203b89cee54a32eda98ff","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    now = x['now']\n    cand = [t for t in x['trains'] if t['eta'] - now <= x['lookahead_s']]\n    cand.sort(key=lambda t: (t['eta'], t['id']))\n    pairs = set()\n    for a, b in x['conflicts']:\n        pairs.add((a, b))\n        pairs.add((b, a))\n    granted = []\n    routes = []\n    for t in cand:\n        if any(t['route'] == r or (t['route'], r) in pairs for r in routes):\n            continue\n        granted.append(t['id'])\n        routes.append(t['route'])\n    return granted\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 4', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 200, 'eta': 220, 'route': 'R3'}, {'id': '8A01', 'cls': 1, 'sched': 100, 'eta': 80, 'route': 'R5'}, {'id': '7A02', 'cls': 3, 'sched': 100, 'eta': 80, 'route': 'R2'}], 'conflicts': [['R1', 'R5'], ['R1', 'R2'], ['R3', 'R2'], ['R4', 'R5']]}, ['8A01', '2A00']), ('sampled regression 3', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '3A00', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R1'}, {'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 160, 'route': 'R4'}, {'id': '6A02', 'cls': 1, 'sched': 120, 'eta': 100, 'route': 'R4'}, {'id': '1A03', 'cls': 3, 'sched': 150, 'eta': 80, 'route': 'R1'}, {'id': '9A04', 'cls': 3, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '7A05', 'cls': 3, 'sched': 120, 'eta': 220, 'route': 'R3'}], 'conflicts': [['R2', 'R1'], ['R1', 'R5'], ['R3', 'R4']]}, ['6A02', '3A00']), ('boundary: eta exactly at the lookahead', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 160, 'route': 'R1'}]}, ['1A01']), ('boundary: overdue train', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 60, 'eta': 70, 'route': 'R2'}]}, ['2A01']), ('control 1', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '6A00', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '7A01', 'cls': 1, 'sched': 120, 'eta': 220, 'route': 'R2'}], 'conflicts': [['R4', 'R3'], ['R2', 'R3'], ['R4', 'R5'], ['R2', 'R1']]}, []), ('control 7', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R5'}, {'id': '9A01', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R1'}], 'conflicts': [['R3', 'R2']]}, ['9A01']), ('sampled regression 10', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '1A00', 'cls': 1, 'sched': 200, 'eta': 220, 'route': 'R1'}, {'id': '6A01', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R5'}, {'id': '7A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R2'}, {'id': '4A03', 'cls': 3, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '1A04', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '8A05', 'cls': 3, 'sched': 150, 'eta': 400, 'route': 'R4'}], 'conflicts': [['R2', 'R1'], ['R3', 'R4'], ['R5', 'R4']]}, ['1A04', '1A00'])], [('regression: late running train keeps schedule order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 150, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 105, 'route': 'R2'}]}, ['1A01']), ('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 15', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 200, 'eta': 180, 'route': 'R5'}, {'id': '6A01', 'cls': 3, 'sched': 150, 'eta': 80, 'route': 'R2'}, {'id': '7A02', 'cls': 3, 'sched': 100, 'eta': 130, 'route': 'R5'}, {'id': '5A03', 'cls': 3, 'sched': 120, 'eta': 160, 'route': 'R1'}], 'conflicts': [['R2', 'R1'], ['R4', 'R5'], ['R1', 'R5']]}, ['7A02', '6A01']), ('sampled regression 18', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '8A01', 'cls': 2, 'sched': 100, 'eta': 80, 'route': 'R3'}], 'conflicts': [['R5', 'R4'], ['R1', 'R2'], ['R4', 'R3']]}, ['9A00']), ('boundary: conflict listed in reverse order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R2'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R1'}]}, ['1A01']), ('control 12', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '8A00', 'cls': 1, 'sched': 100, 'eta': 180, 'route': 'R3'}, {'id': '8A01', 'cls': 2, 'sched': 100, 'eta': 220, 'route': 'R2'}], 'conflicts': [['R3', 'R4']]}, ['8A00', '8A01']), ('control 21', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '8A00', 'cls': 3, 'sched': 150, 'eta': 180, 'route': 'R2'}, {'id': '7A01', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R5'}, {'id': '3A02', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R2'}], 'conflicts': [['R5', 'R1'], ['R4', 'R3'], ['R5', 'R4'], ['R1', 'R2']]}, ['7A01', '3A02']), ('sampled regression 24', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '5A00', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R4'}, {'id': '4A01', 'cls': 3, 'sched': 200, 'eta': 400, 'route': 'R5'}, {'id': '8A02', 'cls': 2, 'sched': 100, 'eta': 180, 'route': 'R2'}, {'id': '3A03', 'cls': 1, 'sched': 100, 'eta': 400, 'route': 'R5'}], 'conflicts': [['R2', 'R3'], ['R1', 'R5'], ['R1', 'R2']]}, ['8A02', '5A00'])], [('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 25', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R1'}, {'id': '7A01', 'cls': 1, 'sched': 150, 'eta': 80, 'route': 'R2'}, {'id': '2A02', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R2'}, {'id': '7A03', 'cls': 1, 'sched': 200, 'eta': 400, 'route': 'R2'}, {'id': '1A04', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R2', 'R3'], ['R4', 'R3']]}, ['2A00', '2A02']), ('sampled regression 33', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '7A00', 'cls': 1, 'sched': 200, 'eta': 130, 'route': 'R2'}, {'id': '1A01', 'cls': 2, 'sched': 120, 'eta': 400, 'route': 'R3'}, {'id': '9A02', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R2', 'R3'], ['R4', 'R3'], ['R4', 'R5']]}, ['7A00']), ('boundary: reverse-listed conflict granted in reverse', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R3', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R3'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R2'}]}, ['1A01']), ('boundary: two trains for one route', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R3'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R3'}]}, ['1A01']), ('sampled regression 23', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 200, 'eta': 180, 'route': 'R4'}, {'id': '1A01', 'cls': 2, 'sched': 200, 'eta': 220, 'route': 'R2'}, {'id': '5A02', 'cls': 2, 'sched': 120, 'eta': 160, 'route': 'R5'}, {'id': '2A03', 'cls': 2, 'sched': 150, 'eta': 80, 'route': 'R2'}], 'conflicts': [['R1', 'R5'], ['R2', 'R1']]}, ['9A00', '5A02', '2A03']), ('sampled regression 26', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 120, 'eta': 160, 'route': 'R2'}, {'id': '7A01', 'cls': 2, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '2A02', 'cls': 1, 'sched': 150, 'eta': 180, 'route': 'R2'}, {'id': '1A03', 'cls': 3, 'sched': 150, 'eta': 130, 'route': 'R1'}, {'id': '7A04', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R1'}, {'id': '1A05', 'cls': 2, 'sched': 150, 'eta': 400, 'route': 'R3'}], 'conflicts': [['R1', 'R5']]}, ['9A00', '7A04']), ('control 29', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '6A00', 'cls': 2, 'sched': 200, 'eta': 80, 'route': 'R5'}, {'id': '8A01', 'cls': 2, 'sched': 120, 'eta': 220, 'route': 'R1'}, {'id': '6A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '2A03', 'cls': 1, 'sched': 200, 'eta': 400, 'route': 'R3'}], 'conflicts': [['R5', 'R4'], ['R4', 'R3'], ['R2', 'R1'], ['R3', 'R2']]}, ['6A00'])], [('regression: late running train keeps schedule order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 150, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 105, 'route': 'R2'}]}, ['1A01']), ('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 35', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 100, 'eta': 80, 'route': 'R3'}, {'id': '1A01', 'cls': 2, 'sched': 100, 'eta': 100, 'route': 'R4'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R3'}, {'id': '8A03', 'cls': 2, 'sched': 200, 'eta': 100, 'route': 'R3'}, {'id': '8A04', 'cls': 2, 'sched': 120, 'eta': 400, 'route': 'R4'}], 'conflicts': [['R1', 'R2'], ['R2', 'R3'], ['R1', 'R5']]}, ['1A02', '1A01']), ('sampled regression 40', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 120, 'eta': 180, 'route': 'R4'}, {'id': '2A01', 'cls': 1, 'sched': 100, 'eta': 400, 'route': 'R4'}, {'id': '8A02', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R3'}, {'id': '1A03', 'cls': 2, 'sched': 200, 'eta': 100, 'route': 'R3'}, {'id': '8A04', 'cls': 2, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '3A05', 'cls': 3, 'sched': 120, 'eta': 130, 'route': 'R5'}], 'conflicts': [['R1', 'R5'], ['R2', 'R3'], ['R1', 'R2'], ['R3', 'R4']]}, ['8A02', '3A05']), ('boundary: conflict with an earlier grant', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R5']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 110, 'eta': 120, 'route': 'R4'}, {'id': '1A03', 'cls': 1, 'sched': 130, 'eta': 130, 'route': 'R5'}]}, ['1A01', '1A02']), ('sampled regression 34', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 150, 'eta': 160, 'route': 'R5'}, {'id': '6A01', 'cls': 2, 'sched': 200, 'eta': 130, 'route': 'R5'}], 'conflicts': [['R4', 'R3']]}, ['2A00']), ('control 37', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '4A00', 'cls': 3, 'sched': 120, 'eta': 400, 'route': 'R4'}, {'id': '1A01', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R4'}, {'id': '6A02', 'cls': 2, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '3A03', 'cls': 2, 'sched': 150, 'eta': 220, 'route': 'R5'}, {'id': '1A04', 'cls': 3, 'sched': 120, 'eta': 220, 'route': 'R2'}, {'id': '6A05', 'cls': 3, 'sched': 120, 'eta': 180, 'route': 'R1'}], 'conflicts': [['R1', 'R5'], ['R2', 'R1'], ['R3', 'R4']]}, ['1A01']), ('control 43', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '7A00', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R5'}, {'id': '3A01', 'cls': 1, 'sched': 150, 'eta': 180, 'route': 'R2'}], 'conflicts': [['R3', 'R2'], ['R5', 'R4']]}, ['7A00'])], [('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 45', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '6A00', 'cls': 3, 'sched': 150, 'eta': 180, 'route': 'R1'}, {'id': '2A01', 'cls': 3, 'sched': 120, 'eta': 80, 'route': 'R1'}, {'id': '2A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '5A03', 'cls': 1, 'sched': 120, 'eta': 160, 'route': 'R2'}, {'id': '9A04', 'cls': 3, 'sched': 200, 'eta': 130, 'route': 'R1'}, {'id': '5A05', 'cls': 1, 'sched': 120, 'eta': 130, 'route': 'R1'}], 'conflicts': [['R5', 'R4'], ['R3', 'R2'], ['R1', 'R5'], ['R3', 'R4']]}, ['5A03', '5A05']), ('sampled regression 58', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '8A00', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R5'}, {'id': '9A01', 'cls': 3, 'sched': 120, 'eta': 80, 'route': 'R4'}, {'id': '7A02', 'cls': 3, 'sched': 200, 'eta': 180, 'route': 'R1'}, {'id': '8A03', 'cls': 1, 'sched': 120, 'eta': 130, 'route': 'R5'}, {'id': '7A04', 'cls': 2, 'sched': 200, 'eta': 130, 'route': 'R5'}, {'id': '6A05', 'cls': 3, 'sched': 200, 'eta': 180, 'route': 'R1'}], 'conflicts': [['R4', 'R3'], ['R1', 'R2']]}, ['8A03', '9A01', '6A05']), ('boundary: eta exactly at the lookahead', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 160, 'route': 'R1'}]}, ['1A01']), ('boundary: overdue train', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 60, 'eta': 70, 'route': 'R2'}]}, ['2A01']), ('sampled regression 48', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '5A00', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R1'}, {'id': '2A01', 'cls': 3, 'sched': 100, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R4', 'R5'], ['R3', 'R4'], ['R1', 'R2']]}, ['5A00', '2A01']), ('control 51', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '5A00', 'cls': 3, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '6A01', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R2'}, {'id': '3A02', 'cls': 2, 'sched': 120, 'eta': 160, 'route': 'R4'}, {'id': '6A03', 'cls': 2, 'sched': 100, 'eta': 400, 'route': 'R2'}], 'conflicts': [['R3', 'R2'], ['R4', 'R5']]}, ['3A02']), ('sampled regression 54', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '7A00', 'cls': 3, 'sched': 150, 'eta': 100, 'route': 'R2'}, {'id': '5A01', 'cls': 3, 'sched': 150, 'eta': 400, 'route': 'R3'}, {'id': '9A02', 'cls': 1, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '7A03', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R3'}, {'id': '4A04', 'cls': 3, 'sched': 120, 'eta': 180, 'route': 'R3'}], 'conflicts': [['R3', 'R2'], ['R1', 'R5'], ['R4', 'R3']]}, ['9A02', '7A00'])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"b1a56cf5a2079ad44e04eae658ea2002f8c88742c78f7ae6a37fa61c980343eb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    now = x['now']\n    cand = [t for t in x['trains'] if t['eta'] - now <= x['lookahead_s']]\n    cand.sort(key=lambda t: (t['cls'], t['sched'], t['id']))\n    pairs = set()\n    for a, b in x['conflicts']:\n        pairs.add((a, b))\n        pairs.add((b, a))\n    granted = []\n    routes = []\n    for t in cand:\n        if any(t['route'] == r or (t['route'], r) in pairs for r in routes):\n            continue\n        granted.append(t['id'])\n        routes.append(t['route'])\n    return granted\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 4', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 200, 'eta': 220, 'route': 'R3'}, {'id': '8A01', 'cls': 1, 'sched': 100, 'eta': 80, 'route': 'R5'}, {'id': '7A02', 'cls': 3, 'sched': 100, 'eta': 80, 'route': 'R2'}], 'conflicts': [['R1', 'R5'], ['R1', 'R2'], ['R3', 'R2'], ['R4', 'R5']]}, ['8A01', '2A00']), ('sampled regression 3', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '3A00', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R1'}, {'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 160, 'route': 'R4'}, {'id': '6A02', 'cls': 1, 'sched': 120, 'eta': 100, 'route': 'R4'}, {'id': '1A03', 'cls': 3, 'sched': 150, 'eta': 80, 'route': 'R1'}, {'id': '9A04', 'cls': 3, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '7A05', 'cls': 3, 'sched': 120, 'eta': 220, 'route': 'R3'}], 'conflicts': [['R2', 'R1'], ['R1', 'R5'], ['R3', 'R4']]}, ['6A02', '3A00']), ('boundary: eta exactly at the lookahead', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 160, 'route': 'R1'}]}, ['1A01']), ('boundary: overdue train', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 60, 'eta': 70, 'route': 'R2'}]}, ['2A01']), ('control 1', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '6A00', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '7A01', 'cls': 1, 'sched': 120, 'eta': 220, 'route': 'R2'}], 'conflicts': [['R4', 'R3'], ['R2', 'R3'], ['R4', 'R5'], ['R2', 'R1']]}, []), ('control 7', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R5'}, {'id': '9A01', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R1'}], 'conflicts': [['R3', 'R2']]}, ['9A01']), ('sampled regression 10', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '1A00', 'cls': 1, 'sched': 200, 'eta': 220, 'route': 'R1'}, {'id': '6A01', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R5'}, {'id': '7A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R2'}, {'id': '4A03', 'cls': 3, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '1A04', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '8A05', 'cls': 3, 'sched': 150, 'eta': 400, 'route': 'R4'}], 'conflicts': [['R2', 'R1'], ['R3', 'R4'], ['R5', 'R4']]}, ['1A04', '1A00'])], [('regression: late running train keeps schedule order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 150, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 105, 'route': 'R2'}]}, ['1A01']), ('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 15', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 200, 'eta': 180, 'route': 'R5'}, {'id': '6A01', 'cls': 3, 'sched': 150, 'eta': 80, 'route': 'R2'}, {'id': '7A02', 'cls': 3, 'sched': 100, 'eta': 130, 'route': 'R5'}, {'id': '5A03', 'cls': 3, 'sched': 120, 'eta': 160, 'route': 'R1'}], 'conflicts': [['R2', 'R1'], ['R4', 'R5'], ['R1', 'R5']]}, ['7A02', '6A01']), ('sampled regression 18', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '8A01', 'cls': 2, 'sched': 100, 'eta': 80, 'route': 'R3'}], 'conflicts': [['R5', 'R4'], ['R1', 'R2'], ['R4', 'R3']]}, ['9A00']), ('boundary: conflict listed in reverse order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R2'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R1'}]}, ['1A01']), ('control 12', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '8A00', 'cls': 1, 'sched': 100, 'eta': 180, 'route': 'R3'}, {'id': '8A01', 'cls': 2, 'sched': 100, 'eta': 220, 'route': 'R2'}], 'conflicts': [['R3', 'R4']]}, ['8A00', '8A01']), ('control 21', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '8A00', 'cls': 3, 'sched': 150, 'eta': 180, 'route': 'R2'}, {'id': '7A01', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R5'}, {'id': '3A02', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R2'}], 'conflicts': [['R5', 'R1'], ['R4', 'R3'], ['R5', 'R4'], ['R1', 'R2']]}, ['7A01', '3A02']), ('sampled regression 24', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '5A00', 'cls': 3, 'sched': 150, 'eta': 160, 'route': 'R4'}, {'id': '4A01', 'cls': 3, 'sched': 200, 'eta': 400, 'route': 'R5'}, {'id': '8A02', 'cls': 2, 'sched': 100, 'eta': 180, 'route': 'R2'}, {'id': '3A03', 'cls': 1, 'sched': 100, 'eta': 400, 'route': 'R5'}], 'conflicts': [['R2', 'R3'], ['R1', 'R5'], ['R1', 'R2']]}, ['8A02', '5A00'])], [('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 25', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R1'}, {'id': '7A01', 'cls': 1, 'sched': 150, 'eta': 80, 'route': 'R2'}, {'id': '2A02', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R2'}, {'id': '7A03', 'cls': 1, 'sched': 200, 'eta': 400, 'route': 'R2'}, {'id': '1A04', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R2', 'R3'], ['R4', 'R3']]}, ['2A00', '2A02']), ('sampled regression 33', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '7A00', 'cls': 1, 'sched': 200, 'eta': 130, 'route': 'R2'}, {'id': '1A01', 'cls': 2, 'sched': 120, 'eta': 400, 'route': 'R3'}, {'id': '9A02', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R2', 'R3'], ['R4', 'R3'], ['R4', 'R5']]}, ['7A00']), ('boundary: reverse-listed conflict granted in reverse', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R3', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R3'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R2'}]}, ['1A01']), ('boundary: two trains for one route', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R3'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 120, 'route': 'R3'}]}, ['1A01']), ('sampled regression 23', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 200, 'eta': 180, 'route': 'R4'}, {'id': '1A01', 'cls': 2, 'sched': 200, 'eta': 220, 'route': 'R2'}, {'id': '5A02', 'cls': 2, 'sched': 120, 'eta': 160, 'route': 'R5'}, {'id': '2A03', 'cls': 2, 'sched': 150, 'eta': 80, 'route': 'R2'}], 'conflicts': [['R1', 'R5'], ['R2', 'R1']]}, ['9A00', '5A02', '2A03']), ('sampled regression 26', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '9A00', 'cls': 1, 'sched': 120, 'eta': 160, 'route': 'R2'}, {'id': '7A01', 'cls': 2, 'sched': 100, 'eta': 220, 'route': 'R4'}, {'id': '2A02', 'cls': 1, 'sched': 150, 'eta': 180, 'route': 'R2'}, {'id': '1A03', 'cls': 3, 'sched': 150, 'eta': 130, 'route': 'R1'}, {'id': '7A04', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R1'}, {'id': '1A05', 'cls': 2, 'sched': 150, 'eta': 400, 'route': 'R3'}], 'conflicts': [['R1', 'R5']]}, ['9A00', '7A04']), ('control 29', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '6A00', 'cls': 2, 'sched': 200, 'eta': 80, 'route': 'R5'}, {'id': '8A01', 'cls': 2, 'sched': 120, 'eta': 220, 'route': 'R1'}, {'id': '6A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '2A03', 'cls': 1, 'sched': 200, 'eta': 400, 'route': 'R3'}], 'conflicts': [['R5', 'R4'], ['R4', 'R3'], ['R2', 'R1'], ['R3', 'R2']]}, ['6A00'])], [('regression: late running train keeps schedule order', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 150, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 120, 'eta': 105, 'route': 'R2'}]}, ['1A01']), ('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 35', {'now': 100, 'lookahead_s': 120, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 100, 'eta': 80, 'route': 'R3'}, {'id': '1A01', 'cls': 2, 'sched': 100, 'eta': 100, 'route': 'R4'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 160, 'route': 'R3'}, {'id': '8A03', 'cls': 2, 'sched': 200, 'eta': 100, 'route': 'R3'}, {'id': '8A04', 'cls': 2, 'sched': 120, 'eta': 400, 'route': 'R4'}], 'conflicts': [['R1', 'R2'], ['R2', 'R3'], ['R1', 'R5']]}, ['1A02', '1A01']), ('sampled regression 40', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 120, 'eta': 180, 'route': 'R4'}, {'id': '2A01', 'cls': 1, 'sched': 100, 'eta': 400, 'route': 'R4'}, {'id': '8A02', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R3'}, {'id': '1A03', 'cls': 2, 'sched': 200, 'eta': 100, 'route': 'R3'}, {'id': '8A04', 'cls': 2, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '3A05', 'cls': 3, 'sched': 120, 'eta': 130, 'route': 'R5'}], 'conflicts': [['R1', 'R5'], ['R2', 'R3'], ['R1', 'R2'], ['R3', 'R4']]}, ['8A02', '3A05']), ('boundary: conflict with an earlier grant', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R5']], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 110, 'eta': 120, 'route': 'R4'}, {'id': '1A03', 'cls': 1, 'sched': 130, 'eta': 130, 'route': 'R5'}]}, ['1A01', '1A02']), ('sampled regression 34', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '2A00', 'cls': 2, 'sched': 150, 'eta': 160, 'route': 'R5'}, {'id': '6A01', 'cls': 2, 'sched': 200, 'eta': 130, 'route': 'R5'}], 'conflicts': [['R4', 'R3']]}, ['2A00']), ('control 37', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '4A00', 'cls': 3, 'sched': 120, 'eta': 400, 'route': 'R4'}, {'id': '1A01', 'cls': 1, 'sched': 150, 'eta': 100, 'route': 'R4'}, {'id': '6A02', 'cls': 2, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '3A03', 'cls': 2, 'sched': 150, 'eta': 220, 'route': 'R5'}, {'id': '1A04', 'cls': 3, 'sched': 120, 'eta': 220, 'route': 'R2'}, {'id': '6A05', 'cls': 3, 'sched': 120, 'eta': 180, 'route': 'R1'}], 'conflicts': [['R1', 'R5'], ['R2', 'R1'], ['R3', 'R4']]}, ['1A01']), ('control 43', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '7A00', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R5'}, {'id': '3A01', 'cls': 1, 'sched': 150, 'eta': 180, 'route': 'R2'}], 'conflicts': [['R3', 'R2'], ['R5', 'R4']]}, ['7A00'])], [('regression: class beats schedule', {'now': 100, 'lookahead_s': 60, 'conflicts': [['R1', 'R2']], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 100, 'eta': 110, 'route': 'R1'}, {'id': '1A02', 'cls': 1, 'sched': 150, 'eta': 150, 'route': 'R2'}]}, ['1A02']), ('sampled regression 45', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '6A00', 'cls': 3, 'sched': 150, 'eta': 180, 'route': 'R1'}, {'id': '2A01', 'cls': 3, 'sched': 120, 'eta': 80, 'route': 'R1'}, {'id': '2A02', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R1'}, {'id': '5A03', 'cls': 1, 'sched': 120, 'eta': 160, 'route': 'R2'}, {'id': '9A04', 'cls': 3, 'sched': 200, 'eta': 130, 'route': 'R1'}, {'id': '5A05', 'cls': 1, 'sched': 120, 'eta': 130, 'route': 'R1'}], 'conflicts': [['R5', 'R4'], ['R3', 'R2'], ['R1', 'R5'], ['R3', 'R4']]}, ['5A03', '5A05']), ('sampled regression 58', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '8A00', 'cls': 3, 'sched': 100, 'eta': 160, 'route': 'R5'}, {'id': '9A01', 'cls': 3, 'sched': 120, 'eta': 80, 'route': 'R4'}, {'id': '7A02', 'cls': 3, 'sched': 200, 'eta': 180, 'route': 'R1'}, {'id': '8A03', 'cls': 1, 'sched': 120, 'eta': 130, 'route': 'R5'}, {'id': '7A04', 'cls': 2, 'sched': 200, 'eta': 130, 'route': 'R5'}, {'id': '6A05', 'cls': 3, 'sched': 200, 'eta': 180, 'route': 'R1'}], 'conflicts': [['R4', 'R3'], ['R1', 'R2']]}, ['8A03', '9A01', '6A05']), ('boundary: eta exactly at the lookahead', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '1A01', 'cls': 1, 'sched': 100, 'eta': 160, 'route': 'R1'}]}, ['1A01']), ('boundary: overdue train', {'now': 100, 'lookahead_s': 60, 'conflicts': [], 'trains': [{'id': '2A01', 'cls': 2, 'sched': 60, 'eta': 70, 'route': 'R2'}]}, ['2A01']), ('sampled regression 48', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '5A00', 'cls': 2, 'sched': 120, 'eta': 100, 'route': 'R1'}, {'id': '2A01', 'cls': 3, 'sched': 100, 'eta': 100, 'route': 'R3'}], 'conflicts': [['R4', 'R5'], ['R3', 'R4'], ['R1', 'R2']]}, ['5A00', '2A01']), ('control 51', {'now': 100, 'lookahead_s': 80, 'trains': [{'id': '5A00', 'cls': 3, 'sched': 150, 'eta': 220, 'route': 'R4'}, {'id': '6A01', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R2'}, {'id': '3A02', 'cls': 2, 'sched': 120, 'eta': 160, 'route': 'R4'}, {'id': '6A03', 'cls': 2, 'sched': 100, 'eta': 400, 'route': 'R2'}], 'conflicts': [['R3', 'R2'], ['R4', 'R5']]}, ['3A02']), ('sampled regression 54', {'now': 100, 'lookahead_s': 60, 'trains': [{'id': '7A00', 'cls': 3, 'sched': 150, 'eta': 100, 'route': 'R2'}, {'id': '5A01', 'cls': 3, 'sched': 150, 'eta': 400, 'route': 'R3'}, {'id': '9A02', 'cls': 1, 'sched': 100, 'eta': 130, 'route': 'R4'}, {'id': '7A03', 'cls': 1, 'sched': 120, 'eta': 400, 'route': 'R3'}, {'id': '4A04', 'cls': 3, 'sched': 120, 'eta': 180, 'route': 'R3'}], 'conflicts': [['R3', 'R2'], ['R1', 'R5'], ['R4', 'R3']]}, ['9A02', '7A00'])]]\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-automatic-route-setting-arbitration-order","generated_at":"2026-09-29T14:47:51.645372+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.","repair":"Order by class, then scheduled time, then id.","root_cause":"Candidates are ordered by arrival time only.","sha256":"02877dd3dd74fb64cd6a152ab73cdc2491ab60d65820f4f58cdd3ace1cad71c6","title":"Automatic route setting arbitration: arbitration order · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.633,"exit_code":1,"observations":[{"actual":["2A01"],"check":"regression: class beats schedule","expected":["1A02"],"passed":false},{"actual":["8A01","7A02"],"check":"sampled regression 4","expected":["8A01","2A00"],"passed":false},{"actual":["2A01","3A00"],"check":"sampled regression 3","expected":["6A02","3A00"],"passed":false},{"actual":["1A01"],"check":"boundary: eta exactly at the lookahead","expected":["1A01"],"passed":true},{"actual":["2A01"],"check":"boundary: overdue train","expected":["2A01"],"passed":true},{"actual":[],"check":"control 1","expected":[],"passed":true},{"actual":["9A01"],"check":"control 7","expected":["9A01"],"passed":true},{"actual":["4A03","1A00"],"check":"sampled regression 10","expected":["1A04","1A00"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: class beats schedule\", \"actual\": [\"2A01\"], \"expected\": [\"1A02\"], \"passed\": false}, {\"check\": \"sampled regression 4\", \"actual\": [\"8A01\", \"7A02\"], \"expected\": [\"8A01\", \"2A00\"], \"passed\": false}, {\"check\": \"sampled regression 3\", \"actual\": [\"2A01\", \"3A00\"], \"expected\": [\"6A02\", \"3A00\"], \"passed\": false}, {\"check\": \"boundary: eta exactly at the lookahead\", \"actual\": [\"1A01\"], \"expected\": [\"1A01\"], \"passed\": true}, {\"check\": \"boundary: overdue train\", \"actual\": [\"2A01\"], \"expected\": [\"2A01\"], \"passed\": true}, {\"check\": \"control 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [\"9A01\"], \"expected\": [\"9A01\"], \"passed\": true}, {\"check\": \"sampled regression 10\", \"actual\": [\"4A03\", \"1A00\"], \"expected\": [\"1A04\", \"1A00\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.859,"exit_code":1,"observations":[{"actual":["2A01"],"check":"regression: class beats schedule","expected":["1A02"],"passed":false},{"actual":["7A02","8A01"],"check":"sampled regression 4","expected":["8A01","2A00"],"passed":false},{"actual":["1A03","6A02"],"check":"sampled regression 3","expected":["6A02","3A00"],"passed":false},{"actual":["1A01"],"check":"boundary: eta exactly at the lookahead","expected":["1A01"],"passed":true},{"actual":["2A01"],"check":"boundary: overdue train","expected":["2A01"],"passed":true},{"actual":[],"check":"control 1","expected":[],"passed":true},{"actual":["9A01"],"check":"control 7","expected":["9A01"],"passed":true},{"actual":["6A01","1A00"],"check":"sampled regression 10","expected":["1A04","1A00"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: class beats schedule\", \"actual\": [\"2A01\"], \"expected\": [\"1A02\"], \"passed\": false}, {\"check\": \"sampled regression 4\", \"actual\": [\"7A02\", \"8A01\"], \"expected\": [\"8A01\", \"2A00\"], \"passed\": false}, {\"check\": \"sampled regression 3\", \"actual\": [\"1A03\", \"6A02\"], \"expected\": [\"6A02\", \"3A00\"], \"passed\": false}, {\"check\": \"boundary: eta exactly at the lookahead\", \"actual\": [\"1A01\"], \"expected\": [\"1A01\"], \"passed\": true}, {\"check\": \"boundary: overdue train\", \"actual\": [\"2A01\"], \"expected\": [\"2A01\"], \"passed\": true}, {\"check\": \"control 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [\"9A01\"], \"expected\": [\"9A01\"], \"passed\": true}, {\"check\": \"sampled regression 10\", \"actual\": [\"6A01\", \"1A00\"], \"expected\": [\"1A04\", \"1A00\"], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.228,"exit_code":0,"observations":[{"actual":["1A02"],"check":"regression: class beats schedule","expected":["1A02"],"passed":true},{"actual":["8A01","2A00"],"check":"sampled regression 4","expected":["8A01","2A00"],"passed":true},{"actual":["6A02","3A00"],"check":"sampled regression 3","expected":["6A02","3A00"],"passed":true},{"actual":["1A01"],"check":"boundary: eta exactly at the lookahead","expected":["1A01"],"passed":true},{"actual":["2A01"],"check":"boundary: overdue train","expected":["2A01"],"passed":true},{"actual":[],"check":"control 1","expected":[],"passed":true},{"actual":["9A01"],"check":"control 7","expected":["9A01"],"passed":true},{"actual":["1A04","1A00"],"check":"sampled regression 10","expected":["1A04","1A00"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: class beats schedule\", \"actual\": [\"1A02\"], \"expected\": [\"1A02\"], \"passed\": true}, {\"check\": \"sampled regression 4\", \"actual\": [\"8A01\", \"2A00\"], \"expected\": [\"8A01\", \"2A00\"], \"passed\": true}, {\"check\": \"sampled regression 3\", \"actual\": [\"6A02\", \"3A00\"], \"expected\": [\"6A02\", \"3A00\"], \"passed\": true}, {\"check\": \"boundary: eta exactly at the lookahead\", \"actual\": [\"1A01\"], \"expected\": [\"1A01\"], \"passed\": true}, {\"check\": \"boundary: overdue train\", \"actual\": [\"2A01\"], \"expected\": [\"2A01\"], \"passed\": true}, {\"check\": \"control 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [\"9A01\"], \"expected\": [\"9A01\"], \"passed\": true}, {\"check\": \"sampled regression 10\", \"actual\": [\"1A04\", \"1A00\"], \"expected\": [\"1A04\", \"1A00\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}