#[test]
fn voltaire_crater_diameter() {
    let c = deimoss::geology::craters::voltaire();
    assert!(c.diameter_km > 1.5);
    assert!(c.depth_to_diameter_ratio() > 0.0);
}

#[test]
fn swift_crater_exists() {
    let c = deimoss::geology::craters::swift();
    assert_eq!(c.name, "Swift");
    assert!(c.age_gyr > 3.0);
}

#[test]
fn crater_classification() {
    assert_eq!(deimoss::geology::craters::crater_class(0.3), "simple");
    assert_eq!(deimoss::geology::craters::crater_class(1.5), "complex");
    assert_eq!(deimoss::geology::craters::crater_class(3.0), "large");
}

#[test]
fn erosion_overturn_positive() {
    let rate = deimoss::geology::erosion::micrometeorite_overturn_rate_mm_myr(1.0);
    assert!(rate > 0.0);
}

#[test]
fn space_weathering_bounded() {
    let idx = deimoss::geology::erosion::space_weathering_index(500.0, 1.0);
    assert!(idx > 0.0 && idx <= 1.0);
}

#[test]
fn regolith_porosity_bounded() {
    let r = deimoss::geology::regolith::deep_regolith();
    let p = r.porosity();
    assert!(p > 0.0 && p < 1.0);
}

#[test]
fn regolith_thermal_inertia_positive() {
    let r = deimoss::geology::regolith::crater_floor_regolith();
    assert!(r.thermal_inertia() > 0.0);
}

#[test]
fn rim_feature_relief_energy() {
    let rim = deimoss::geology::mountains::voltaire_rim();
    assert!(rim.relief_energy() > 0.0);
}

#[test]
fn deimos_not_volcanic() {
    let v = deimoss::geology::volcanism::deimos_volcanic_state();
    assert!(!v.is_active());
}
