enceladuss 0.0.3

Enceladus celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
#[test]
fn orbit_new_defaults() {
    let o = enceladuss::physics::orbit::EnceladusOrbit::new();
    assert!(o.semi_major_axis_m > 2.0e8);
    assert!(o.eccentricity < 0.01);
}

#[test]
fn orbital_period_positive() {
    let o = enceladuss::physics::orbit::EnceladusOrbit::new();
    assert!(o.orbital_period_s() > 1.0e5);
}

#[test]
fn periapsis_less_than_apoapsis() {
    let o = enceladuss::physics::orbit::EnceladusOrbit::new();
    assert!(o.periapsis_m() < o.apoapsis_m());
}

#[test]
fn orbital_speed_positive() {
    let o = enceladuss::physics::orbit::EnceladusOrbit::new();
    let v = o.orbital_speed_m_s(o.semi_major_axis_m);
    assert!(v > 0.0 && v < 20_000.0);
}

#[test]
fn rotation_synchronous() {
    let r = enceladuss::physics::rotation::EnceladusRotation::new();
    assert!(r.synchronous);
    assert!(r.equatorial_speed_m_s() > 0.0);
}

#[test]
fn tidal_response_current() {
    let t = enceladuss::physics::tides::TidalResponse::current();
    assert!(t.love_number > 0.0);
    assert!(t.mean_displacement_m > 0.0);
}

#[test]
fn saturn_tidal_acceleration_nonzero() {
    let a = enceladuss::physics::tides::saturn_tidal_acceleration(0.0);
    assert!(a.abs() > 0.0);
}

#[test]
fn dissipation_power_positive() {
    let t = enceladuss::physics::tides::TidalResponse::current();
    assert!(enceladuss::physics::tides::dissipation_power_w(t) > 0.0);
}

#[test]
fn micrometeorite_mass_tiny() {
    let m = enceladuss::physics::collisions::micrometeorite();
    assert!(m.mass_kg() < 1.0);
    assert!(m.kinetic_energy_j() > 0.0);
}

#[test]
fn ice_impactor_creates_crater() {
    let b = enceladuss::physics::collisions::ice_impactor();
    assert!(b.transient_crater_diameter_m() > 10.0);
}