universal_constants 0.0.1

Physical and mathematical constants that are generally considered to be universally constant.
Documentation
//! Planetary constants.

/// Earth constants from [NASA Earth Fact Sheet](https://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html).
pub mod earth {
    /// Earth mass [kilograms].
    pub const MASS_KG: f64 = 5.9722e24;

    /// Earth volume [meters^3]
    pub const VOLUME_M3: f64 = 1.08321e21;

    /// Earth mean radius [meters]
    pub const RADIUS_MEAN_M: f64 = 6371000.0;

    /// Earth equatorial radius [meters]
    pub const RADIUS_EQUATORIAL_M: f64 = 6378137.0;

    /// Earth polar radius [meters]
    pub const RADIUS_POLAR_M: f64 = 6356752.0;

    /// Earth mean gravitational acceleration [meters/second^2]
    pub const GRAVITY_MEAN_M_PER_S2: f64 = 9.820;

    /// Earth equatorial gravitational acceleration [meters/second^2]
    pub const GRAVITY_EQUATORIAL_M_PER_S2: f64 = 9.780;

    /// Earth polar gravitational acceleration [meters/second^2]
    pub const GRAVITY_POLAR_M_PER_S2: f64 = 9.832;

    /// Earth gravitational parameter (GM) [meters^3/second^2]
    pub const GRAVITATIONAL_PARAMETER_M3_PER_S2: f64 = 3.986004418e14;
}

#[cfg(test)]
mod tests {
    use crate::planets::earth;

    #[test]
    fn earth_tests() {
        assert_eq!(earth::MASS_KG, 5.9722e24);
        assert_eq!(earth::VOLUME_M3, 1.08321e21);
        assert_eq!(earth::RADIUS_MEAN_M, 6371000.0);
        assert_eq!(earth::RADIUS_EQUATORIAL_M, 6378137.0);
        assert_eq!(earth::RADIUS_POLAR_M, 6356752.0);
        assert_eq!(earth::GRAVITY_MEAN_M_PER_S2, 9.820);
        assert_eq!(earth::GRAVITY_EQUATORIAL_M_PER_S2, 9.780);
        assert_eq!(earth::GRAVITY_POLAR_M_PER_S2, 9.832);
        assert_eq!(earth::GRAVITATIONAL_PARAMETER_M3_PER_S2, 3.986004418e14);
    }
}