{"abstract":"Departure v-infinity is understated by sqrt(2).","category":"Orbital propagation","checks":7,"contract":"Input [r, v, mu, tol]. eps=v^2/2-mu/r. Parabolic when |eps|<=tol*mu/r, else elliptic (eps<0) or hyperbolic. a=-mu/(2 eps) (None if parabolic), escape speed sqrt(2mu/r), v_inf=sqrt(2 eps) for hyperbolic else None. Return [kind, a rounded 3, vesc rounded 6, vinf rounded 6].","contract_signature":"x","evaluation_group":"w2-orbital_propagation-energy_class","failed_approach":"Computing sqrt(2|eps|) for every orbit gives bound orbits a v-infinity.","family":"w2-orbital_propagation-energy_class-excess-speed","id":"FA-69676","implementations":{"attempt":{"sha256":"5237a4723db633fabac92aa6aa395aaf91b3ae9fc38eabde3cd40aed91e8c2bd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    r,v,mu,tol=x\n    eps=v*v/2-mu/r\n    if abs(eps)<=tol*mu/r: kind='parabolic'\n    elif eps<0: kind='elliptic'\n    else: kind='hyperbolic'\n    a=None if kind=='parabolic' else round(-mu/(2*eps),3)\n    vesc=math.sqrt(2*mu/r)\n    vinf=round(math.sqrt(2*abs(eps)),6)\n    return [kind,a,round(vesc,6),vinf]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]', [7000.0, 10.8, 398600.4418, 1e-06], ['hyperbolic', -144726.71, 10.671731, 1.659566]), ('orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]', [7000.0, 7.5, 398600.4418, 1e-06], ['elliptic', 6915.843, 10.671731, None]), ('orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]', [7000.0, 10.67, 398600.4418, 1e-06], ['elliptic', 10790332.769, 10.671731, None]), ('orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]', [7000.0, 10.6713, 398600.4418, 0.0001], ['parabolic', None, 10.671731, None]), ('orbit energy classification [1.0, 1.4142, 1.0, 0.001]', [1.0, 1.4142, 1.0, 0.001], ['parabolic', None, 1.414214, None]), ('orbit energy classification [1.0, 1.0, 1.0, 0.001]', [1.0, 1.0, 1.0, 0.001], ['elliptic', 1.0, 1.414214, None]), ('orbit energy classification [1.0, 2.0, 1.0, 0.001]', [1.0, 2.0, 1.0, 0.001], ['hyperbolic', -0.5, 1.414214, 1.414214])], [('orbit energy classification [1.0, 2.0, 1.0, 0.001]', [1.0, 2.0, 1.0, 0.001], ['hyperbolic', -0.5, 1.414214, 1.414214]), ('orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]', [7000.0, 10.67, 398600.4418, 1e-06], ['elliptic', 10790332.769, 10.671731, None]), ('orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]', [7000.0, 10.6713, 398600.4418, 0.0001], ['parabolic', None, 10.671731, None]), ('orbit energy classification [1.0, 1.4142, 1.0, 0.001]', [1.0, 1.4142, 1.0, 0.001], ['parabolic', None, 1.414214, None]), ('orbit energy classification [1.0, 1.0, 1.0, 0.001]', [1.0, 1.0, 1.0, 0.001], ['elliptic', 1.0, 1.414214, None]), ('orbit energy classification [42164.0, 3.07, 398600.4418, 1e-06]', [42164.0, 3.07, 398600.4418, 1e-06], ['elliptic', 42036.503, 4.348235, None]), ('orbit energy classification [6678.0, 11.5, 398600.4418, 1e-06]', [6678.0, 11.5, 398600.4418, 1e-06], ['hyperbolic', -30964.528, 10.925987, 3.58787])], [('orbit energy classification [6678.0, 11.5, 398600.4418, 1e-06]', [6678.0, 11.5, 398600.4418, 1e-06], ['hyperbolic', -30964.528, 10.925987, 3.58787]), ('orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]', [7000.0, 10.6713, 398600.4418, 0.0001], ['parabolic', None, 10.671731, None]), ('orbit energy classification [1.0, 2.0, 1.0, 0.001]', [1.0, 2.0, 1.0, 0.001], ['hyperbolic', -0.5, 1.414214, 1.414214]), ('orbit energy classification [42164.0, 3.07, 398600.4418, 1e-06]', [42164.0, 3.07, 398600.4418, 1e-06], ['elliptic', 42036.503, 4.348235, None]), ('orbit energy classification [2.0, 1.0, 1.0, 0.0001]', [2.0, 1.0, 1.0, 0.0001], ['parabolic', None, 1.0, None]), ('orbit energy classification [100.0, 0.1414, 1.0, 0.001]', [100.0, 0.1414, 1.0, 0.001], ['parabolic', None, 0.141421, None]), ('orbit energy classification [1.0, 1.05, 1.0, 0.5]', [1.0, 1.05, 1.0, 0.5], ['parabolic', None, 1.414214, None])], [('orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]', [7000.0, 10.8, 398600.4418, 1e-06], ['hyperbolic', -144726.71, 10.671731, 1.659566]), ('orbit energy classification [1.0, 1.4142, 1.0, 0.001]', [1.0, 1.4142, 1.0, 0.001], ['parabolic', None, 1.414214, None]), ('orbit energy classification [2.0, 1.0, 1.0, 0.0001]', [2.0, 1.0, 1.0, 0.0001], ['parabolic', None, 1.0, None]), ('orbit energy classification [100.0, 0.1414, 1.0, 0.001]', [100.0, 0.1414, 1.0, 0.001], ['parabolic', None, 0.141421, None]), ('orbit energy classification [1.0, 1.05, 1.0, 0.5]', [1.0, 1.05, 1.0, 0.5], ['parabolic', None, 1.414214, None]), ('orbit energy classification [2.0, 0.8, 1.0, 0.5]', [2.0, 0.8, 1.0, 0.5], ['parabolic', None, 1.0, None]), ('orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]', [7000.0, 7.5, 398600.4418, 1e-06], ['elliptic', 6915.843, 10.671731, None])], [('orbit energy classification [1.0, 2.0, 1.0, 0.001]', [1.0, 2.0, 1.0, 0.001], ['hyperbolic', -0.5, 1.414214, 1.414214]), ('orbit energy classification [1.0, 1.0, 1.0, 0.001]', [1.0, 1.0, 1.0, 0.001], ['elliptic', 1.0, 1.414214, None]), ('orbit energy classification [2.0, 0.8, 1.0, 0.5]', [2.0, 0.8, 1.0, 0.5], ['parabolic', None, 1.0, None]), ('orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]', [7000.0, 7.5, 398600.4418, 1e-06], ['elliptic', 6915.843, 10.671731, None]), ('orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]', [7000.0, 10.8, 398600.4418, 1e-06], ['hyperbolic', -144726.71, 10.671731, 1.659566]), ('orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]', [7000.0, 10.67, 398600.4418, 1e-06], ['elliptic', 10790332.769, 10.671731, None]), ('orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]', [7000.0, 10.6713, 398600.4418, 0.0001], ['parabolic', None, 10.671731, None])]]\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":"bc6ae2667254b8b14d772cddbf05b392402d529c9d1917dd69e86ec9b4461a06","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    r,v,mu,tol=x\n    eps=v*v/2-mu/r\n    if abs(eps)<=tol*mu/r: kind='parabolic'\n    elif eps<0: kind='elliptic'\n    else: kind='hyperbolic'\n    a=None if kind=='parabolic' else round(-mu/(2*eps),3)\n    vesc=math.sqrt(2*mu/r)\n    vinf=round(math.sqrt(eps),6) if kind=='hyperbolic' else None\n    return [kind,a,round(vesc,6),vinf]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]', [7000.0, 10.8, 398600.4418, 1e-06], ['hyperbolic', -144726.71, 10.671731, 1.659566]), ('orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]', [7000.0, 7.5, 398600.4418, 1e-06], ['elliptic', 6915.843, 10.671731, None]), ('orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]', [7000.0, 10.67, 398600.4418, 1e-06], ['elliptic', 10790332.769, 10.671731, None]), ('orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]', [7000.0, 10.6713, 398600.4418, 0.0001], ['parabolic', None, 10.671731, None]), ('orbit energy classification [1.0, 1.4142, 1.0, 0.001]', [1.0, 1.4142, 1.0, 0.001], ['parabolic', None, 1.414214, None]), ('orbit energy classification [1.0, 1.0, 1.0, 0.001]', [1.0, 1.0, 1.0, 0.001], ['elliptic', 1.0, 1.414214, None]), ('orbit energy classification [1.0, 2.0, 1.0, 0.001]', [1.0, 2.0, 1.0, 0.001], ['hyperbolic', -0.5, 1.414214, 1.414214])], [('orbit energy classification [1.0, 2.0, 1.0, 0.001]', [1.0, 2.0, 1.0, 0.001], ['hyperbolic', -0.5, 1.414214, 1.414214]), ('orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]', [7000.0, 10.67, 398600.4418, 1e-06], ['elliptic', 10790332.769, 10.671731, None]), ('orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]', [7000.0, 10.6713, 398600.4418, 0.0001], ['parabolic', None, 10.671731, None]), ('orbit energy classification [1.0, 1.4142, 1.0, 0.001]', [1.0, 1.4142, 1.0, 0.001], ['parabolic', None, 1.414214, None]), ('orbit energy classification [1.0, 1.0, 1.0, 0.001]', [1.0, 1.0, 1.0, 0.001], ['elliptic', 1.0, 1.414214, None]), ('orbit energy classification [42164.0, 3.07, 398600.4418, 1e-06]', [42164.0, 3.07, 398600.4418, 1e-06], ['elliptic', 42036.503, 4.348235, None]), ('orbit energy classification [6678.0, 11.5, 398600.4418, 1e-06]', [6678.0, 11.5, 398600.4418, 1e-06], ['hyperbolic', -30964.528, 10.925987, 3.58787])], [('orbit energy classification [6678.0, 11.5, 398600.4418, 1e-06]', [6678.0, 11.5, 398600.4418, 1e-06], ['hyperbolic', -30964.528, 10.925987, 3.58787]), ('orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]', [7000.0, 10.6713, 398600.4418, 0.0001], ['parabolic', None, 10.671731, None]), ('orbit energy classification [1.0, 2.0, 1.0, 0.001]', [1.0, 2.0, 1.0, 0.001], ['hyperbolic', -0.5, 1.414214, 1.414214]), ('orbit energy classification [42164.0, 3.07, 398600.4418, 1e-06]', [42164.0, 3.07, 398600.4418, 1e-06], ['elliptic', 42036.503, 4.348235, None]), ('orbit energy classification [2.0, 1.0, 1.0, 0.0001]', [2.0, 1.0, 1.0, 0.0001], ['parabolic', None, 1.0, None]), ('orbit energy classification [100.0, 0.1414, 1.0, 0.001]', [100.0, 0.1414, 1.0, 0.001], ['parabolic', None, 0.141421, None]), ('orbit energy classification [1.0, 1.05, 1.0, 0.5]', [1.0, 1.05, 1.0, 0.5], ['parabolic', None, 1.414214, None])], [('orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]', [7000.0, 10.8, 398600.4418, 1e-06], ['hyperbolic', -144726.71, 10.671731, 1.659566]), ('orbit energy classification [1.0, 1.4142, 1.0, 0.001]', [1.0, 1.4142, 1.0, 0.001], ['parabolic', None, 1.414214, None]), ('orbit energy classification [2.0, 1.0, 1.0, 0.0001]', [2.0, 1.0, 1.0, 0.0001], ['parabolic', None, 1.0, None]), ('orbit energy classification [100.0, 0.1414, 1.0, 0.001]', [100.0, 0.1414, 1.0, 0.001], ['parabolic', None, 0.141421, None]), ('orbit energy classification [1.0, 1.05, 1.0, 0.5]', [1.0, 1.05, 1.0, 0.5], ['parabolic', None, 1.414214, None]), ('orbit energy classification [2.0, 0.8, 1.0, 0.5]', [2.0, 0.8, 1.0, 0.5], ['parabolic', None, 1.0, None]), ('orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]', [7000.0, 7.5, 398600.4418, 1e-06], ['elliptic', 6915.843, 10.671731, None])], [('orbit energy classification [1.0, 2.0, 1.0, 0.001]', [1.0, 2.0, 1.0, 0.001], ['hyperbolic', -0.5, 1.414214, 1.414214]), ('orbit energy classification [1.0, 1.0, 1.0, 0.001]', [1.0, 1.0, 1.0, 0.001], ['elliptic', 1.0, 1.414214, None]), ('orbit energy classification [2.0, 0.8, 1.0, 0.5]', [2.0, 0.8, 1.0, 0.5], ['parabolic', None, 1.0, None]), ('orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]', [7000.0, 7.5, 398600.4418, 1e-06], ['elliptic', 6915.843, 10.671731, None]), ('orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]', [7000.0, 10.8, 398600.4418, 1e-06], ['hyperbolic', -144726.71, 10.671731, 1.659566]), ('orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]', [7000.0, 10.67, 398600.4418, 1e-06], ['elliptic', 10790332.769, 10.671731, None]), ('orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]', [7000.0, 10.6713, 398600.4418, 0.0001], ['parabolic', None, 10.671731, None])]]\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":"A deterministic toy two-body model with stipulated constants and conventions; not flight dynamics software or a validated SGP4 implementation. 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-orbital_propagation-energy_class-excess-speed","generated_at":"2026-09-29T14:48:13.606348+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Orbit determination and mission planning chain many small conversions; one wrong branch or unit silently moves a spacecraft by kilometres.","root_cause":"v_inf is sqrt(eps).","sha256":"22c446d665c817e44045dc4b9397bf039cd7ba9f30e53eb17094d02ad34d82a2","title":"Orbit energy classification: Hyperbolic excess speed omits the factor two · 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":40.948,"exit_code":1,"observations":[{"actual":["hyperbolic",-144726.71,10.671731,1.659566],"check":"orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]","expected":["hyperbolic",-144726.71,10.671731,1.659566],"passed":true},{"actual":["elliptic",6915.843,10.671731,7.591827],"check":"orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]","expected":["elliptic",6915.843,10.671731,null],"passed":false},{"actual":["elliptic",10790332.769,10.671731,0.192199],"check":"orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]","expected":["elliptic",10790332.769,10.671731,null],"passed":false},{"actual":["parabolic",null,10.671731,0.0959],"check":"orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]","expected":["parabolic",null,10.671731,null],"passed":false},{"actual":["parabolic",null,1.414214,0.006194],"check":"orbit energy classification [1.0, 1.4142, 1.0, 0.001]","expected":["parabolic",null,1.414214,null],"passed":false},{"actual":["elliptic",1.0,1.414214,1.0],"check":"orbit energy classification [1.0, 1.0, 1.0, 0.001]","expected":["elliptic",1.0,1.414214,null],"passed":false},{"actual":["hyperbolic",-0.5,1.414214,1.414214],"check":"orbit energy classification [1.0, 2.0, 1.0, 0.001]","expected":["hyperbolic",-0.5,1.414214,1.414214],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]\", \"actual\": [\"hyperbolic\", -144726.71, 10.671731, 1.659566], \"expected\": [\"hyperbolic\", -144726.71, 10.671731, 1.659566], \"passed\": true}, {\"check\": \"orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]\", \"actual\": [\"elliptic\", 6915.843, 10.671731, 7.591827], \"expected\": [\"elliptic\", 6915.843, 10.671731, null], \"passed\": false}, {\"check\": \"orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]\", \"actual\": [\"elliptic\", 10790332.769, 10.671731, 0.192199], \"expected\": [\"elliptic\", 10790332.769, 10.671731, null], \"passed\": false}, {\"check\": \"orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]\", \"actual\": [\"parabolic\", null, 10.671731, 0.0959], \"expected\": [\"parabolic\", null, 10.671731, null], \"passed\": false}, {\"check\": \"orbit energy classification [1.0, 1.4142, 1.0, 0.001]\", \"actual\": [\"parabolic\", null, 1.414214, 0.006194], \"expected\": [\"parabolic\", null, 1.414214, null], \"passed\": false}, {\"check\": \"orbit energy classification [1.0, 1.0, 1.0, 0.001]\", \"actual\": [\"elliptic\", 1.0, 1.414214, 1.0], \"expected\": [\"elliptic\", 1.0, 1.414214, null], \"passed\": false}, {\"check\": \"orbit energy classification [1.0, 2.0, 1.0, 0.001]\", \"actual\": [\"hyperbolic\", -0.5, 1.414214, 1.414214], \"expected\": [\"hyperbolic\", -0.5, 1.414214, 1.414214], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.677,"exit_code":1,"observations":[{"actual":["hyperbolic",-144726.71,10.671731,1.17349],"check":"orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]","expected":["hyperbolic",-144726.71,10.671731,1.659566],"passed":false},{"actual":["elliptic",6915.843,10.671731,null],"check":"orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]","expected":["elliptic",6915.843,10.671731,null],"passed":true},{"actual":["elliptic",10790332.769,10.671731,null],"check":"orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]","expected":["elliptic",10790332.769,10.671731,null],"passed":true},{"actual":["parabolic",null,10.671731,null],"check":"orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]","expected":["parabolic",null,10.671731,null],"passed":true},{"actual":["parabolic",null,1.414214,null],"check":"orbit energy classification [1.0, 1.4142, 1.0, 0.001]","expected":["parabolic",null,1.414214,null],"passed":true},{"actual":["elliptic",1.0,1.414214,null],"check":"orbit energy classification [1.0, 1.0, 1.0, 0.001]","expected":["elliptic",1.0,1.414214,null],"passed":true},{"actual":["hyperbolic",-0.5,1.414214,1.0],"check":"orbit energy classification [1.0, 2.0, 1.0, 0.001]","expected":["hyperbolic",-0.5,1.414214,1.414214],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"orbit energy classification [7000.0, 10.8, 398600.4418, 1e-06]\", \"actual\": [\"hyperbolic\", -144726.71, 10.671731, 1.17349], \"expected\": [\"hyperbolic\", -144726.71, 10.671731, 1.659566], \"passed\": false}, {\"check\": \"orbit energy classification [7000.0, 7.5, 398600.4418, 1e-06]\", \"actual\": [\"elliptic\", 6915.843, 10.671731, null], \"expected\": [\"elliptic\", 6915.843, 10.671731, null], \"passed\": true}, {\"check\": \"orbit energy classification [7000.0, 10.67, 398600.4418, 1e-06]\", \"actual\": [\"elliptic\", 10790332.769, 10.671731, null], \"expected\": [\"elliptic\", 10790332.769, 10.671731, null], \"passed\": true}, {\"check\": \"orbit energy classification [7000.0, 10.6713, 398600.4418, 0.0001]\", \"actual\": [\"parabolic\", null, 10.671731, null], \"expected\": [\"parabolic\", null, 10.671731, null], \"passed\": true}, {\"check\": \"orbit energy classification [1.0, 1.4142, 1.0, 0.001]\", \"actual\": [\"parabolic\", null, 1.414214, null], \"expected\": [\"parabolic\", null, 1.414214, null], \"passed\": true}, {\"check\": \"orbit energy classification [1.0, 1.0, 1.0, 0.001]\", \"actual\": [\"elliptic\", 1.0, 1.414214, null], \"expected\": [\"elliptic\", 1.0, 1.414214, null], \"passed\": true}, {\"check\": \"orbit energy classification [1.0, 2.0, 1.0, 0.001]\", \"actual\": [\"hyperbolic\", -0.5, 1.414214, 1.0], \"expected\": [\"hyperbolic\", -0.5, 1.414214, 1.414214], \"passed\": false}], \"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."}}