示例#1
0
def test_correct_pericenter_J2_exception():
    ss0 = Orbit.from_classical(
        Mercury,
        1000 * u.km,
        0 * u.one,
        0 * u.deg,
        0 * u.deg,
        0 * u.deg,
        0 * u.deg,
    )
    max_delta_r = 30 * u.km
    with pytest.raises(NotImplementedError) as excinfo:
        Maneuver.correct_pericenter(ss0, max_delta_r)
    assert excinfo.type == NotImplementedError
    assert (str(
        excinfo.value
    ) == f"The correction maneuver is not yet supported for {ss0.attractor}")
示例#2
0
def test_correct_pericenter_ecc_exception():
    ss0 = Orbit.from_classical(
        Earth,
        1000 * u.km,
        0.5 * u.one,
        0 * u.deg,
        0 * u.deg,
        0 * u.deg,
        0 * u.deg,
    )
    max_delta_r = 30 * u.km
    with pytest.raises(NotImplementedError) as excinfo:
        Maneuver.correct_pericenter(ss0, max_delta_r)
    assert excinfo.type == NotImplementedError
    assert (
        str(excinfo.value) ==
        f"The correction maneuver is not yet supported with {ss0.ecc},it should be less than or equal to 0.001"
    )
示例#3
0
def test_correct_pericenter(attractor, max_delta_r, a, ecc, inc, expected_t,
                            expected_v):
    ss0 = Orbit.from_classical(
        attractor,
        a,
        ecc,
        inc,
        0 * u.deg,
        0 * u.deg,
        0 * u.deg,
    )

    maneuver = Maneuver.correct_pericenter(ss0, max_delta_r)
    assert_quantity_allclose(maneuver[0][0], expected_t)
    assert_quantity_allclose(maneuver[0][1].value.tolist(),
                             expected_v.value.tolist())