#![forbid(unsafe_code)]
#![doc = include_str!("../README.md")]
pub const EARTH_RADIUS_MEAN: f64 = 6_371_000.0;
pub const EARTH_RADIUS_EQUATORIAL: f64 = 6_378_137.0;
pub const EARTH_RADIUS_POLAR: f64 = 6_356_752.314_245;
pub const EARTH_MASS: f64 = 5.972_2e24;
pub const STANDARD_GRAVITY: f64 = 9.806_65;
pub const SEA_LEVEL_STANDARD_PRESSURE: f64 = 101_325.0;
pub const WGS84_A: f64 = 6_378_137.0;
pub const WGS84_B: f64 = 6_356_752.314_245;
pub const WGS84_FLATTENING: f64 = 1.0 / 298.257_223_563;
#[cfg(test)]
mod tests {
use super::{
EARTH_MASS, EARTH_RADIUS_EQUATORIAL, EARTH_RADIUS_MEAN, EARTH_RADIUS_POLAR,
SEA_LEVEL_STANDARD_PRESSURE, STANDARD_GRAVITY, WGS84_A, WGS84_B, WGS84_FLATTENING,
};
#[test]
fn earth_radii_follow_expected_ordering() {
assert!(EARTH_RADIUS_EQUATORIAL > EARTH_RADIUS_MEAN);
assert!(EARTH_RADIUS_MEAN > EARTH_RADIUS_POLAR);
}
#[test]
fn wgs84_axes_match_radius_aliases() {
assert_eq!(EARTH_RADIUS_EQUATORIAL, WGS84_A);
assert_eq!(EARTH_RADIUS_POLAR, WGS84_B);
}
#[test]
fn representative_environment_constants_are_reasonable() {
assert!(WGS84_FLATTENING > 0.0);
assert!(STANDARD_GRAVITY > 9.8 && STANDARD_GRAVITY < 9.9);
assert_eq!(SEA_LEVEL_STANDARD_PRESSURE, 101_325.0);
assert!(EARTH_MASS > 0.0);
}
}