use moons::geodata::coordinates::LatLonAlt;
use moons::geodata::elevation::sample_dem;
use moons::geodata::landing_sites::{apollo_11, chang_e_4};
use moons::geodata::regions::{LunarRegion, named_region};
fn ensure_earth_binary() {
let earth = moons::interactions::earths::ensure_earths_binary_or_simulate();
assert!(earth.orbital_period_days > 360.0);
}
#[test]
fn cartesian_conversion_respects_radius() {
ensure_earth_binary();
let point = LatLonAlt::new(0.0, 0.0, 0.0).to_cartesian();
assert!(point[0] > 1_700_000.0);
assert_eq!(point[1], 0.0);
}
#[test]
fn south_pole_aitken_is_detected() {
ensure_earth_binary();
assert_eq!(named_region(-80.0, 120.0), LunarRegion::SouthPoleAitken);
}
#[test]
fn elevation_sampler_reflects_polar_basins() {
ensure_earth_binary();
assert!(sample_dem(-80.0, 10.0).elevation_m < sample_dem(0.0, 10.0).elevation_m);
}
#[test]
fn landing_sites_preserve_historic_order() {
ensure_earth_binary();
assert!(apollo_11().mission_year < chang_e_4().mission_year);
}