def test_orbit_representation(): ss = Orbit.circular( Earth, 600 * u.km, 20 * u.deg, epoch=Time("2018-09-08 09:04:00", scale="tdb") ) expected_str = "6978 x 6978 km x 20.0 deg (GCRS) orbit around Earth (\u2641) at epoch 2018-09-08 09:04:00.000 (TDB)" assert str(ss) == repr(ss) == expected_str
def test_pqw_for_circular_equatorial_orbit(): ss = Orbit.circular(Earth, 600 * u.km) expected_p = [1, 0, 0] * u.one expected_q = [0, 1, 0] * u.one expected_w = [0, 0, 1] * u.one p, q, w = ss.pqw() assert_allclose(p, expected_p) assert_allclose(q, expected_q) assert_allclose(w, expected_w)
def test_geosync_has_proper_period(): expected_period = 1436 * u.min ss = Orbit.circular(Earth, alt=42164 * u.km - Earth.R) assert_quantity_allclose(ss.period, expected_period, rtol=1e-4)
def test_circular_has_proper_semimajor_axis(): alt = 500 * u.km attractor = Earth expected_a = Earth.R + alt ss = Orbit.circular(attractor, alt) assert ss.a == expected_a
def test_circular_raises_error_if_negative_altitude(): with pytest.raises(ValueError) as excinfo: Orbit.circular(Earth, -1 * u.m, epoch=Time(0.0, format="jd", scale="tdb")) assert "Altitude of an orbit cannot be negative." in excinfo.exconly()