{"abstract":"Radial offsets are multiplied by the orbit radius.","category":"Orbital propagation","checks":7,"contract":"Input [rc, vc, rd]: chief position and velocity and deputy position. R=rc/|rc|, C=(rc x vc)/|rc x vc|, I=C x R. Return the deputy offset rd-rc projected onto [R, I, C], rounded to 6.","contract_signature":"x","evaluation_group":"w2-orbital_propagation-ric_frame","failed_approach":"Normalizing the relative vector instead of the chief position aligns the radial axis with the offset.","family":"w2-orbital_propagation-ric_frame-radial-unit","id":"FA-69791","implementations":{"attempt":{"sha256":"b95d731588e77a494fe25433de8e93c0fc2023b3240ade59137aca176aa44da1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    rc,vc,rd=x\n    def dot(a,b): return sum(p*q for p,q in zip(a,b))\n    def cross(a,b): return [a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]\n    def unit(a):\n        m=math.sqrt(dot(a,a))\n        return [q/m for q in a]\n    R=unit([p-q for p,q in zip(rd,rc)]) if rd!=rc else unit(rc)\n    C=unit(cross(rc,vc))\n    I=cross(C,R)\n    d=[p-q for p,q in zip(rd,rc)]\n    return [round(dot(d,R),6),round(dot(d,I),6),round(dot(d,C),6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0]), ('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584]), ('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394]), ('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0])], [('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0]), ('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394]), ('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584])], [('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0]), ('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394]), ('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3])], [('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394]), ('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584]), ('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0])], [('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0]), ('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584]), ('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394])]]\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":"a925351e08050803f053acd751ba8b4bb1dbbec12c57dbfb22b5ab61313a928b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    rc,vc,rd=x\n    def dot(a,b): return sum(p*q for p,q in zip(a,b))\n    def cross(a,b): return [a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]\n    def unit(a):\n        m=math.sqrt(dot(a,a))\n        return [q/m for q in a]\n    R=list(rc)\n    C=unit(cross(rc,vc))\n    I=cross(C,R)\n    d=[p-q for p,q in zip(rd,rc)]\n    return [round(dot(d,R),6),round(dot(d,I),6),round(dot(d,C),6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0]), ('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584]), ('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394]), ('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0])], [('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0]), ('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394]), ('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584])], [('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0]), ('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394]), ('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3])], [('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394]), ('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584]), ('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0])], [('radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]', [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]], [0.0, 1.414214, 0.0]), ('radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]', [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]], [0.1, 0.2, -0.3]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]], [0.0, 0.0, 0.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]', [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]], [1.0, 2.0, 3.0]), ('radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]', [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]], [0.0, 5.0, 0.0]), ('radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]', [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]], [10.0, -10.46518, -2.545584]), ('radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]', [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]], [0.980196, -3.240487, 2.353394])]]\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-ric_frame-radial-unit","generated_at":"2026-09-29T14:48:14.636702+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":"R is not normalized.","sha256":"edbd41abeb590423db78145afb96ad4cc12c1399f17eab4f98f685e624e5d949","title":"Radial in-track cross-track projection: Radial axis is the raw position vector · 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.803,"exit_code":1,"observations":[{"actual":[3.741657,0.0,3.0],"check":"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]","expected":[1.0,2.0,3.0],"passed":false},{"actual":[5.0,0.0,0.0],"check":"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]","expected":[0.0,5.0,0.0],"passed":false},{"actual":[14.696938,0.0,-2.545584],"check":"radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]","expected":[10.0,-10.46518,-2.545584],"passed":false},{"actual":[4.123106,-0.0,2.353394],"check":"radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]","expected":[0.980196,-3.240487,2.353394],"passed":false},{"actual":[1.414214,0.0,0.0],"check":"radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]","expected":[0.0,1.414214,0.0],"passed":false},{"actual":[0.374166,0.0,-0.3],"check":"radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]","expected":[0.1,0.2,-0.3],"passed":false},{"actual":[0.0,0.0,0.0],"check":"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]","expected":[0.0,0.0,0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]\", \"actual\": [3.741657, 0.0, 3.0], \"expected\": [1.0, 2.0, 3.0], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]\", \"actual\": [5.0, 0.0, 0.0], \"expected\": [0.0, 5.0, 0.0], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]\", \"actual\": [14.696938, 0.0, -2.545584], \"expected\": [10.0, -10.46518, -2.545584], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]\", \"actual\": [4.123106, -0.0, 2.353394], \"expected\": [0.980196, -3.240487, 2.353394], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]\", \"actual\": [1.414214, 0.0, 0.0], \"expected\": [0.0, 1.414214, 0.0], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]\", \"actual\": [0.374166, 0.0, -0.3], \"expected\": [0.1, 0.2, -0.3], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]\", \"actual\": [0.0, 0.0, 0.0], \"expected\": [0.0, 0.0, 0.0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.193,"exit_code":1,"observations":[{"actual":[7000.0,14000.0,3.0],"check":"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]","expected":[1.0,2.0,3.0],"passed":false},{"actual":[0.0,35000.0,0.0],"check":"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]","expected":[0.0,5.0,0.0],"passed":false},{"actual":[70000.0,-73256.262531,-2.545584],"check":"radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]","expected":[10.0,-10.46518,-2.545584],"passed":false},{"actual":[7000.0,-23141.703946,2.353394],"check":"radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]","expected":[0.980196,-3.240487,2.353394],"passed":false},{"actual":[0.0,9585.539526,0.0],"check":"radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]","expected":[0.0,1.414214,0.0],"passed":false},{"actual":[0.1,0.2,-0.3],"check":"radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]","expected":[0.1,0.2,-0.3],"passed":true},{"actual":[0.0,0.0,0.0],"check":"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]","expected":[0.0,0.0,0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7001.0, 2.0, 3.0]]\", \"actual\": [7000.0, 14000.0, 3.0], \"expected\": [1.0, 2.0, 3.0], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [1.0, 7.5, 0.0], [7000.0, 5.0, 0.0]]\", \"actual\": [0.0, 35000.0, 0.0], \"expected\": [0.0, 5.0, 0.0], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[0.0, 7000.0, 0.0], [-7.0, 0.0, 1.0], [10.0, 7010.0, -4.0]]\", \"actual\": [70000.0, -73256.262531, -2.545584], \"expected\": [10.0, -10.46518, -2.545584], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[5000.0, 5000.0, 1000.0], [-5.0, 5.0, 1.0], [5003.0, 4998.0, 1002.0]]\", \"actual\": [7000.0, -23141.703946, 2.353394], \"expected\": [0.980196, -3.240487, 2.353394], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[6778.0, 0.0, 0.0], [0.0, 5.3, 5.3], [6778.0, 1.0, 1.0]]\", \"actual\": [0.0, 9585.539526, 0.0], \"expected\": [0.0, 1.414214, 0.0], \"passed\": false}, {\"check\": \"radial in-track cross-track projection [[1.0, 0.0, 0.0], [0.5, 1.0, 0.0], [1.1, 0.2, -0.3]]\", \"actual\": [0.1, 0.2, -0.3], \"expected\": [0.1, 0.2, -0.3], \"passed\": true}, {\"check\": \"radial in-track cross-track projection [[7000.0, 0.0, 0.0], [0.0, 7.5, 0.0], [7000.0, 0.0, 0.0]]\", \"actual\": [0.0, 0.0, 0.0], \"expected\": [0.0, 0.0, 0.0], \"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."}}