starfall/astronomy/planet/math/mass/
mod.rs

1pub const EARTH_MASS_PER_JUPITER_MASS: f64 = 317.8;
2
3/// Convert from Mearth to Mjupiter.
4#[named]
5pub fn earth_mass_to_jupiter_mass(mass: f64) -> f64 {
6  trace_enter!();
7  trace_var!(mass);
8  let result = mass / EARTH_MASS_PER_JUPITER_MASS;
9  trace_var!(result);
10  trace_exit!();
11  result
12}
13
14/// Convert from Mjupiter to Mearth.
15#[named]
16pub fn jupiter_mass_to_earth_mass(mass: f64) -> f64 {
17  trace_enter!();
18  trace_var!(mass);
19  let result = mass * EARTH_MASS_PER_JUPITER_MASS;
20  trace_var!(result);
21  trace_exit!();
22  result
23}
24
25#[cfg(test)]
26pub mod test {
27
28  use super::*;
29  use crate::test::*;
30
31  #[named]
32  #[test]
33  pub fn test_msol_to_kg() {
34    init();
35    trace_enter!();
36    assert_approx_eq!(jupiter_mass_to_earth_mass(earth_mass_to_jupiter_mass(1.0)), 1.0);
37    assert_approx_eq!(jupiter_mass_to_earth_mass(1.0), EARTH_MASS_PER_JUPITER_MASS);
38    trace_exit!();
39  }
40}