{"abstract":"Cross-track offsets are scaled by the angular momentum magnitude.","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 v x r flips the cross-track sign.","family":"w2-orbital_propagation-ric_frame-cross-track-normalization","id":"FA-69781","implementations":{"attempt":{"sha256":"fe0c058570d27f86e0362500a1c1d98a2ffce17a193c523c7415c86043a4cac3","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(rc)\n    C=unit(cross(vc,rc))\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":"baab0f5fbcfe22d02fb7d55d39b5abcdeadbe821ad652722b1f025f6e108e066","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(rc)\n    C=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-cross-track-normalization","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":"C is the raw angular momentum vector.","sha256":"13d57cf71a957c4e979f060ba698ec6161770034d93bb0f8696dabd58f01eda8","title":"Radial in-track cross-track projection: Cross-track axis is not normalized · 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":41.804,"exit_code":1,"observations":[{"actual":[1.0,-2.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,-5.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":[10.0,10.46518,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":[0.980196,3.240487,-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,-1.414214,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":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\": [1.0, -2.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, -5.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\": [10.0, 10.46518, 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\": [0.980196, 3.240487, -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, -1.414214, 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\": 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":44.347,"exit_code":1,"observations":[{"actual":[1.0,105000.0,157500.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,262500.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":[10.0,-518000.0,-126000.0],"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":[0.980196,-165233.049915,120000.0],"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,71846.8,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\": [1.0, 105000.0, 157500.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, 262500.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\": [10.0, -518000.0, -126000.0], \"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\": [0.980196, -165233.049915, 120000.0], \"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, 71846.8, 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."}}