#[test]
fn dayside_charging_positive_potential() {
    let c = deimoss::exosphere::charging::SurfaceCharging::dayside();
    assert!(c.surface_potential_v() > 0.0);
}

#[test]
fn nightside_charging_negative_potential() {
    let c = deimoss::exosphere::charging::SurfaceCharging::nightside();
    assert!(c.surface_potential_v() < 0.0);
}

#[test]
fn dust_lofting_risk_bounded() {
    let c = deimoss::exosphere::charging::SurfaceCharging::dayside();
    let risk = c.dust_lofting_risk();
    assert!((0.0..=1.0).contains(&risk));
}

#[test]
fn reference_composition_has_species() {
    let species = deimoss::exosphere::species::reference_composition();
    assert_eq!(species.len(), 6);
    let dominant = deimoss::exosphere::species::dominant_species(&species);
    assert_eq!(dominant.unwrap().name, "H2O");
}

#[test]
fn trace_species_has_one() {
    let species = deimoss::exosphere::species::trace_species();
    assert_eq!(species.len(), 1);
}

#[test]
fn thermal_speed_positive() {
    let v = deimoss::exosphere::escape::thermal_speed_m_s(200.0, 0.002);
    assert!(v > 0.0);
}

#[test]
fn ballistic_hop_range_positive() {
    let range = deimoss::exosphere::escape::ballistic_hop_range_m(3.0, 45.0);
    assert!(range > 0.0);
}
