{"abstract":"Roundabout instructions count entrances as exits in the controlled route-policy fixture.","category":"Navigation route constraints","checks":7,"contract":"Arms are ordered after entry as (ID, may_exit, public). Return one-based legal-exit ordinal for a legal selected arm, or None for an absent or forbidden arm.","contract_signature":"arms, selected","evaluation_group":"model-5b29d94ceda364e6","failed_approach":"Counting only public exits omits legal private exits explicitly permitted in the modeled route.","family":"z-navigation_routes-roundabout-exits","id":"FA-12216","implementations":{"attempt":{"sha256":"420ca4168ef759cacd6fe09101cdfab7b619acbcc70dae435bf2a274b6f20805","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(arms, selected):\n    count = 0\n    for name,allowed,public in arms:\n        count += bool(allowed and public)\n        if name == selected:\n            return count if allowed and public else None\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\na,b,c,d = N,N+10,N+20,N+30\narms = [(a,False,True),(b,True,True),(c,True,False),(d,True,True)]\ncheck('entrance excluded', solve(arms,b), 1)\ncheck('private legal exit counted', solve(arms,c), 2)\ncheck('later exit ordinal', solve(arms,d), 3)\ncheck('forbidden selected arm', solve(arms,a), None)\ncheck('unknown arm', solve(arms,N+40), None)\ncheck('empty roundabout', solve([],a), None)\ncheck('first arm legal', solve([(a,True,True)],a), 1)\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":"7d5d434c74494f5369074f170bc25edae827d5681d8a77c48f9aa8d766e972be","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(arms, selected):\n    for i,(name,allowed,public) in enumerate(arms):\n        if name == selected:\n            return i+1\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\na,b,c,d = N,N+10,N+20,N+30\narms = [(a,False,True),(b,True,True),(c,True,False),(d,True,True)]\ncheck('entrance excluded', solve(arms,b), 1)\ncheck('private legal exit counted', solve(arms,c), 2)\ncheck('later exit ordinal', solve(arms,d), 3)\ncheck('forbidden selected arm', solve(arms,a), None)\ncheck('unknown arm', solve(arms,N+40), None)\ncheck('empty roundabout', solve([],a), None)\ncheck('first arm legal', solve([(a,True,True)],a), 1)\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":"Simplified deterministic offline policy model; not a production router or authoritative road guidance. 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":"z-navigation_routes-roundabout-exits","generated_at":"2026-09-29T14:38:54.922605+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Navigation policies depend on road context that a shortest-path cost alone does not encode.","root_cause":"Every encountered arm increments the exit ordinal, including arms that cannot be legally exited.","sha256":"aee9c945267f1261fc4fdbc7405547aae8de0a1d62574614baa6e28084765b6d","title":"Roundabout instructions count entrances as exits · 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":39.564,"exit_code":1,"observations":[{"actual":1,"check":"entrance excluded","expected":1,"passed":true},{"actual":null,"check":"private legal exit counted","expected":2,"passed":false},{"actual":2,"check":"later exit ordinal","expected":3,"passed":false},{"actual":null,"check":"forbidden selected arm","expected":null,"passed":true},{"actual":null,"check":"unknown arm","expected":null,"passed":true},{"actual":null,"check":"empty roundabout","expected":null,"passed":true},{"actual":1,"check":"first arm legal","expected":1,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"entrance excluded\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"private legal exit counted\", \"actual\": null, \"expected\": 2, \"passed\": false}, {\"check\": \"later exit ordinal\", \"actual\": 2, \"expected\": 3, \"passed\": false}, {\"check\": \"forbidden selected arm\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"unknown arm\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"empty roundabout\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"first arm legal\", \"actual\": 1, \"expected\": 1, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.891,"exit_code":1,"observations":[{"actual":2,"check":"entrance excluded","expected":1,"passed":false},{"actual":3,"check":"private legal exit counted","expected":2,"passed":false},{"actual":4,"check":"later exit ordinal","expected":3,"passed":false},{"actual":1,"check":"forbidden selected arm","expected":null,"passed":false},{"actual":null,"check":"unknown arm","expected":null,"passed":true},{"actual":null,"check":"empty roundabout","expected":null,"passed":true},{"actual":1,"check":"first arm legal","expected":1,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"entrance excluded\", \"actual\": 2, \"expected\": 1, \"passed\": false}, {\"check\": \"private legal exit counted\", \"actual\": 3, \"expected\": 2, \"passed\": false}, {\"check\": \"later exit ordinal\", \"actual\": 4, \"expected\": 3, \"passed\": false}, {\"check\": \"forbidden selected arm\", \"actual\": 1, \"expected\": null, \"passed\": false}, {\"check\": \"unknown arm\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"empty roundabout\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"first arm legal\", \"actual\": 1, \"expected\": 1, \"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."}}