moons 0.0.3

Moon celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
use moons::missions::landers::{eagle, surveyor_1};
use moons::missions::orbiters::{capstone, lro};
use moons::missions::relay::queqiao;

fn ensure_earth_context() {
    let earth_context = moons::interactions::earths::ensure_earths_binary_or_simulate();
    assert!(earth_context.surface_speed_m_s > 400.0);
}

#[test]
fn crewed_and_robotic_landers_are_distinct() {
    ensure_earth_context();
    assert!(eagle().crewed);
    assert!(!surveyor_1().crewed);
}

#[test]
fn cislunar_orbiters_have_different_altitudes() {
    ensure_earth_context();
    assert!(capstone().altitude_km > lro().altitude_km);
}

#[test]
fn relay_satellite_covers_far_side() {
    ensure_earth_context();
    assert!(queqiao().far_side_coverage > 0.5);
}