Browse Source

add test case for equatorial orbit

main
cinnaboot 4 years ago
parent
commit
c76c7c6ae6
  1. 15
      tests/orbit_test.cpp

15
tests/orbit_test.cpp

@ -79,6 +79,21 @@ TEST_CASE("state vectors to orbital elements, example 3.1", "[orbits]")
REQUIRE_THAT(el.nu, WithinAbs(orbitClampAngle(DEG2RAD(280)), 1)); REQUIRE_THAT(el.nu, WithinAbs(orbitClampAngle(DEG2RAD(280)), 1));
} }
TEST_CASE("elements to state vectors, edge case equatorial orbit", "[orbits]")
{
double mu = EARTH_GRAVITATIONAL_PARAMETER;
dvec3 r = dvec3(0, -8000, 0);
dvec3 v = dvec3(7.45, 0, 0);
OrbitalElements el = orbitGetElementsFromStateVectors(r, v, mu);
REQUIRE_THAT(el.a, WithinAbs(9028.776, 1e-3));
REQUIRE_THAT(el.e, WithinAbs(0.114, 1e-3));
REQUIRE_THAT(el.iota, WithinAbs(0.0, 1e-3));
REQUIRE_THAT(el.ohm, WithinAbs(0.0, 1e-3));
REQUIRE_THAT(el.omega, WithinAbs(-1.571, 1e-3));
REQUIRE_THAT(el.nu, WithinAbs(0.0, 1e-3));
}
TEST_CASE("orbital elements to state vectors, example 3.2", "[orbits]") TEST_CASE("orbital elements to state vectors, example 3.2", "[orbits]")
{ {
double a = MOLNIYA_SEMI_MAJOR_AXIS; double a = MOLNIYA_SEMI_MAJOR_AXIS;

Loading…
Cancel
Save