#[test]
fn thera_macula_site() {
    let s = europas::geodata::landing_sites::thera_macula();
    assert_eq!(s.name, "Thera Macula");
}

#[test]
fn conamara_chaos_site() {
    let s = europas::geodata::landing_sites::conamara_chaos();
    assert!(!s.name.is_empty());
}

#[test]
fn coordinates_to_cartesian() {
    let c = europas::geodata::coordinates::LatLonAlt::new(0.0, 0.0, 0.0);
    let xyz = c.to_cartesian();
    assert!((xyz[0] - europas::EUROPA_RADIUS_M).abs() < 1.0);
}

#[test]
fn elevation_sample() {
    let s = europas::geodata::elevation::sample_dem(0.0, 0.0);
    assert!(s.elevation_m.is_finite());
}

#[test]
fn region_classification() {
    let r = europas::geodata::regions::named_region(0.0, 0.0);
    assert!(matches!(
        r,
        europas::geodata::regions::EuropaRegion::SubJovian
            | europas::geodata::regions::EuropaRegion::LeadingHemisphere
            | europas::geodata::regions::EuropaRegion::TrailingHemisphere
            | europas::geodata::regions::EuropaRegion::AntiJovian
    ));
}
