{"abstract":"A point detected exactly at the deadline is declared failed.","category":"Railway interlocking logic","checks":8,"contract":"A point command is answered as in-position when already detected in the commanded lie (even if locked or occupied). Otherwise route locking refuses (route-locked), then track locking refuses (track-locked); the alarm flag on refusals is raised only when the point has lost detection (X). A throw that fails to regain detection within limit_ms (inclusive; None means never) leaves the point X with alarm; otherwise it lies in the commanded position. detected_ms of 0 means detection was immediate.","evaluation_group":"w2-railway_interlocking_logic-point-machine-throw","failed_approach":"Comparing whole seconds accepts late detections within the same second.","family":"w2-railway_interlocking_logic-point-machine-throw-detection-deadline-boundary","id":"FA-66896","implementations":{"attempt":{"sha256":"4145be87f50de08d9059b1d3e9dd68442b9bf0e848a6c0351729aef6e409a5d8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    pos, cmd = x['pos'], x['cmd']\n    if pos == cmd:\n        return {'pos': pos, 'result': 'in-position', 'alarm': False}\n    if x['route_locked']:\n        return {'pos': pos, 'result': 'route-locked', 'alarm': pos == 'X'}\n    if x['occupied']:\n        return {'pos': pos, 'result': 'track-locked', 'alarm': pos == 'X'}\n    det = x['detected_ms']\n    if det is None or det // 1000 > x['limit_ms'] // 1000:\n        return {'pos': 'X', 'result': 'no-detection', 'alarm': True}\n    return {'pos': cmd, 'result': 'moved', 'alarm': False}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 59', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 33', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: never detected', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': None}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 1', {'pos': 'X', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 3000, 'detected_ms': 4500}, {'pos': 'X', 'result': 'route-locked', 'alarm': True}), ('control 4', {'pos': 'N', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 6000}, {'pos': 'N', 'result': 'in-position', 'alarm': False}), ('control 7', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'in-position', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 43', {'pos': 'X', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4500}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: never detected', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': None}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: immediate detection', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 0}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 12', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 15', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 18', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 6000, 'detected_ms': None}, {'pos': 'N', 'result': 'route-locked', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 41', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 48', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: already reverse while route locked', {'pos': 'R', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'R', 'result': 'in-position', 'alarm': False}), ('sampled regression 23', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 26', {'pos': 'N', 'cmd': 'N', 'route_locked': False, 'occupied': True, 'limit_ms': 4000, 'detected_ms': 1500}, {'pos': 'N', 'result': 'in-position', 'alarm': False}), ('control 29', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': None}, {'pos': 'R', 'result': 'in-position', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 68', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: out of correspondence and locked', {'pos': 'X', 'cmd': 'N', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'X', 'result': 'route-locked', 'alarm': True}), ('boundary: normal point locked by a route', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 34', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 0}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 37', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'in-position', 'alarm': False}), ('control 40', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 7000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 23', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 33', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: failed throw from normal', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 9000}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 45', {'pos': 'X', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2999}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 48', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 51', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 0}, {'pos': 'R', 'result': 'moved', 'alarm': False})]]\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":"ab0211c5ab690a46e43a0136fe6473bea09d42099111eb4be6b66fb3ec02fc32","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    pos, cmd = x['pos'], x['cmd']\n    if pos == cmd:\n        return {'pos': pos, 'result': 'in-position', 'alarm': False}\n    if x['route_locked']:\n        return {'pos': pos, 'result': 'route-locked', 'alarm': pos == 'X'}\n    if x['occupied']:\n        return {'pos': pos, 'result': 'track-locked', 'alarm': pos == 'X'}\n    det = x['detected_ms']\n    if det is None or det >= x['limit_ms']:\n        return {'pos': 'X', 'result': 'no-detection', 'alarm': True}\n    return {'pos': cmd, 'result': 'moved', 'alarm': False}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 59', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 33', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: never detected', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': None}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 1', {'pos': 'X', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 3000, 'detected_ms': 4500}, {'pos': 'X', 'result': 'route-locked', 'alarm': True}), ('control 4', {'pos': 'N', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 6000}, {'pos': 'N', 'result': 'in-position', 'alarm': False}), ('control 7', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'in-position', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 43', {'pos': 'X', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4500}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: never detected', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': None}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: immediate detection', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 0}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 12', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 15', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 18', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 6000, 'detected_ms': None}, {'pos': 'N', 'result': 'route-locked', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 41', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 48', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: already reverse while route locked', {'pos': 'R', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'R', 'result': 'in-position', 'alarm': False}), ('sampled regression 23', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 26', {'pos': 'N', 'cmd': 'N', 'route_locked': False, 'occupied': True, 'limit_ms': 4000, 'detected_ms': 1500}, {'pos': 'N', 'result': 'in-position', 'alarm': False}), ('control 29', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': None}, {'pos': 'R', 'result': 'in-position', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 68', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: out of correspondence and locked', {'pos': 'X', 'cmd': 'N', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'X', 'result': 'route-locked', 'alarm': True}), ('boundary: normal point locked by a route', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 34', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 0}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 37', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'in-position', 'alarm': False}), ('control 40', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 7000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 23', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 33', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: failed throw from normal', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 9000}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 45', {'pos': 'X', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2999}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 48', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 51', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 0}, {'pos': 'R', 'result': 'moved', 'alarm': False})]]\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":"576c35185147be092a1074fb9c731d571b6592a829c61462d9b87cfb53d6ffd2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    pos, cmd = x['pos'], x['cmd']\n    if pos == cmd:\n        return {'pos': pos, 'result': 'in-position', 'alarm': False}\n    if x['route_locked']:\n        return {'pos': pos, 'result': 'route-locked', 'alarm': pos == 'X'}\n    if x['occupied']:\n        return {'pos': pos, 'result': 'track-locked', 'alarm': pos == 'X'}\n    det = x['detected_ms']\n    if det is None or det > x['limit_ms']:\n        return {'pos': 'X', 'result': 'no-detection', 'alarm': True}\n    return {'pos': cmd, 'result': 'moved', 'alarm': False}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 59', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 33', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: never detected', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': None}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 1', {'pos': 'X', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 3000, 'detected_ms': 4500}, {'pos': 'X', 'result': 'route-locked', 'alarm': True}), ('control 4', {'pos': 'N', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 6000}, {'pos': 'N', 'result': 'in-position', 'alarm': False}), ('control 7', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'in-position', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 43', {'pos': 'X', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4500}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: never detected', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': None}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: immediate detection', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 0}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 12', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 15', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': True, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 18', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 6000, 'detected_ms': None}, {'pos': 'N', 'result': 'route-locked', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 41', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 48', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: already reverse while route locked', {'pos': 'R', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'R', 'result': 'in-position', 'alarm': False}), ('sampled regression 23', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 26', {'pos': 'N', 'cmd': 'N', 'route_locked': False, 'occupied': True, 'limit_ms': 4000, 'detected_ms': 1500}, {'pos': 'N', 'result': 'in-position', 'alarm': False}), ('control 29', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': None}, {'pos': 'R', 'result': 'in-position', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 68', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: out of correspondence and locked', {'pos': 'X', 'cmd': 'N', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'X', 'result': 'route-locked', 'alarm': True}), ('boundary: normal point locked by a route', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False}), ('control 34', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 0}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 37', {'pos': 'R', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'in-position', 'alarm': False}), ('control 40', {'pos': 'N', 'cmd': 'R', 'route_locked': True, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 7000}, {'pos': 'N', 'result': 'route-locked', 'alarm': False})], [('regression: detection exactly at the limit', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('boundary: detection one ms late', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 4001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('sampled regression 23', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 6000, 'detected_ms': 6000}, {'pos': 'R', 'result': 'moved', 'alarm': False}), ('control 33', {'pos': 'R', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3999}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('boundary: failed throw from normal', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 9000}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 45', {'pos': 'X', 'cmd': 'N', 'route_locked': False, 'occupied': False, 'limit_ms': 4000, 'detected_ms': 2999}, {'pos': 'N', 'result': 'moved', 'alarm': False}), ('control 48', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 3001}, {'pos': 'X', 'result': 'no-detection', 'alarm': True}), ('control 51', {'pos': 'N', 'cmd': 'R', 'route_locked': False, 'occupied': False, 'limit_ms': 3000, 'detected_ms': 0}, {'pos': 'R', 'result': 'moved', 'alarm': False})]]\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-point-machine-throw-detection-deadline-boundary","generated_at":"2026-09-29T14:47:47.938255+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":"Fail only when detection arrives strictly after limit_ms.","root_cause":"The deadline comparison is exclusive, contradicting the inclusive limit.","sha256":"6034a4280f624ef184f5f20c2067fa5a73d08dcb28a8038026b352d01d28e7a8","title":"Point machine throw control: detection deadline boundary · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.24,"exit_code":1,"observations":[{"actual":{"alarm":false,"pos":"R","result":"moved"},"check":"regression: detection exactly at the limit","expected":{"alarm":false,"pos":"R","result":"moved"},"passed":true},{"actual":{"alarm":false,"pos":"R","result":"moved"},"check":"boundary: detection one ms late","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":false},{"actual":{"alarm":false,"pos":"R","result":"moved"},"check":"sampled regression 59","expected":{"alarm":false,"pos":"R","result":"moved"},"passed":true},{"actual":{"alarm":false,"pos":"N","result":"moved"},"check":"control 33","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":false},{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"boundary: never detected","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":true},{"actual":{"alarm":true,"pos":"X","result":"route-locked"},"check":"control 1","expected":{"alarm":true,"pos":"X","result":"route-locked"},"passed":true},{"actual":{"alarm":false,"pos":"N","result":"in-position"},"check":"control 4","expected":{"alarm":false,"pos":"N","result":"in-position"},"passed":true},{"actual":{"alarm":false,"pos":"R","result":"in-position"},"check":"control 7","expected":{"alarm":false,"pos":"R","result":"in-position"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: detection exactly at the limit\", \"actual\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"expected\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"passed\": true}, {\"check\": \"boundary: detection one ms late\", \"actual\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": false}, {\"check\": \"sampled regression 59\", \"actual\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"expected\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"passed\": true}, {\"check\": \"control 33\", \"actual\": {\"pos\": \"N\", \"result\": \"moved\", \"alarm\": false}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": false}, {\"check\": \"boundary: never detected\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"pos\": \"X\", \"result\": \"route-locked\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"route-locked\", \"alarm\": true}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"pos\": \"N\", \"result\": \"in-position\", \"alarm\": false}, \"expected\": {\"pos\": \"N\", \"result\": \"in-position\", \"alarm\": false}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"pos\": \"R\", \"result\": \"in-position\", \"alarm\": false}, \"expected\": {\"pos\": \"R\", \"result\": \"in-position\", \"alarm\": false}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":36.898,"exit_code":1,"observations":[{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"regression: detection exactly at the limit","expected":{"alarm":false,"pos":"R","result":"moved"},"passed":false},{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"boundary: detection one ms late","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":true},{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"sampled regression 59","expected":{"alarm":false,"pos":"R","result":"moved"},"passed":false},{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"control 33","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":true},{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"boundary: never detected","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":true},{"actual":{"alarm":true,"pos":"X","result":"route-locked"},"check":"control 1","expected":{"alarm":true,"pos":"X","result":"route-locked"},"passed":true},{"actual":{"alarm":false,"pos":"N","result":"in-position"},"check":"control 4","expected":{"alarm":false,"pos":"N","result":"in-position"},"passed":true},{"actual":{"alarm":false,"pos":"R","result":"in-position"},"check":"control 7","expected":{"alarm":false,"pos":"R","result":"in-position"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: detection exactly at the limit\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"passed\": false}, {\"check\": \"boundary: detection one ms late\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": true}, {\"check\": \"sampled regression 59\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"passed\": false}, {\"check\": \"control 33\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": true}, {\"check\": \"boundary: never detected\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"pos\": \"X\", \"result\": \"route-locked\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"route-locked\", \"alarm\": true}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"pos\": \"N\", \"result\": \"in-position\", \"alarm\": false}, \"expected\": {\"pos\": \"N\", \"result\": \"in-position\", \"alarm\": false}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"pos\": \"R\", \"result\": \"in-position\", \"alarm\": false}, \"expected\": {\"pos\": \"R\", \"result\": \"in-position\", \"alarm\": false}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":37.117,"exit_code":0,"observations":[{"actual":{"alarm":false,"pos":"R","result":"moved"},"check":"regression: detection exactly at the limit","expected":{"alarm":false,"pos":"R","result":"moved"},"passed":true},{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"boundary: detection one ms late","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":true},{"actual":{"alarm":false,"pos":"R","result":"moved"},"check":"sampled regression 59","expected":{"alarm":false,"pos":"R","result":"moved"},"passed":true},{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"control 33","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":true},{"actual":{"alarm":true,"pos":"X","result":"no-detection"},"check":"boundary: never detected","expected":{"alarm":true,"pos":"X","result":"no-detection"},"passed":true},{"actual":{"alarm":true,"pos":"X","result":"route-locked"},"check":"control 1","expected":{"alarm":true,"pos":"X","result":"route-locked"},"passed":true},{"actual":{"alarm":false,"pos":"N","result":"in-position"},"check":"control 4","expected":{"alarm":false,"pos":"N","result":"in-position"},"passed":true},{"actual":{"alarm":false,"pos":"R","result":"in-position"},"check":"control 7","expected":{"alarm":false,"pos":"R","result":"in-position"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: detection exactly at the limit\", \"actual\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"expected\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"passed\": true}, {\"check\": \"boundary: detection one ms late\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": true}, {\"check\": \"sampled regression 59\", \"actual\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"expected\": {\"pos\": \"R\", \"result\": \"moved\", \"alarm\": false}, \"passed\": true}, {\"check\": \"control 33\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": true}, {\"check\": \"boundary: never detected\", \"actual\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"no-detection\", \"alarm\": true}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"pos\": \"X\", \"result\": \"route-locked\", \"alarm\": true}, \"expected\": {\"pos\": \"X\", \"result\": \"route-locked\", \"alarm\": true}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"pos\": \"N\", \"result\": \"in-position\", \"alarm\": false}, \"expected\": {\"pos\": \"N\", \"result\": \"in-position\", \"alarm\": false}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"pos\": \"R\", \"result\": \"in-position\", \"alarm\": false}, \"expected\": {\"pos\": \"R\", \"result\": \"in-position\", \"alarm\": false}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}