#[test]
fn primary_crater() {
    let c = titanss::geology::craters::primary_crater();
    assert!(c.diameter_km > 0.0);
    assert!(c.depth_to_diameter_ratio() > 0.0);
}

#[test]
fn crater_class() {
    assert_eq!(titanss::geology::craters::crater_class(10.0), "simple");
    assert_eq!(titanss::geology::craters::crater_class(100.0), "complex");
    assert_eq!(titanss::geology::craters::crater_class(500.0), "multi-ring");
}

#[test]
fn erosion_overturn() {
    assert!(titanss::geology::erosion::micrometeorite_overturn_rate_mm_myr(1.0) > 0.0);
}

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

#[test]
fn regolith_porosity() {
    let r = titanss::geology::regolith::primary_regolith();
    assert!(r.porosity() > 0.0 && r.porosity() < 1.0);
}

#[test]
fn regolith_thermal_inertia() {
    let r = titanss::geology::regolith::icy_regolith();
    assert!(r.thermal_inertia() > 0.0);
}

#[test]
fn mountain_relief_energy() {
    let m = titanss::geology::mountains::primary_feature();
    assert!(m.relief_energy() > 0.0);
}

#[test]
fn secondary_feature() {
    let m = titanss::geology::mountains::secondary_feature();
    assert!(m.elevation_m > 0.0);
}

#[test]
fn volcanism_rate() {
    assert!(titanss::geology::volcanism::cryovolcanic_resurfacing_rate_mm_yr(1.0) > 0.0);
}
