From cbb0c20f133b01a6eb62fdd30853474fdec9e887 Mon Sep 17 00:00:00 2001 From: Angus Morrison Date: Thu, 9 Nov 2023 18:54:31 +0000 Subject: [PATCH] Implement RotationalElements traits (#8) --- .gitignore | 1 + .idea/lox-space.iml | 1 - crates/lox_core/src/bodies.rs | 398 +- crates/lox_core/src/bodies/barycenters.rs | 1 + crates/lox_core/src/bodies/minor.rs | 765 +- crates/lox_core/src/bodies/planets.rs | 1324 ++- crates/lox_core/src/bodies/satellites.rs | 10798 +++++++++++++++++++- crates/lox_core/src/bodies/sun.rs | 54 +- tools/lox_gen/Cargo.lock | 145 +- tools/lox_gen/Cargo.toml | 2 + tools/lox_gen/src/main.rs | 88 +- tools/lox_gen/src/naif_ids.rs | 4 + tools/lox_gen/src/rotational_elements.rs | 338 + 13 files changed, 13372 insertions(+), 547 deletions(-) create mode 100644 tools/lox_gen/src/rotational_elements.rs diff --git a/.gitignore b/.gitignore index f3040fd5..ab3c418d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target /tools/*/target/ .venv/ +.idea/* \ No newline at end of file diff --git a/.idea/lox-space.iml b/.idea/lox-space.iml index 5407fa9f..7e2df88b 100644 --- a/.idea/lox-space.iml +++ b/.idea/lox-space.iml @@ -12,7 +12,6 @@ - diff --git a/crates/lox_core/src/bodies.rs b/crates/lox_core/src/bodies.rs index c83d2b26..af470af9 100644 --- a/crates/lox_core/src/bodies.rs +++ b/crates/lox_core/src/bodies.rs @@ -68,28 +68,27 @@ pub fn gravitational_parameter(_: T) -> f64 { ::gravitational_parameter() } -const N_COEFFICIENTS: usize = 18; +pub type PolynomialCoefficients = (f64, f64, f64, &'static [f64]); -type PolynomialCoefficients = (f64, f64, f64, [f64; N_COEFFICIENTS]); - -type NutationPrecessionCoefficients = ([f64; N_COEFFICIENTS], [f64; N_COEFFICIENTS]); +pub type NutationPrecessionCoefficients = (&'static [f64], &'static [f64]); type Elements = (f64, f64, f64); pub trait RotationalElements: Copy { - fn nutation_precession_coefficients() -> NutationPrecessionCoefficients; - - fn right_ascension_coefficients() -> PolynomialCoefficients; - - fn declination_coefficients() -> PolynomialCoefficients; + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients; + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients; + const DECLINATION_COEFFICIENTS: PolynomialCoefficients; + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients; - fn prime_meridian_coefficients() -> PolynomialCoefficients; - - fn theta(t: f64) -> [f64; N_COEFFICIENTS] { + fn theta(t: f64) -> Vec { let t = t / SECONDS_PER_JULIAN_CENTURY; - let (theta0, theta1) = Self::nutation_precession_coefficients(); - let mut theta = [0.0; N_COEFFICIENTS]; - for i in 0..N_COEFFICIENTS { + let (theta0, theta1) = Self::NUTATION_PRECESSION_COEFFICIENTS; + let mut theta = vec![0.0; theta0.len()]; + if theta0.is_empty() { + return theta; + } + + for i in 0..theta.len() { theta[i] = theta0[i] + theta1[i] * t; } theta @@ -97,11 +96,13 @@ pub trait RotationalElements: Copy { fn right_ascension(t: f64) -> f64 { let dt = SECONDS_PER_JULIAN_CENTURY; - let (c0, c1, c2, c) = Self::right_ascension_coefficients(); + let (c0, c1, c2, c) = Self::RIGHT_ASCENSION_COEFFICIENTS; let theta = Self::theta(t); - let mut c_trig = [0.0; N_COEFFICIENTS]; - for i in 0..N_COEFFICIENTS { - c_trig[i] = c[i] * theta[i].sin(); + let mut c_trig = vec![0.0; c.len()]; + if !c.is_empty() { + for i in 0..c.len() { + c_trig[i] = c[i] * theta[i].sin(); + } } let c_trig: f64 = c_trig.iter().sum(); c0 + c1 * t / dt + c2 * t.powi(2) / dt.powi(2) + c_trig @@ -109,12 +110,14 @@ pub trait RotationalElements: Copy { fn right_ascension_dot(t: f64) -> f64 { let dt = SECONDS_PER_JULIAN_CENTURY; - let (_, c1, c2, c) = Self::right_ascension_coefficients(); - let (_, theta1) = Self::nutation_precession_coefficients(); + let (_, c1, c2, c) = Self::RIGHT_ASCENSION_COEFFICIENTS; + let (_, theta1) = Self::NUTATION_PRECESSION_COEFFICIENTS; let theta = Self::theta(t); - let mut c_trig = [0.0; N_COEFFICIENTS]; - for i in 0..N_COEFFICIENTS { - c_trig[i] = c[i] * theta1[i] / SECONDS_PER_JULIAN_CENTURY * theta[i].cos() + let mut c_trig = vec![0.0; c.len()]; + if !c.is_empty() { + for i in 0..c.len() { + c_trig[i] = c[i] * theta1[i] / SECONDS_PER_JULIAN_CENTURY * theta[i].cos() + } } let c_trig: f64 = c_trig.iter().sum(); c1 / dt + 2.0 * c2 * t / dt.powi(2) + c_trig @@ -122,11 +125,13 @@ pub trait RotationalElements: Copy { fn declination(t: f64) -> f64 { let dt = SECONDS_PER_JULIAN_CENTURY; - let (c0, c1, c2, c) = Self::declination_coefficients(); + let (c0, c1, c2, c) = Self::DECLINATION_COEFFICIENTS; let theta = Self::theta(t); - let mut c_trig = [0.0; N_COEFFICIENTS]; - for i in 0..N_COEFFICIENTS { - c_trig[i] = c[i] * theta[i].cos(); + let mut c_trig = vec![0.0; c.len()]; + if !c.is_empty() { + for i in 0..c.len() { + c_trig[i] = c[i] * theta[i].cos(); + } } let c_trig: f64 = c_trig.iter().sum(); c0 + c1 * t / dt + c2 * t.powi(2) / dt.powi(2) + c_trig @@ -134,12 +139,14 @@ pub trait RotationalElements: Copy { fn declination_dot(t: f64) -> f64 { let dt = SECONDS_PER_JULIAN_CENTURY; - let (_, c1, c2, c) = Self::declination_coefficients(); - let (_, theta1) = Self::nutation_precession_coefficients(); + let (_, c1, c2, c) = Self::DECLINATION_COEFFICIENTS; + let (_, theta1) = Self::NUTATION_PRECESSION_COEFFICIENTS; let theta = Self::theta(t); - let mut c_trig = [0.0; N_COEFFICIENTS]; - for i in 0..N_COEFFICIENTS { - c_trig[i] = c[i] * theta1[i] / SECONDS_PER_JULIAN_CENTURY * theta[i].sin() + let mut c_trig = vec![0.0; c.len()]; + if !c.is_empty() { + for i in 0..c.len() { + c_trig[i] = c[i] * theta1[i] / SECONDS_PER_JULIAN_CENTURY * theta[i].sin() + } } let c_trig: f64 = c_trig.iter().sum(); c1 / dt + 2.0 * c2 * t / dt.powi(2) - c_trig @@ -147,11 +154,13 @@ pub trait RotationalElements: Copy { fn prime_meridian(t: f64) -> f64 { let dt = SECONDS_PER_DAY; - let (c0, c1, c2, c) = Self::prime_meridian_coefficients(); + let (c0, c1, c2, c) = Self::PRIME_MERIDIAN_COEFFICIENTS; let theta = Self::theta(t); - let mut c_trig = [0.0; N_COEFFICIENTS]; - for i in 0..N_COEFFICIENTS { - c_trig[i] = c[i] * theta[i].sin(); + let mut c_trig = vec![0.0; c.len()]; + if !c.is_empty() { + for i in 0..c.len() { + c_trig[i] = c[i] * theta[i].sin(); + } } let c_trig: f64 = c_trig.iter().sum(); c0 + c1 * t / dt + c2 * t.powi(2) / dt.powi(2) + c_trig @@ -159,12 +168,14 @@ pub trait RotationalElements: Copy { fn prime_meridian_dot(t: f64) -> f64 { let dt = SECONDS_PER_DAY; - let (_, c1, c2, c) = Self::prime_meridian_coefficients(); - let (_, theta1) = Self::nutation_precession_coefficients(); + let (_, c1, c2, c) = Self::PRIME_MERIDIAN_COEFFICIENTS; + let (_, theta1) = Self::NUTATION_PRECESSION_COEFFICIENTS; let theta = Self::theta(t); - let mut c_trig = [0.0; N_COEFFICIENTS]; - for i in 0..N_COEFFICIENTS { - c_trig[i] = c[i] * theta1[i] / SECONDS_PER_JULIAN_CENTURY * theta[i].cos() + let mut c_trig = vec![0.0; c.len()]; + if !c.is_empty() { + for i in 0..c.len() { + c_trig[i] = c[i] * theta1[i] / SECONDS_PER_JULIAN_CENTURY * theta[i].cos() + } } let c_trig: f64 = c_trig.iter().sum(); c1 / dt + 2.0 * c2 * t / dt.powi(2) + c_trig @@ -187,124 +198,10 @@ pub trait RotationalElements: Copy { } } -impl RotationalElements for planets::Jupiter { - fn nutation_precession_coefficients() -> NutationPrecessionCoefficients { - ( - [ - 1.2796754075622423, - 0.42970006184100396, - 4.9549897464119015, - 6.2098814785958245, - 2.092649773141201, - 4.010766621082969, - 6.147922290150026, - 1.9783307071355725, - 2.5593508151244846, - 0.8594001236820079, - 1.734171606432425, - 3.0699533280603655, - 5.241627996900319, - 1.9898901100379935, - 0.864134346731335, - 0.0, - 0.0, - 0.0, - ], - [ - 1596.503281347521, - 787.7927551311844, - 84.66068602648895, - 20.792107379008446, - 4.574507969477138, - 1.1222467090323538, - 41.58421475801689, - 105.9414855960558, - 3193.006562695042, - 1575.5855102623689, - 84.65553032387855, - 20.80363527871787, - 4.582318317879813, - 105.94580703128374, - 1.1222467090323538, - 0.0, - 0.0, - 0.0, - ], - ) - } - - fn right_ascension_coefficients() -> PolynomialCoefficients { - ( - 4.6784701644349695, - -0.00011342894808711148, - 0.0, - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 2.0420352248333656e-6, - 1.6371188383706813e-5, - 2.4993114888558796e-5, - 5.235987755982989e-7, - 3.752457891787809e-5, - 0.0, - 0.0, - 0.0, - ], - ) - } - - fn declination_coefficients() -> PolynomialCoefficients { - ( - 1.1256553894213766, - 4.211479485062318e-5, - 0.0, - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 8.726646259971648e-7, - 7.051130178057092e-6, - 1.0768681484805013e-5, - -2.2689280275926283e-7, - 1.616174887346749e-5, - 0.0, - 0.0, - 0.0, - ], - ) - } - - fn prime_meridian_coefficients() -> PolynomialCoefficients { - ( - 4.973315703557842, - 15.193719457141356, - 0.0, - [0.0; N_COEFFICIENTS], - ) - } -} - #[cfg(test)] mod tests { use float_eq::assert_float_eq; - use crate::bodies::planets::Jupiter; - use super::planets::Earth; use super::satellites::Moon; use super::*; @@ -347,29 +244,216 @@ mod tests { assert_eq!(along_orbit_radius(Moon), Moon::along_orbit_radius()); } + // Jupiter is manually redefined here usings known data. This avoids a dependecy on the + // correctness of the PCK parser to test RotationalElements. + #[derive(Copy, Clone)] + struct Jupiter; + + impl RotationalElements for Jupiter { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + ); + + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.6784701644349695f64, + -0.00011342894808711148f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000020420352248333656f64, + 0.000016371188383706813f64, + 0.000024993114888558796f64, + 0.0000005235987755982989f64, + 0.00003752457891787809f64, + ], + ); + + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.1256553894213766f64, + 0.00004211479485062318f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000008726646259971648f64, + 0.000007051130178057092f64, + 0.000010768681484805013f64, + -0.00000022689280275926283f64, + 0.00001616174887346749f64, + ], + ); + + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.973315703557842f64, + 15.193719457141356f64, + 0f64, + &[ + 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, + 0f64, + ], + ); + } + #[test] - fn test_rotational_elements() { + fn test_rotational_elements_right_ascension() { assert_float_eq!( Jupiter::right_ascension(0.0), 4.678480799964803, rel <= 1e-8 ); + } + + #[test] + fn test_rotational_elements_right_ascension_dot() { assert_float_eq!( Jupiter::right_ascension_dot(0.0), -1.3266588500099516e-13, rel <= 1e-8 ); + } + + #[test] + fn test_rotational_elements_declination() { assert_float_eq!(Jupiter::declination(0.0), 1.1256642372977634, rel <= 1e-8); + } + + #[test] + fn test_rotational_elements_declination_dot() { assert_float_eq!( Jupiter::declination_dot(0.0), 3.004482367136341e-15, rel <= 1e-8 ); + } + + #[test] + fn test_rotational_elements_prime_meridian() { assert_float_eq!(Jupiter::prime_meridian(0.0), 4.973315703557842, rel <= 1e-8); + } + + #[test] + fn test_rotational_elements_prime_meridian_dot() { assert_float_eq!( Jupiter::prime_meridian_dot(0.0), 0.00017585323445765458, rel <= 1e-8 ); } + + #[test] + fn test_rotational_elements_rotational_elements() { + let (ra, dec, pm) = Jupiter::rotational_elements(0.0); + let (expected_ra, expected_dec, expected_pm) = + (6.249277121030398, 0.44513208936761073, 4.973315703557842); + + assert_float_eq!( + ra, + expected_ra, + rel <= 1e-8, + "Expected right ascension {}, got {}", + expected_ra, + ra + ); + assert_float_eq!( + dec, + expected_dec, + rel <= 1e-8, + "Expected declination {}, got {}", + expected_dec, + dec + ); + assert_float_eq!( + pm, + expected_pm, + rel <= 1e-8, + "Expected prime meridian {}, got {}", + expected_pm, + pm + ); + } + + #[test] + fn test_rotational_elements_rotational_element_rates() { + let (ra_dot, dec_dot, pm_dot) = Jupiter::rotational_element_rates(0.0); + let (expected_ra_dot, expected_dec_dot, expected_pm_dot) = ( + -1.3266588500099516e-13, + -3.004482367136341e-15, + 0.00017585323445765458, + ); + + assert_float_eq!( + ra_dot, + expected_ra_dot, + rel <= 1e-8, + "Expected right ascension rate {}, got {}", + expected_ra_dot, + ra_dot + ); + assert_float_eq!( + dec_dot, + expected_dec_dot, + rel <= 1e-8, + "Expected declination rate {}, got {}", + expected_dec_dot, + dec_dot + ); + assert_float_eq!( + pm_dot, + expected_pm_dot, + rel <= 1e-8, + "Expected prime meridian rate {}, got {}", + expected_pm_dot, + pm_dot + ); + } } diff --git a/crates/lox_core/src/bodies/barycenters.rs b/crates/lox_core/src/bodies/barycenters.rs index 06e836ef..c1116a83 100644 --- a/crates/lox_core/src/bodies/barycenters.rs +++ b/crates/lox_core/src/bodies/barycenters.rs @@ -125,6 +125,7 @@ impl PointMass for PlutoBarycenter { } } #[cfg(test)] +#[allow(clippy::approx_constant)] mod tests { use super::*; #[test] diff --git a/crates/lox_core/src/bodies/minor.rs b/crates/lox_core/src/bodies/minor.rs index 41a0cc79..2d758080 100644 --- a/crates/lox_core/src/bodies/minor.rs +++ b/crates/lox_core/src/bodies/minor.rs @@ -8,7 +8,10 @@ // Auto-generated by `lox_gen`. Do not edit! -use super::{Ellipsoid, NaifId, PointMass, TriAxial}; +use super::{ + Ellipsoid, NaifId, NutationPrecessionCoefficients, PointMass, PolynomialCoefficients, + RotationalElements, TriAxial, +}; #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Gaspra; impl NaifId for Gaspra { @@ -32,6 +35,21 @@ impl TriAxial for Gaspra { 5.2f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Gaspra { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (0.16528268016386302f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (0.46600291028248597f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.4603169851436555f64, + 21.41364504378302f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ida; impl NaifId for Ida { @@ -55,6 +73,21 @@ impl TriAxial for Ida { 12f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ida { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (2.9454176456656302f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (-1.5205308443374599f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.78307481509046f64, + 32.54389804704987f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Dactyl; impl NaifId for Dactyl { @@ -62,6 +95,14 @@ impl NaifId for Dactyl { 2431011i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Dactyl { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ceres; impl NaifId for Ceres { @@ -90,6 +131,21 @@ impl TriAxial for Ceres { 487.3f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ceres { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (5.0862035995768355f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (1.165251621801494f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.9784043685283237f64, + 16.618208323400072f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Pallas; impl NaifId for Pallas { @@ -102,6 +158,21 @@ impl PointMass for Pallas { 13.665878145967422f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Pallas { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (0.5759586531581288f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (-0.05235987755982989f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.6632251157578453f64, + 19.299913700406368f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Vesta; impl NaifId for Vesta { @@ -130,6 +201,21 @@ impl TriAxial for Vesta { 280f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Vesta { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (5.393608440730596f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (0.7371398095798051f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.980995152266617f64, + 28.22778495282912f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Psyche; impl NaifId for Psyche { @@ -158,6 +244,14 @@ impl TriAxial for Psyche { 116f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Psyche { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Lutetia; impl NaifId for Lutetia { @@ -181,6 +275,21 @@ impl TriAxial for Lutetia { 50.5f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Lutetia { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (0.9075712110370514f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (0.20943951023931956f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.6406094968746698f64, + 18.4612463429088f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Kleopatra; impl NaifId for Kleopatra { @@ -188,6 +297,14 @@ impl NaifId for Kleopatra { 2000216i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Kleopatra { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Eros; impl NaifId for Eros { @@ -216,6 +333,21 @@ impl TriAxial for Eros { 5.5f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Eros { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (0.1980948701013564f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (0.30054569719342356f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.690995091977911f64, + 28.612729617819042f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Davida; impl NaifId for Davida { @@ -244,6 +376,21 @@ impl TriAxial for Davida { 147f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Davida { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (5.183627878423159f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (0.08726646259971647f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.679227724596798f64, + 29.39866372732388f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Mathilde; impl NaifId for Mathilde { @@ -267,6 +414,14 @@ impl TriAxial for Mathilde { 24f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Mathilde { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Steins; impl NaifId for Steins { @@ -290,6 +445,21 @@ impl TriAxial for Steins { 2.73f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Steins { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (1.5882496193148399f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (-1.0821041362364843f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.615771401216954f64, + 24.925032561498227f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Braille; impl NaifId for Braille { @@ -297,6 +467,14 @@ impl NaifId for Braille { 2009969i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Braille { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct WilsonHarrington; impl NaifId for WilsonHarrington { @@ -304,6 +482,14 @@ impl NaifId for WilsonHarrington { 2004015i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for WilsonHarrington { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Toutatis; impl NaifId for Toutatis { @@ -327,6 +513,14 @@ impl TriAxial for Toutatis { 1.015f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Toutatis { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Itokawa; impl NaifId for Itokawa { @@ -350,6 +544,17 @@ impl TriAxial for Itokawa { 0.147f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Itokawa { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (1.5800465718304666f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (-1.1571532940722404f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = + (0f64, 12.429240095029979f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Bennu; impl NaifId for Bennu { @@ -357,7 +562,16 @@ impl NaifId for Bennu { 2101955i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Bennu { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[cfg(test)] +#[allow(clippy::approx_constant)] mod tests { use super::*; #[test] @@ -372,6 +586,39 @@ mod tests { assert_eq!(Gaspra::along_orbit_radius(), 5.2f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_9511010() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Gaspra::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_9511010() { + assert_eq!( + (0.16528268016386302f64, 0f64, 0f64, &[] as &[f64]), + Gaspra::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_9511010() { + assert_eq!( + (0.46600291028248597f64, 0f64, 0f64, &[] as &[f64]), + Gaspra::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_9511010() { + assert_eq!( + ( + 1.4603169851436555f64, + 21.41364504378302f64, + 0f64, + &[] as &[f64] + ), + Gaspra::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2431010() { assert_eq!(Ida::id(), 2431010i32) } @@ -383,10 +630,71 @@ mod tests { assert_eq!(Ida::along_orbit_radius(), 12f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2431010() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ida::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2431010() { + assert_eq!( + (2.9454176456656302f64, 0f64, 0f64, &[] as &[f64]), + Ida::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2431010() { + assert_eq!( + (-1.5205308443374599f64, 0f64, 0f64, &[] as &[f64]), + Ida::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2431010() { + assert_eq!( + ( + 4.78307481509046f64, + 32.54389804704987f64, + 0f64, + &[] as &[f64] + ), + Ida::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2431011() { assert_eq!(Dactyl::id(), 2431011i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2431011() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Dactyl::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2431011() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Dactyl::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2431011() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Dactyl::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2431011() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Dactyl::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000001() { assert_eq!(Ceres::id(), 2000001i32) } @@ -402,6 +710,39 @@ mod tests { assert_eq!(Ceres::along_orbit_radius(), 487.3f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000001() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ceres::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000001() { + assert_eq!( + (5.0862035995768355f64, 0f64, 0f64, &[] as &[f64]), + Ceres::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000001() { + assert_eq!( + (1.165251621801494f64, 0f64, 0f64, &[] as &[f64]), + Ceres::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000001() { + assert_eq!( + ( + 2.9784043685283237f64, + 16.618208323400072f64, + 0f64, + &[] as &[f64] + ), + Ceres::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000002() { assert_eq!(Pallas::id(), 2000002i32) } @@ -410,6 +751,39 @@ mod tests { assert_eq!(Pallas::gravitational_parameter(), 13.665878145967422f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000002() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Pallas::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000002() { + assert_eq!( + (0.5759586531581288f64, 0f64, 0f64, &[] as &[f64]), + Pallas::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000002() { + assert_eq!( + (-0.05235987755982989f64, 0f64, 0f64, &[] as &[f64]), + Pallas::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000002() { + assert_eq!( + ( + 0.6632251157578453f64, + 19.299913700406368f64, + 0f64, + &[] as &[f64] + ), + Pallas::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000004() { assert_eq!(Vesta::id(), 2000004i32) } @@ -425,6 +799,39 @@ mod tests { assert_eq!(Vesta::along_orbit_radius(), 280f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000004() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Vesta::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000004() { + assert_eq!( + (5.393608440730596f64, 0f64, 0f64, &[] as &[f64]), + Vesta::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000004() { + assert_eq!( + (0.7371398095798051f64, 0f64, 0f64, &[] as &[f64]), + Vesta::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000004() { + assert_eq!( + ( + 4.980995152266617f64, + 28.22778495282912f64, + 0f64, + &[] as &[f64] + ), + Vesta::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000016() { assert_eq!(Psyche::id(), 2000016i32) } @@ -440,6 +847,34 @@ mod tests { assert_eq!(Psyche::along_orbit_radius(), 116f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000016() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Psyche::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000016() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Psyche::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000016() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Psyche::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000016() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Psyche::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000021() { assert_eq!(Lutetia::id(), 2000021i32) } @@ -451,10 +886,71 @@ mod tests { assert_eq!(Lutetia::along_orbit_radius(), 50.5f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000021() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Lutetia::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000021() { + assert_eq!( + (0.9075712110370514f64, 0f64, 0f64, &[] as &[f64]), + Lutetia::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000021() { + assert_eq!( + (0.20943951023931956f64, 0f64, 0f64, &[] as &[f64]), + Lutetia::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000021() { + assert_eq!( + ( + 1.6406094968746698f64, + 18.4612463429088f64, + 0f64, + &[] as &[f64] + ), + Lutetia::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000216() { assert_eq!(Kleopatra::id(), 2000216i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000216() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Kleopatra::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000216() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kleopatra::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000216() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kleopatra::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000216() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kleopatra::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000433() { assert_eq!(Eros::id(), 2000433i32) } @@ -470,6 +966,39 @@ mod tests { assert_eq!(Eros::along_orbit_radius(), 5.5f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000433() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Eros::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000433() { + assert_eq!( + (0.1980948701013564f64, 0f64, 0f64, &[] as &[f64]), + Eros::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000433() { + assert_eq!( + (0.30054569719342356f64, 0f64, 0f64, &[] as &[f64]), + Eros::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000433() { + assert_eq!( + ( + 5.690995091977911f64, + 28.612729617819042f64, + 0f64, + &[] as &[f64] + ), + Eros::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000511() { assert_eq!(Davida::id(), 2000511i32) } @@ -485,6 +1014,39 @@ mod tests { assert_eq!(Davida::along_orbit_radius(), 147f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000511() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Davida::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000511() { + assert_eq!( + (5.183627878423159f64, 0f64, 0f64, &[] as &[f64]), + Davida::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000511() { + assert_eq!( + (0.08726646259971647f64, 0f64, 0f64, &[] as &[f64]), + Davida::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000511() { + assert_eq!( + ( + 4.679227724596798f64, + 29.39866372732388f64, + 0f64, + &[] as &[f64] + ), + Davida::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2000253() { assert_eq!(Mathilde::id(), 2000253i32) } @@ -496,6 +1058,34 @@ mod tests { assert_eq!(Mathilde::along_orbit_radius(), 24f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2000253() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Mathilde::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2000253() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mathilde::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2000253() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mathilde::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2000253() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mathilde::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2002867() { assert_eq!(Steins::id(), 2002867i32) } @@ -507,14 +1097,103 @@ mod tests { assert_eq!(Steins::along_orbit_radius(), 2.73f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2002867() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Steins::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2002867() { + assert_eq!( + (1.5882496193148399f64, 0f64, 0f64, &[] as &[f64]), + Steins::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2002867() { + assert_eq!( + (-1.0821041362364843f64, 0f64, 0f64, &[] as &[f64]), + Steins::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2002867() { + assert_eq!( + ( + 5.615771401216954f64, + 24.925032561498227f64, + 0f64, + &[] as &[f64] + ), + Steins::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2009969() { assert_eq!(Braille::id(), 2009969i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2009969() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Braille::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2009969() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Braille::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2009969() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Braille::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2009969() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Braille::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2004015() { assert_eq!(WilsonHarrington::id(), 2004015i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2004015() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + WilsonHarrington::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2004015() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + WilsonHarrington::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2004015() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + WilsonHarrington::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2004015() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + WilsonHarrington::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2004179() { assert_eq!(Toutatis::id(), 2004179i32) } @@ -526,6 +1205,34 @@ mod tests { assert_eq!(Toutatis::along_orbit_radius(), 1.015f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2004179() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Toutatis::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2004179() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Toutatis::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2004179() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Toutatis::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2004179() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Toutatis::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2025143() { assert_eq!(Itokawa::id(), 2025143i32) } @@ -537,7 +1244,63 @@ mod tests { assert_eq!(Itokawa::along_orbit_radius(), 0.147f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_2025143() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Itokawa::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2025143() { + assert_eq!( + (1.5800465718304666f64, 0f64, 0f64, &[] as &[f64]), + Itokawa::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2025143() { + assert_eq!( + (-1.1571532940722404f64, 0f64, 0f64, &[] as &[f64]), + Itokawa::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2025143() { + assert_eq!( + (0f64, 12.429240095029979f64, 0f64, &[] as &[f64]), + Itokawa::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_2101955() { assert_eq!(Bennu::id(), 2101955i32) } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_2101955() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Bennu::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_2101955() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bennu::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_2101955() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bennu::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_2101955() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bennu::PRIME_MERIDIAN_COEFFICIENTS + ) + } } diff --git a/crates/lox_core/src/bodies/planets.rs b/crates/lox_core/src/bodies/planets.rs index 831ae599..affb8e29 100644 --- a/crates/lox_core/src/bodies/planets.rs +++ b/crates/lox_core/src/bodies/planets.rs @@ -8,7 +8,10 @@ // Auto-generated by `lox_gen`. Do not edit! -use super::{Ellipsoid, NaifId, PointMass, Spheroid}; +use super::{ + Ellipsoid, NaifId, NutationPrecessionCoefficients, PointMass, PolynomialCoefficients, + RotationalElements, Spheroid, +}; #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Mercury; impl NaifId for Mercury { @@ -34,6 +37,49 @@ impl Spheroid for Mercury { 2440.53f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Mercury { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( + &[ + 3.0506799486005773f64, + 6.101359897201155f64, + 2.868854538622146f64, + 5.919534488968053f64, + 2.6870291303890443f64, + ] as &[f64], + &[ + 2608.7878923240937f64, + 5217.575784648187f64, + 7826.363676972282f64, + 10435.151569296375f64, + 13043.939461620466f64, + ] as &[f64], + ); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.904554967017021f64, + -0.0005724679946541401f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.0719026867585775f64, + -0.00008552113334772214f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.752584270622286f64, + 0.10713722462923113f64, + 0f64, + &[ + 0.0001862714861495712f64, + -0.000019601618296223117f64, + -0.00000192684349420174f64, + -0.00000044313909708136026f64, + -0.00000009965830028887623f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Venus; impl NaifId for Venus { @@ -59,6 +105,21 @@ impl Spheroid for Venus { 6051.8f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Venus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (4.760560067739733f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (1.1721631256393916f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.7960174616949156f64, + -0.025854762996317376f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Earth; impl NaifId for Earth { @@ -84,6 +145,55 @@ impl Spheroid for Earth { 6378.1366f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Earth { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( + &[ + 2.1824469631563095f64, + 4.364876473020098f64, + 4.537995681525416f64, + 3.0826877913349846f64, + 6.240058221362807f64, + 5.438253962996612f64, + 2.355548718369107f64, + 4.827877416989155f64, + 0.5973563897875792f64, + 0.2641381289968218f64, + 2.0899096062155698f64, + 4.188109526378113f64, + 0.4372573375021394f64, + ] as &[f64], + &[ + -33.781483888495835f64, + -67.56296777699167f64, + 8294.909972626925f64, + 8504.459388212737f64, + 628.3019668015924f64, + 16833.15084472816f64, + 8328.69145651542f64, + 209.54947933396397f64, + 1114.6285779726247f64, + -101.3444516654875f64, + 2.301053255936537f64, + 104.77473966698199f64, + 8261.12848873843f64, + ] as &[f64], + ); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (0f64, -0.011187560505283653f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.5707963267948966f64, + -0.009721483933608416f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 3.3186912127896577f64, + 6.3003876824396166f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Mars; impl NaifId for Mars { @@ -109,6 +219,175 @@ impl Spheroid for Mars { 3396.19f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Mars { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( + &[ + 3.328804809897935f64, + 0f64, + 555.6129894920322f64, + 5.809517398292802f64, + 0f64, + 668.125936040531f64, + 3.3097152567180146f64, + 0.22186491448462606f64, + 11.523153020184504f64, + 4.032588225058434f64, + 0f64, + 23.047098122619843f64, + 3.8045796985836846f64, + 0f64, + 334.05316148477937f64, + 3.4730520762801462f64, + 0f64, + 668.1268926511307f64, + 4.357448194643978f64, + 0f64, + 1336.235189496269f64, + 1.3857704297725961f64, + 0f64, + 334.054984682245f64, + 0.751510868094019f64, + 0f64, + 1002.1811764929237f64, + 1.3871248750853138f64, + 0f64, + 0.008801023466045386f64, + 2.252727410236719f64, + 0f64, + 668.130317528175f64, + 0.9890544553471146f64, + 0f64, + 1336.2285297823557f64, + 1.8289772979888115f64, + 0f64, + 0.008801023466045386f64, + ] as &[f64], + &[ + 277.80594525842264f64, + 0.37470342287773584f64, + 0f64, + 334.05422022489097f64, + 6.892873571600945f64, + 0f64, + 719340.2120445863f64, + 2.120032883264378f64, + 0f64, + 11.536473384554899f64, + 4.387288948439982f64, + 0f64, + 668.1113614443373f64, + 3.424288764152381f64, + 0f64, + 334.0469780000094f64, + 3.9495523217086292f64, + 0f64, + 1002.1807129125305f64, + 4.645778664015252f64, + 0f64, + 0.008801023466045386f64, + 2.136869016190709f64, + 0f64, + 668.1273150051017f64, + 1.0064158213753553f64, + 0f64, + 1336.2354112473317f64, + 2.9029314796567682f64, + 0f64, + 334.05659172556966f64, + 0.6344650043848296f64, + 0f64, + 1002.1842799588599f64, + 1.1757236496733376f64, + 0f64, + 1670.2877519268022f64, + 1.664898441223219f64, + 0f64, + ] as &[f64], + ); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.5373921900749785f64, + -0.001907216743164288f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000001186823891356144f64, + 0.000004153883619746505f64, + 0.0000009075712110370513f64, + 0.00000015707963267948966f64, + 0.007313924403529878f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.9500266243444937f64, + -0.0010170216810942417f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000000890117918517108f64, + 0.000002460914245312005f64, + 0.0000005410520681182422f64, + 0.00000008726646259971648f64, + 0.02777297060138025f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 3.0726497570349416f64, + 6.12422041248567f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000002530727415391778f64, + 0.0000027401669256310974f64, + 0.0000006981317007977319f64, + 0.000000017453292519943295f64, + 0.000000017453292519943295f64, + 0.010202182516192693f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Jupiter; impl NaifId for Jupiter { @@ -134,6 +413,98 @@ impl Spheroid for Jupiter { 71492f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Jupiter { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ] as &[f64], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ] as &[f64], + ); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.6784701644349695f64, + -0.00011342894808711148f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000020420352248333656f64, + 0.000016371188383706813f64, + 0.000024993114888558796f64, + 0.0000005235987755982989f64, + 0.00003752457891787809f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.1256553894213766f64, + 0.00004211479485062318f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000008726646259971648f64, + 0.000007051130178057092f64, + 0.000010768681484805013f64, + -0.00000022689280275926283f64, + 0.00001616174887346749f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.973315703557842f64, + 15.193719457141356f64, + 0f64, + &[ + 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Saturn; impl NaifId for Saturn { @@ -159,6 +530,49 @@ impl Spheroid for Saturn { 60268f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Saturn { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ] as &[f64], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ] as &[f64], + ); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7084116900919784f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.457995697238503f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.6789330790257941f64, + 14.151023151973554f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Uranus; impl NaifId for Uranus { @@ -184,6 +598,61 @@ impl Spheroid for Uranus { 25559f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Uranus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ] as &[f64], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ] as &[f64], + ); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (4.4909241515991285f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (-0.2648537139901395f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 3.557155548489643f64, + -8.746893698960328f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Neptune; impl NaifId for Neptune { @@ -209,6 +678,94 @@ impl Spheroid for Neptune { 24764f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Neptune { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = ( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ] as &[f64], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ] as &[f64], + ); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7585200929167356f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.362939157550385f64, + 9.444670799468602f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Pluto; impl NaifId for Pluto { @@ -234,7 +791,23 @@ impl Spheroid for Pluto { 1188.3f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Pluto { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (2.3211657321048187f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (-0.10756464180041053f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.283024379324235f64, + 0.9837115923543857f64, + 0f64, + &[] as &[f64], + ); +} #[cfg(test)] +#[allow(clippy::approx_constant)] mod tests { use super::*; #[test] @@ -252,6 +825,70 @@ mod tests { assert_eq!(Mercury::equatorial_radius(), 2440.53f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_199() { + assert_eq!( + ( + &[ + 3.0506799486005773f64, + 6.101359897201155f64, + 2.868854538622146f64, + 5.919534488968053f64, + 2.6870291303890443f64 + ] as &[f64], + &[ + 2608.7878923240937f64, + 5217.575784648187f64, + 7826.363676972282f64, + 10435.151569296375f64, + 13043.939461620466f64 + ] as &[f64] + ), + Mercury::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_199() { + assert_eq!( + ( + 4.904554967017021f64, + -0.0005724679946541401f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64] as &[f64] + ), + Mercury::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_199() { + assert_eq!( + ( + 1.0719026867585775f64, + -0.00008552113334772214f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64] as &[f64] + ), + Mercury::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_199() { + assert_eq!( + ( + 5.752584270622286f64, + 0.10713722462923113f64, + 0f64, + &[ + 0.0001862714861495712f64, + -0.000019601618296223117f64, + -0.00000192684349420174f64, + -0.00000044313909708136026f64, + -0.00000009965830028887623f64 + ] as &[f64] + ), + Mercury::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_299() { assert_eq!(Venus::id(), 299i32) } @@ -266,6 +903,39 @@ mod tests { assert_eq!(Venus::equatorial_radius(), 6051.8f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_299() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Venus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_299() { + assert_eq!( + (4.760560067739733f64, 0f64, 0f64, &[] as &[f64]), + Venus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_299() { + assert_eq!( + (1.1721631256393916f64, 0f64, 0f64, &[] as &[f64]), + Venus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_299() { + assert_eq!( + ( + 2.7960174616949156f64, + -0.025854762996317376f64, + 0f64, + &[] as &[f64] + ), + Venus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_399() { assert_eq!(Earth::id(), 399i32) } @@ -280,6 +950,75 @@ mod tests { assert_eq!(Earth::equatorial_radius(), 6378.1366f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_399() { + assert_eq!( + ( + &[ + 2.1824469631563095f64, + 4.364876473020098f64, + 4.537995681525416f64, + 3.0826877913349846f64, + 6.240058221362807f64, + 5.438253962996612f64, + 2.355548718369107f64, + 4.827877416989155f64, + 0.5973563897875792f64, + 0.2641381289968218f64, + 2.0899096062155698f64, + 4.188109526378113f64, + 0.4372573375021394f64 + ] as &[f64], + &[ + -33.781483888495835f64, + -67.56296777699167f64, + 8294.909972626925f64, + 8504.459388212737f64, + 628.3019668015924f64, + 16833.15084472816f64, + 8328.69145651542f64, + 209.54947933396397f64, + 1114.6285779726247f64, + -101.3444516654875f64, + 2.301053255936537f64, + 104.77473966698199f64, + 8261.12848873843f64 + ] as &[f64] + ), + Earth::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_399() { + assert_eq!( + (0f64, -0.011187560505283653f64, 0f64, &[] as &[f64]), + Earth::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_399() { + assert_eq!( + ( + 1.5707963267948966f64, + -0.009721483933608416f64, + 0f64, + &[] as &[f64] + ), + Earth::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_399() { + assert_eq!( + ( + 3.3186912127896577f64, + 6.3003876824396166f64, + 0f64, + &[] as &[f64] + ), + Earth::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_499() { assert_eq!(Mars::id(), 499i32) } @@ -294,6 +1033,196 @@ mod tests { assert_eq!(Mars::equatorial_radius(), 3396.19f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_499() { + assert_eq!( + ( + &[ + 3.328804809897935f64, + 0f64, + 555.6129894920322f64, + 5.809517398292802f64, + 0f64, + 668.125936040531f64, + 3.3097152567180146f64, + 0.22186491448462606f64, + 11.523153020184504f64, + 4.032588225058434f64, + 0f64, + 23.047098122619843f64, + 3.8045796985836846f64, + 0f64, + 334.05316148477937f64, + 3.4730520762801462f64, + 0f64, + 668.1268926511307f64, + 4.357448194643978f64, + 0f64, + 1336.235189496269f64, + 1.3857704297725961f64, + 0f64, + 334.054984682245f64, + 0.751510868094019f64, + 0f64, + 1002.1811764929237f64, + 1.3871248750853138f64, + 0f64, + 0.008801023466045386f64, + 2.252727410236719f64, + 0f64, + 668.130317528175f64, + 0.9890544553471146f64, + 0f64, + 1336.2285297823557f64, + 1.8289772979888115f64, + 0f64, + 0.008801023466045386f64 + ] as &[f64], + &[ + 277.80594525842264f64, + 0.37470342287773584f64, + 0f64, + 334.05422022489097f64, + 6.892873571600945f64, + 0f64, + 719340.2120445863f64, + 2.120032883264378f64, + 0f64, + 11.536473384554899f64, + 4.387288948439982f64, + 0f64, + 668.1113614443373f64, + 3.424288764152381f64, + 0f64, + 334.0469780000094f64, + 3.9495523217086292f64, + 0f64, + 1002.1807129125305f64, + 4.645778664015252f64, + 0f64, + 0.008801023466045386f64, + 2.136869016190709f64, + 0f64, + 668.1273150051017f64, + 1.0064158213753553f64, + 0f64, + 1336.2354112473317f64, + 2.9029314796567682f64, + 0f64, + 334.05659172556966f64, + 0.6344650043848296f64, + 0f64, + 1002.1842799588599f64, + 1.1757236496733376f64, + 0f64, + 1670.2877519268022f64, + 1.664898441223219f64, + 0f64 + ] as &[f64] + ), + Mars::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_499() { + assert_eq!( + ( + 5.5373921900749785f64, + -0.001907216743164288f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000001186823891356144f64, + 0.000004153883619746505f64, + 0.0000009075712110370513f64, + 0.00000015707963267948966f64, + 0.007313924403529878f64 + ] as &[f64] + ), + Mars::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_499() { + assert_eq!( + ( + 0.9500266243444937f64, + -0.0010170216810942417f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000000890117918517108f64, + 0.000002460914245312005f64, + 0.0000005410520681182422f64, + 0.00000008726646259971648f64, + 0.02777297060138025f64 + ] as &[f64] + ), + Mars::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_499() { + assert_eq!( + ( + 3.0726497570349416f64, + 6.12422041248567f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000002530727415391778f64, + 0.0000027401669256310974f64, + 0.0000006981317007977319f64, + 0.000000017453292519943295f64, + 0.000000017453292519943295f64, + 0.010202182516192693f64 + ] as &[f64] + ), + Mars::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_599() { assert_eq!(Jupiter::id(), 599i32) } @@ -308,6 +1237,119 @@ mod tests { assert_eq!(Jupiter::equatorial_radius(), 71492f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_599() { + assert_eq!( + ( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64 + ] as &[f64], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64 + ] as &[f64] + ), + Jupiter::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_599() { + assert_eq!( + ( + 4.6784701644349695f64, + -0.00011342894808711148f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000020420352248333656f64, + 0.000016371188383706813f64, + 0.000024993114888558796f64, + 0.0000005235987755982989f64, + 0.00003752457891787809f64 + ] as &[f64] + ), + Jupiter::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_599() { + assert_eq!( + ( + 1.1256553894213766f64, + 0.00004211479485062318f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000008726646259971648f64, + 0.000007051130178057092f64, + 0.000010768681484805013f64, + -0.00000022689280275926283f64, + 0.00001616174887346749f64 + ] as &[f64] + ), + Jupiter::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_599() { + assert_eq!( + ( + 4.973315703557842f64, + 15.193719457141356f64, + 0f64, + &[ + 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, + 0f64, 0f64 + ] as &[f64] + ), + Jupiter::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_699() { assert_eq!(Saturn::id(), 699i32) } @@ -322,6 +1364,70 @@ mod tests { assert_eq!(Saturn::equatorial_radius(), 60268f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_699() { + assert_eq!( + ( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64 + ] as &[f64], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64 + ] as &[f64] + ), + Saturn::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_699() { + assert_eq!( + ( + 0.7084116900919784f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Saturn::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_699() { + assert_eq!( + ( + 1.457995697238503f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Saturn::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_699() { + assert_eq!( + ( + 0.6789330790257941f64, + 14.151023151973554f64, + 0f64, + &[] as &[f64] + ), + Saturn::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_799() { assert_eq!(Uranus::id(), 799i32) } @@ -336,6 +1442,80 @@ mod tests { assert_eq!(Uranus::equatorial_radius(), 25559f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_799() { + assert_eq!( + ( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64 + ] as &[f64], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64 + ] as &[f64] + ), + Uranus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_799() { + assert_eq!( + (4.4909241515991285f64, 0f64, 0f64, &[] as &[f64]), + Uranus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_799() { + assert_eq!( + (-0.2648537139901395f64, 0f64, 0f64, &[] as &[f64]), + Uranus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_799() { + assert_eq!( + ( + 3.557155548489643f64, + -8.746893698960328f64, + 0f64, + &[] as &[f64] + ), + Uranus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_899() { assert_eq!(Neptune::id(), 899i32) } @@ -350,6 +1530,115 @@ mod tests { assert_eq!(Neptune::equatorial_radius(), 24764f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_899() { + assert_eq!( + ( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64 + ] as &[f64], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64 + ] as &[f64] + ), + Neptune::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_899() { + assert_eq!( + ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Neptune::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_899() { + assert_eq!( + ( + 0.7585200929167356f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Neptune::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_899() { + assert_eq!( + ( + 4.362939157550385f64, + 9.444670799468602f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Neptune::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_999() { assert_eq!(Pluto::id(), 999i32) } @@ -363,4 +1652,37 @@ mod tests { assert_eq!(Pluto::mean_radius(), 1188.3f64); assert_eq!(Pluto::equatorial_radius(), 1188.3f64); } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_999() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Pluto::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_999() { + assert_eq!( + (2.3211657321048187f64, 0f64, 0f64, &[] as &[f64]), + Pluto::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_999() { + assert_eq!( + (-0.10756464180041053f64, 0f64, 0f64, &[] as &[f64]), + Pluto::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_999() { + assert_eq!( + ( + 5.283024379324235f64, + 0.9837115923543857f64, + 0f64, + &[] as &[f64] + ), + Pluto::PRIME_MERIDIAN_COEFFICIENTS + ) + } } diff --git a/crates/lox_core/src/bodies/satellites.rs b/crates/lox_core/src/bodies/satellites.rs index 289432cd..9c8ae3b4 100644 --- a/crates/lox_core/src/bodies/satellites.rs +++ b/crates/lox_core/src/bodies/satellites.rs @@ -8,7 +8,10 @@ // Auto-generated by `lox_gen`. Do not edit! -use super::{Ellipsoid, NaifId, PointMass, TriAxial}; +use super::{ + Ellipsoid, NaifId, NutationPrecessionCoefficients, PointMass, PolynomialCoefficients, + RotationalElements, TriAxial, +}; #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Moon; impl NaifId for Moon { @@ -37,6 +40,71 @@ impl TriAxial for Moon { 1737.4f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Moon { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.712299968592838f64, + 0.000054105206811824215f64, + 0f64, + &[ + -0.06769608569710406f64, + -0.0021013764194011725f64, + 0.0012217304763960308f64, + -0.0003001966313430247f64, + 0f64, + 0.0001256637061435917f64, + 0f64, + 0f64, + 0f64, + -0.00009075712110370513f64, + 0f64, + 0f64, + 0.00007504915783575618f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.161328121643011f64, + 0.00022689280275926284f64, + 0f64, + &[ + 0.02691123173650057f64, + 0.0004171336912266448f64, + -0.00048520153205442357f64, + 0.0001186823891356144f64, + 0f64, + -0.00005061454830783555f64, + 0.000015707963267948964f64, + 0f64, + 0f64, + 0.000013962634015954637f64, + 0f64, + 0f64, + -0.000015707963267948964f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.668832858644503f64, + 0.22997083313948888f64, + -0.000000000000024434609527920614f64, + &[ + 0.06215117466351808f64, + 0.00210835773640915f64, + -0.0011205013797803594f64, + 0.0002757620218151041f64, + 0.0004398229715025711f64, + -0.00011519173063162575f64, + -0.00008203047484373349f64, + -0.00008028514559173915f64, + 0.000048869219055841225f64, + 0.00009075712110370513f64, + 0.00006981317007977319f64, + 0.00003316125578789226f64, + -0.0000767944870877505f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Phobos; impl NaifId for Phobos { @@ -65,6 +133,45 @@ impl TriAxial for Phobos { 11.4f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Phobos { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.544399941316208f64, + -0.001892691938596266f64, + 0f64, + &[ + -0.031141630416121578f64, + 0.00038621064567151f64, + -0.00017946365486924213f64, + -0.00008300698656022431f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.9230395870244597f64, + -0.0010707081834185127f64, + 0f64, + &[ + -0.018765175709923063f64, + 0.00011669725164439606f64, + -0.00011322648989388013f64, + 0.000049144282945955534f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.6141419961301966f64, + 19.702057793318815f64, + 0.00000000016643698911600935f64, + &[ + 0.02485728795564792f64, + -0.0003968499982587423f64, + 0.0000716825922415843f64, + 0.00011029852554073445f64, + -0.019949113350295186f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Deimos; impl NaifId for Deimos { @@ -93,6 +200,62 @@ impl TriAxial for Deimos { 6f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Deimos { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.526708263174914f64, + -0.0018357397507085887f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.05396867424229676f64, + 0.004010877798556321f64, + 0.0011202666329959662f64, + 0.00044218562371099577f64, + 0.00013590791618817245f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.9339242922383507f64, + -0.0010435487658623783f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.032102888827614605f64, + 0.002500240004017941f64, + 0.00033360380402252296f64, + -0.0002587607695714273f64, + 0.00003358537079612689f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.3857797243489947f64, + 4.977013864082068f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.047814137677880446f64, + -0.006975837721323607f64, + -0.0011455047921115052f64, + -0.0005084039391304362f64, + 0.0002965593651818685f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Io; impl NaifId for Io { @@ -121,6 +284,44 @@ impl TriAxial for Io { 1819.4f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Io { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + 0f64, + 0.0016406094968746698f64, + 0.0004188790204786391f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.1257373675363425f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + 0f64, + 0.0006981317007977319f64, + 0.00019198621771937625f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 3.4974652880714365f64, + 3.551552235248627f64, + 0f64, + &[ + 0f64, + 0f64, + -0.0014835298641951802f64, + -0.0003839724354387525f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Europa; impl NaifId for Europa { @@ -149,6 +350,53 @@ impl TriAxial for Europa { 1560.3f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Europa { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.678878658746398f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.01895427567665842f64, + 0.0010471975511965976f64, + 0.0002617993877991494f64, + 0.00015707963267948965f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.125911900461542f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.008168140899333463f64, + 0.0004537856055185257f64, + 0.00012217304763960306f64, + 0.00003490658503988659f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.6287025031533974f64, + 1.7693227033738699f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.01710422666954443f64, + -0.0009424777960769379f64, + -0.0002443460952792061f64, + -0.00013962634015954637f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ganymede; impl NaifId for Ganymede { @@ -177,6 +425,50 @@ impl TriAxial for Ganymede { 2631.2f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ganymede { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.680973053848792f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.0006457718232379018f64, + 0.0075223690760955605f64, + 0.0015882496193148398f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.1269590980127384f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.00027925268031909274f64, + 0.003246312408709453f64, + 0.0006806784082777885f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.7690618815987814f64, + 0.8782079330731682f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.0005759586531581288f64, + -0.006789330790257942f64, + -0.0014311699866353504f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Callisto; impl NaifId for Callisto { @@ -205,6 +497,56 @@ impl TriAxial for Callisto { 2410.3f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Callisto { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.690048765959163f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.001186823891356144f64, + 0.010297442586766544f64, + 0f64, + 0.00017453292519943296f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.1314969540679238f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0005061454830783556f64, + 0.004433136300065597f64, + 0f64, + -0.00006981317007977319f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.529303941850484f64, + 0.37648622085811195f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0.001064650843716541f64, + -0.009302604913129777f64, + 0f64, + -0.00015707963267948965f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Amalthea; impl NaifId for Amalthea { @@ -233,6 +575,62 @@ impl TriAxial for Amalthea { 73f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Amalthea { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[ + -0.014660765716752368f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00017453292519943296f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + &[ + -0.006283185307179586f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.043404278095263f64, + 12.612298185680531f64, + 0f64, + &[ + 0.013264502315156905f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Himalia; impl NaifId for Himalia { @@ -261,6 +659,14 @@ impl TriAxial for Himalia { 85f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Himalia { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Elara; impl NaifId for Elara { @@ -284,6 +690,14 @@ impl TriAxial for Elara { 40f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Elara { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Pasiphae; impl NaifId for Pasiphae { @@ -307,6 +721,14 @@ impl TriAxial for Pasiphae { 18f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Pasiphae { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Sinope; impl NaifId for Sinope { @@ -330,6 +752,14 @@ impl TriAxial for Sinope { 14f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Sinope { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Lysithea; impl NaifId for Lysithea { @@ -353,6 +783,14 @@ impl TriAxial for Lysithea { 12f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Lysithea { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Carme; impl NaifId for Carme { @@ -376,6 +814,14 @@ impl TriAxial for Carme { 15f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Carme { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ananke; impl NaifId for Ananke { @@ -399,6 +845,14 @@ impl TriAxial for Ananke { 10f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ananke { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Leda; impl NaifId for Leda { @@ -422,6 +876,14 @@ impl TriAxial for Leda { 5f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Leda { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Thebe; impl NaifId for Thebe { @@ -450,6 +912,62 @@ impl TriAxial for Thebe { 49f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Thebe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + -0.03682644721708035f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + -0.0158824961931484f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00017453292519943296f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.1494001839707146f64, + 9.31482937374367f64, + 0f64, + &[ + 0f64, + 0.033335788713091695f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Adrastea; impl NaifId for Adrastea { @@ -478,6 +996,29 @@ impl TriAxial for Adrastea { 8f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Adrastea { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.5810201079889122f64, + 21.066100687650238f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Metis; impl NaifId for Metis { @@ -506,6 +1047,29 @@ impl TriAxial for Metis { 20f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Metis { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 6.040410008227175f64, + 21.3149160457997f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Callirrhoe; impl NaifId for Callirrhoe { @@ -513,6 +1077,14 @@ impl NaifId for Callirrhoe { 517i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Callirrhoe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Themisto; impl NaifId for Themisto { @@ -520,6 +1092,14 @@ impl NaifId for Themisto { 518i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Themisto { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Magaclite; impl NaifId for Magaclite { @@ -527,6 +1107,14 @@ impl NaifId for Magaclite { 519i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Magaclite { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Taygete; impl NaifId for Taygete { @@ -534,6 +1122,14 @@ impl NaifId for Taygete { 520i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Taygete { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Chaldene; impl NaifId for Chaldene { @@ -541,6 +1137,14 @@ impl NaifId for Chaldene { 521i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Chaldene { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Harpalyke; impl NaifId for Harpalyke { @@ -548,6 +1152,14 @@ impl NaifId for Harpalyke { 522i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Harpalyke { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Kalyke; impl NaifId for Kalyke { @@ -555,6 +1167,14 @@ impl NaifId for Kalyke { 523i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Kalyke { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Iocaste; impl NaifId for Iocaste { @@ -562,6 +1182,14 @@ impl NaifId for Iocaste { 524i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Iocaste { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Erinome; impl NaifId for Erinome { @@ -569,6 +1197,14 @@ impl NaifId for Erinome { 525i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Erinome { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Isonoe; impl NaifId for Isonoe { @@ -576,6 +1212,14 @@ impl NaifId for Isonoe { 526i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Isonoe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Praxidike; impl NaifId for Praxidike { @@ -583,6 +1227,14 @@ impl NaifId for Praxidike { 527i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Praxidike { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Autonoe; impl NaifId for Autonoe { @@ -590,6 +1242,14 @@ impl NaifId for Autonoe { 528i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Autonoe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Thyone; impl NaifId for Thyone { @@ -597,6 +1257,14 @@ impl NaifId for Thyone { 529i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Thyone { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Hermippe; impl NaifId for Hermippe { @@ -604,6 +1272,14 @@ impl NaifId for Hermippe { 530i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Hermippe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Aitne; impl NaifId for Aitne { @@ -611,6 +1287,14 @@ impl NaifId for Aitne { 531i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Aitne { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Eurydome; impl NaifId for Eurydome { @@ -618,6 +1302,14 @@ impl NaifId for Eurydome { 532i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Eurydome { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Euanthe; impl NaifId for Euanthe { @@ -625,6 +1317,14 @@ impl NaifId for Euanthe { 533i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Euanthe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Euporie; impl NaifId for Euporie { @@ -632,6 +1332,14 @@ impl NaifId for Euporie { 534i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Euporie { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Orthosie; impl NaifId for Orthosie { @@ -639,6 +1347,14 @@ impl NaifId for Orthosie { 535i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Orthosie { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Sponde; impl NaifId for Sponde { @@ -646,6 +1362,14 @@ impl NaifId for Sponde { 536i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Sponde { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Kale; impl NaifId for Kale { @@ -653,6 +1377,14 @@ impl NaifId for Kale { 537i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Kale { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Pasithee; impl NaifId for Pasithee { @@ -660,6 +1392,14 @@ impl NaifId for Pasithee { 538i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Pasithee { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Hegemone; impl NaifId for Hegemone { @@ -667,6 +1407,14 @@ impl NaifId for Hegemone { 539i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Hegemone { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Mneme; impl NaifId for Mneme { @@ -674,6 +1422,14 @@ impl NaifId for Mneme { 540i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Mneme { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Aoede; impl NaifId for Aoede { @@ -681,6 +1437,14 @@ impl NaifId for Aoede { 541i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Aoede { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Thelxinoe; impl NaifId for Thelxinoe { @@ -688,6 +1452,14 @@ impl NaifId for Thelxinoe { 542i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Thelxinoe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Arche; impl NaifId for Arche { @@ -695,6 +1467,14 @@ impl NaifId for Arche { 543i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Arche { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Kallichore; impl NaifId for Kallichore { @@ -702,6 +1482,14 @@ impl NaifId for Kallichore { 544i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Kallichore { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Helike; impl NaifId for Helike { @@ -709,6 +1497,14 @@ impl NaifId for Helike { 545i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Helike { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Carpo; impl NaifId for Carpo { @@ -716,6 +1512,14 @@ impl NaifId for Carpo { 546i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Carpo { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Eukelade; impl NaifId for Eukelade { @@ -723,6 +1527,14 @@ impl NaifId for Eukelade { 547i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Eukelade { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Cyllene; impl NaifId for Cyllene { @@ -730,6 +1542,14 @@ impl NaifId for Cyllene { 548i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Cyllene { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Kore; impl NaifId for Kore { @@ -737,6 +1557,14 @@ impl NaifId for Kore { 549i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Kore { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Herse; impl NaifId for Herse { @@ -744,6 +1572,14 @@ impl NaifId for Herse { 550i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Herse { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Dia; impl NaifId for Dia { @@ -751,6 +1587,14 @@ impl NaifId for Dia { 553i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Dia { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Mimas; impl NaifId for Mimas { @@ -779,6 +1623,56 @@ impl TriAxial for Mimas { 196.7f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Mimas { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + &[ + 0f64, + 0f64, + 0.2366666465704311f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[ + 0f64, + 0f64, + -0.026703537555513242f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.819974923700291f64, + 6.667062709440567f64, + 0f64, + &[ + 0f64, + 0f64, + -0.23527038316883564f64, + 0f64, + -0.7827801695194568f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Enceladus; impl NaifId for Enceladus { @@ -807,6 +1701,29 @@ impl TriAxial for Enceladus { 251.4f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Enceladus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.11030480872604163f64, + 4.585536698039173f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Tethys; impl NaifId for Tethys { @@ -835,6 +1752,56 @@ impl TriAxial for Tethys { 528.3f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Tethys { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.16859880574265224f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.019024088846738195f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.1562069680534925f64, + 3.328306379991881f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.16755160819145562f64, + 0.03892084231947355f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Dione; impl NaifId for Dione { @@ -863,6 +1830,29 @@ impl TriAxial for Dione { 561.3f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Dione { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 6.241297405131723f64, + 2.295717637805533f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Rhea; impl NaifId for Rhea { @@ -891,6 +1881,56 @@ impl TriAxial for Rhea { 763.1f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Rhea { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7047639519553103f64, + -0.0006283185307179586f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.054105206811824215f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.4582225900412622f64, + -0.00006981317007977319f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.006108652381980153f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.104316268989865f64, + 1.3908537151816638f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.05375614096142535f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Titan; impl NaifId for Titan { @@ -919,6 +1959,29 @@ impl TriAxial for Titan { 2574.78f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Titan { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.6891031125771652f64, + 0f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.456091543024577f64, + 0f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 3.2565313114798795f64, + 0.39404258030637335f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Hyperion; impl NaifId for Hyperion { @@ -947,6 +2010,14 @@ impl TriAxial for Hyperion { 133f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Hyperion { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Iapetus; impl NaifId for Iapetus { @@ -975,6 +2046,29 @@ impl TriAxial for Iapetus { 745.7f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Iapetus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.552939548145159f64, + -0.06892305216125608f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.3095205377713455f64, + -0.019949113350295186f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 6.199409503083858f64, + 0.07920229445458282f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Phoebe; impl NaifId for Phoebe { @@ -1003,6 +2097,21 @@ impl TriAxial for Phoebe { 108.5f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Phoebe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (6.229080100367762f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (1.3578661580515883f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 3.116808978211474f64, + 16.26016798998745f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Janus; impl NaifId for Janus { @@ -1031,6 +2140,56 @@ impl TriAxial for Janus { 93f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Janus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[ + 0f64, + -0.028326693759867967f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0004014257279586958f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[ + 0f64, + -0.003193952531149623f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000017453292519943296f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.0267771989482641f64, + 9.044924285944507f64, + 0f64, + &[ + 0f64, + 0.028152160834668535f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0004014257279586958f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Epimetheus; impl NaifId for Epimetheus { @@ -1059,6 +2218,56 @@ impl TriAxial for Epimetheus { 57.3f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Epimetheus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[ + -0.05503023131538121f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015009831567151233f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[ + -0.006213372137099813f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00008726646259971648f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.128999072835736f64, + 9.049370273103856f64, + 0f64, + &[ + 0.05468116546498235f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015009831567151233f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Helene; impl NaifId for Helene { @@ -1087,6 +2296,29 @@ impl TriAxial for Helene { 19.6f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Helene { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7129669994396837f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.4545573986120743f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.278151062488501f64, + 2.297157080652823f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Telesto; impl NaifId for Telesto { @@ -1110,6 +2342,29 @@ impl TriAxial for Telesto { 11.8f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Telesto { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.8815658051823358f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.4671237692264334f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.9927432785343747f64, + 3.328306811088206f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Calypso; impl NaifId for Calypso { @@ -1133,6 +2388,29 @@ impl TriAxial for Calypso { 9.3f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Calypso { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.6354743806511354f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.4842279958959779f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.679254934736495f64, + 3.327893239613983f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Atlas; impl NaifId for Atlas { @@ -1161,6 +2439,29 @@ impl TriAxial for Atlas { 17.8f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Atlas { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.4064599726497815f64, + 10.442409634437194f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Prometheus; impl NaifId for Prometheus { @@ -1189,6 +2490,29 @@ impl TriAxial for Prometheus { 41.6f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Prometheus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.1686180468560075f64, + 10.250126710744977f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Pandora; impl NaifId for Pandora { @@ -1217,6 +2541,29 @@ impl TriAxial for Pandora { 40.8f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Pandora { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.8434904173491615f64, + 9.997055714535051f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Pan; impl NaifId for Pan { @@ -1240,6 +2587,29 @@ impl TriAxial for Pan { 15.4f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Pan { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7086036763096978f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 1.457349925415265f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.8517206749732328f64, + 10.92652906235538f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ymir; impl NaifId for Ymir { @@ -1247,6 +2617,14 @@ impl NaifId for Ymir { 619i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ymir { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Paaliaq; impl NaifId for Paaliaq { @@ -1254,6 +2632,14 @@ impl NaifId for Paaliaq { 620i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Paaliaq { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Tarvos; impl NaifId for Tarvos { @@ -1261,6 +2647,14 @@ impl NaifId for Tarvos { 621i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Tarvos { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ijiraq; impl NaifId for Ijiraq { @@ -1268,6 +2662,14 @@ impl NaifId for Ijiraq { 622i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ijiraq { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Suttungr; impl NaifId for Suttungr { @@ -1275,6 +2677,14 @@ impl NaifId for Suttungr { 623i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Suttungr { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Kiviuq; impl NaifId for Kiviuq { @@ -1282,6 +2692,14 @@ impl NaifId for Kiviuq { 624i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Kiviuq { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Mundilfari; impl NaifId for Mundilfari { @@ -1289,6 +2707,14 @@ impl NaifId for Mundilfari { 625i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Mundilfari { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Albiorix; impl NaifId for Albiorix { @@ -1296,6 +2722,14 @@ impl NaifId for Albiorix { 626i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Albiorix { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Skathi; impl NaifId for Skathi { @@ -1303,6 +2737,14 @@ impl NaifId for Skathi { 627i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Skathi { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Erriapus; impl NaifId for Erriapus { @@ -1310,6 +2752,14 @@ impl NaifId for Erriapus { 628i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Erriapus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Siarnaq; impl NaifId for Siarnaq { @@ -1317,6 +2767,14 @@ impl NaifId for Siarnaq { 629i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Siarnaq { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Thrymr; impl NaifId for Thrymr { @@ -1324,6 +2782,14 @@ impl NaifId for Thrymr { 630i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Thrymr { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Narvi; impl NaifId for Narvi { @@ -1331,6 +2797,14 @@ impl NaifId for Narvi { 631i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Narvi { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Methone; impl NaifId for Methone { @@ -1354,6 +2828,14 @@ impl TriAxial for Methone { 1.29f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Methone { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Pallene; impl NaifId for Pallene { @@ -1377,6 +2859,14 @@ impl TriAxial for Pallene { 2.08f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Pallene { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Polydeuces; impl NaifId for Polydeuces { @@ -1400,6 +2890,14 @@ impl TriAxial for Polydeuces { 1.2f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Polydeuces { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Daphnis; impl NaifId for Daphnis { @@ -1423,6 +2921,14 @@ impl TriAxial for Daphnis { 4.5f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Daphnis { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Aegir; impl NaifId for Aegir { @@ -1430,6 +2936,14 @@ impl NaifId for Aegir { 636i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Aegir { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Bebhionn; impl NaifId for Bebhionn { @@ -1437,6 +2951,14 @@ impl NaifId for Bebhionn { 637i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Bebhionn { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Bergelmir; impl NaifId for Bergelmir { @@ -1444,6 +2966,14 @@ impl NaifId for Bergelmir { 638i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Bergelmir { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Bestla; impl NaifId for Bestla { @@ -1451,6 +2981,14 @@ impl NaifId for Bestla { 639i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Bestla { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Farbauti; impl NaifId for Farbauti { @@ -1458,6 +2996,14 @@ impl NaifId for Farbauti { 640i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Farbauti { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Fenrir; impl NaifId for Fenrir { @@ -1465,6 +3011,14 @@ impl NaifId for Fenrir { 641i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Fenrir { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Fornjot; impl NaifId for Fornjot { @@ -1472,6 +3026,14 @@ impl NaifId for Fornjot { 642i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Fornjot { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Hati; impl NaifId for Hati { @@ -1479,6 +3041,14 @@ impl NaifId for Hati { 643i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Hati { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Hyrrokkin; impl NaifId for Hyrrokkin { @@ -1486,6 +3056,14 @@ impl NaifId for Hyrrokkin { 644i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Hyrrokkin { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Kari; impl NaifId for Kari { @@ -1493,6 +3071,14 @@ impl NaifId for Kari { 645i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Kari { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Loge; impl NaifId for Loge { @@ -1500,6 +3086,14 @@ impl NaifId for Loge { 646i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Loge { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Skoll; impl NaifId for Skoll { @@ -1507,6 +3101,14 @@ impl NaifId for Skoll { 647i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Skoll { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Surtur; impl NaifId for Surtur { @@ -1514,6 +3116,14 @@ impl NaifId for Surtur { 648i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Surtur { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Anthe; impl NaifId for Anthe { @@ -1537,6 +3147,14 @@ impl TriAxial for Anthe { 0.5f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Anthe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Jarnsaxa; impl NaifId for Jarnsaxa { @@ -1544,6 +3162,14 @@ impl NaifId for Jarnsaxa { 650i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Jarnsaxa { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Greip; impl NaifId for Greip { @@ -1551,6 +3177,14 @@ impl NaifId for Greip { 651i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Greip { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Tarqeq; impl NaifId for Tarqeq { @@ -1558,6 +3192,14 @@ impl NaifId for Tarqeq { 652i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Tarqeq { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Aegaeon; impl NaifId for Aegaeon { @@ -1581,6 +3223,14 @@ impl TriAxial for Aegaeon { 0.25f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Aegaeon { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ariel; impl NaifId for Ariel { @@ -1609,6 +3259,71 @@ impl TriAxial for Ariel { 577.9f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ariel { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.005061454830783556f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.26354471705114374f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.7265533574655416f64, + -2.492952697630833f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0008726646259971648f64, + 0.0013962634015954637f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Umbriel; impl NaifId for Umbriel { @@ -1637,6 +3352,74 @@ impl TriAxial for Umbriel { 584.7f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Umbriel { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.003665191429188092f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.26354471705114374f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.003490658503988659f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.885828256779873f64, + -1.5161481881953498f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0.0010471975511965976f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Titania; impl NaifId for Titania { @@ -1665,6 +3448,77 @@ impl TriAxial for Titania { 788.9f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Titania { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.005061454830783556f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.26354471705114374f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.3568189605003917f64, + -0.7217186318332268f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0013962634015954637f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Oberon; impl NaifId for Oberon { @@ -1693,6 +3547,80 @@ impl TriAxial for Oberon { 761.4f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Oberon { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.26354471705114374f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.1181587903600161f64, + -0.4666921966546346f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Miranda; impl NaifId for Miranda { @@ -1721,6 +3649,86 @@ impl TriAxial for Miranda { 234.2f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Miranda { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.07696902001294993f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2631956512007449f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.07417649320975901f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.5358160803622591f64, + -4.445191100713563f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.02007128639793479f64, + -0.022165681500327987f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0.002617993877991494f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Cordelia; impl NaifId for Cordelia { @@ -1744,6 +3752,86 @@ impl TriAxial for Cordelia { 13f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Cordelia { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + -0.002617993877991494f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0.0024434609527920616f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.2286109218715593f64, + -18.753921879266084f64, + 0f64, + &[ + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ophelia; impl NaifId for Ophelia { @@ -1767,6 +3855,86 @@ impl TriAxial for Ophelia { 15f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ophelia { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.2750366799746087f64, + -16.692447910262292f64, + 0f64, + &[ + 0f64, + -0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Bianca; impl NaifId for Bianca { @@ -1790,6 +3958,86 @@ impl TriAxial for Bianca { 21f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Bianca { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + -0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.8406242291532198f64, + -14.458158751655587f64, + 0f64, + &[ + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Cressida; impl NaifId for Cressida { @@ -1813,6 +4061,86 @@ impl TriAxial for Cressida { 31f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Cressida { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.0325367854798453f64, + -13.553906388910956f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Desdemona; impl NaifId for Desdemona { @@ -1836,6 +4164,86 @@ impl TriAxial for Desdemona { 27f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Desdemona { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0029670597283903604f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.6594590527962085f64, + -13.265430289266899f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Juliet; impl NaifId for Juliet { @@ -1859,6 +4267,86 @@ impl TriAxial for Juliet { 42f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Juliet { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.2806681848340435f64, + -12.74309158902866f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Portia; impl NaifId for Portia { @@ -1882,6 +4370,86 @@ impl TriAxial for Portia { 54f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Portia { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 0.4368559117741807f64, + -12.243250601727652f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Rosalind; impl NaifId for Rosalind { @@ -1905,6 +4473,86 @@ impl TriAxial for Rosalind { 27f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Rosalind { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.005061454830783556f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.496041814530144f64, + -11.250935609538423f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0013962634015954637f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Belinda; impl NaifId for Belinda { @@ -1928,6 +4576,86 @@ impl TriAxial for Belinda { 33f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Belinda { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.191656392982332f64, + -10.076882135239488f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Puck; impl NaifId for Puck { @@ -1951,6 +4679,86 @@ impl TriAxial for Puck { 77f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Puck { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.005759586531581287f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0054105206811824215f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.5924384095196262f64, + -8.247467318113788f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Caliban; impl NaifId for Caliban { @@ -1958,6 +4766,14 @@ impl NaifId for Caliban { 716i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Caliban { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Sycorax; impl NaifId for Sycorax { @@ -1965,6 +4781,14 @@ impl NaifId for Sycorax { 717i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Sycorax { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Prospero; impl NaifId for Prospero { @@ -1972,6 +4796,14 @@ impl NaifId for Prospero { 718i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Prospero { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Setebos; impl NaifId for Setebos { @@ -1979,6 +4811,14 @@ impl NaifId for Setebos { 719i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Setebos { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Stephano; impl NaifId for Stephano { @@ -1986,6 +4826,14 @@ impl NaifId for Stephano { 720i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Stephano { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Trinculo; impl NaifId for Trinculo { @@ -1993,6 +4841,14 @@ impl NaifId for Trinculo { 721i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Trinculo { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Francisco; impl NaifId for Francisco { @@ -2000,6 +4856,14 @@ impl NaifId for Francisco { 722i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Francisco { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Margaret; impl NaifId for Margaret { @@ -2007,6 +4871,14 @@ impl NaifId for Margaret { 723i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Margaret { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Ferdinand; impl NaifId for Ferdinand { @@ -2014,6 +4886,14 @@ impl NaifId for Ferdinand { 724i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Ferdinand { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Perdita; impl NaifId for Perdita { @@ -2021,6 +4901,14 @@ impl NaifId for Perdita { 725i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Perdita { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Mab; impl NaifId for Mab { @@ -2028,6 +4916,14 @@ impl NaifId for Mab { 726i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Mab { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Cupid; impl NaifId for Cupid { @@ -2035,6 +4931,14 @@ impl NaifId for Cupid { 727i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Cupid { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Triton; impl NaifId for Triton { @@ -2063,6 +4967,83 @@ impl TriAxial for Triton { 1352.6f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Triton { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.5646140130201657f64, + 0f64, + -0.1096066770252439f64, + -0.03630284844148206f64, + -0.012915436464758038f64, + -0.004886921905584123f64, + -0.0019198621771937625f64, + -0.0012217304763960308f64, + -0.00034906585039886593f64, + -0.00017453292519943296f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7185520530460655f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.3935717463247213f64, + 0f64, + 0.03665191429188092f64, + 0.009599310885968814f64, + 0.0027925268031909274f64, + 0.0008726646259971648f64, + 0.00034906585039886593f64, + 0.00017453292519943296f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.175424830938785f64, + -1.069140942327404f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.3883357585687383f64, + 0f64, + 0.11746065865921838f64, + 0.03577924966588375f64, + 0.012915436464758038f64, + 0.004886921905584123f64, + 0.0019198621771937625f64, + 0.0008726646259971648f64, + 0.00034906585039886593f64, + 0.00017453292519943296f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Nereid; impl NaifId for Nereid { @@ -2086,6 +5067,14 @@ impl TriAxial for Nereid { 170f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Nereid { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Naiad; impl NaifId for Naiad { @@ -2114,6 +5103,83 @@ impl TriAxial for Naiad { 29f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Naiad { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + -0.11327186845443199f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004363323129985824f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7567747636647413f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + -0.08290313946973066f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.434183497616794f64, + 21.342656148360604f64, + 0f64, + &[ + -0.008377580409572781f64, + 0.07679448708775051f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00471238898038469f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Thalassa; impl NaifId for Thalassa { @@ -2142,6 +5208,83 @@ impl TriAxial for Thalassa { 40f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Thalassa { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + -0.004886921905584123f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7583455599915362f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + -0.003665191429188092f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.7812830345854127f64, + 20.171739891174827f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0.0033161255787892262f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Despina; impl NaifId for Despina { @@ -2170,6 +5313,83 @@ impl TriAxial for Despina { 74f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Despina { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7583455599915362f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + -0.0012217304763960308f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 5.34960869028782f64, + 18.77510290185297f64, + 0f64, + &[ + -0.008552113334772215f64, + 0f64, + 0f64, + 0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Galatea; impl NaifId for Galatea { @@ -2198,6 +5418,83 @@ impl TriAxial for Galatea { 79f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Galatea { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + -0.0012217304763960308f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7579964941411373f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + -0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 4.504520266472165f64, + 14.6548275586037f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Larissa; impl NaifId for Larissa { @@ -2226,6 +5523,83 @@ impl TriAxial for Larissa { 96f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Larissa { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00471238898038469f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7576474282907384f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.003490658503988659f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 3.1312952110030268f64, + 11.328119671568512f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0033161255787892262f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Proteus; impl NaifId for Proteus { @@ -2254,6 +5628,83 @@ impl TriAxial for Proteus { 208f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Proteus { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = ( + 5.22324685244343f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = ( + 0.7489207820307667f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.6297884555123048f64, + 5.598412754411688f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Halimede; impl NaifId for Halimede { @@ -2261,6 +5712,14 @@ impl NaifId for Halimede { 809i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Halimede { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Psamathe; impl NaifId for Psamathe { @@ -2268,6 +5727,14 @@ impl NaifId for Psamathe { 810i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Psamathe { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Sao; impl NaifId for Sao { @@ -2275,6 +5742,14 @@ impl NaifId for Sao { 811i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Sao { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Laomedeia; impl NaifId for Laomedeia { @@ -2282,6 +5757,14 @@ impl NaifId for Laomedeia { 812i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Laomedeia { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Neso; impl NaifId for Neso { @@ -2289,6 +5772,14 @@ impl NaifId for Neso { 813i32 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Neso { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Charon; impl NaifId for Charon { @@ -2317,6 +5808,21 @@ impl TriAxial for Charon { 606f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Charon { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (2.3211657321048187f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (-0.10756464180041053f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 2.1414317257344426f64, + 0.9837115923543857f64, + 0f64, + &[] as &[f64], + ); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Nix; impl NaifId for Nix { @@ -2329,6 +5835,14 @@ impl PointMass for Nix { 0.00304817564816976f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Nix { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Hydra; impl NaifId for Hydra { @@ -2341,6 +5855,14 @@ impl PointMass for Hydra { 0.003211039206155255f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Hydra { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Kerberos; impl NaifId for Kerberos { @@ -2353,6 +5875,14 @@ impl PointMass for Kerberos { 0.001110040850536676f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Kerberos { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Styx; impl NaifId for Styx { @@ -2365,7 +5895,16 @@ impl PointMass for Styx { 0f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Styx { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = (0f64, 0f64, 0f64, &[] as &[f64]); +} #[cfg(test)] +#[allow(clippy::approx_constant)] mod tests { use super::*; #[test] @@ -2384,6 +5923,91 @@ mod tests { assert_eq!(Moon::along_orbit_radius(), 1737.4f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_301() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Moon::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_301() { + assert_eq!( + ( + 4.712299968592838f64, + 0.000054105206811824215f64, + 0f64, + &[ + -0.06769608569710406f64, + -0.0021013764194011725f64, + 0.0012217304763960308f64, + -0.0003001966313430247f64, + 0f64, + 0.0001256637061435917f64, + 0f64, + 0f64, + 0f64, + -0.00009075712110370513f64, + 0f64, + 0f64, + 0.00007504915783575618f64 + ] as &[f64] + ), + Moon::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_301() { + assert_eq!( + ( + 1.161328121643011f64, + 0.00022689280275926284f64, + 0f64, + &[ + 0.02691123173650057f64, + 0.0004171336912266448f64, + -0.00048520153205442357f64, + 0.0001186823891356144f64, + 0f64, + -0.00005061454830783555f64, + 0.000015707963267948964f64, + 0f64, + 0f64, + 0.000013962634015954637f64, + 0f64, + 0f64, + -0.000015707963267948964f64 + ] as &[f64] + ), + Moon::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_301() { + assert_eq!( + ( + 0.668832858644503f64, + 0.22997083313948888f64, + -0.000000000000024434609527920614f64, + &[ + 0.06215117466351808f64, + 0.00210835773640915f64, + -0.0011205013797803594f64, + 0.0002757620218151041f64, + 0.0004398229715025711f64, + -0.00011519173063162575f64, + -0.00008203047484373349f64, + -0.00008028514559173915f64, + 0.000048869219055841225f64, + 0.00009075712110370513f64, + 0.00006981317007977319f64, + 0.00003316125578789226f64, + -0.0000767944870877505f64 + ] as &[f64] + ), + Moon::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_401() { assert_eq!(Phobos::id(), 401i32) } @@ -2399,6 +6023,65 @@ mod tests { assert_eq!(Phobos::along_orbit_radius(), 11.4f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_401() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Phobos::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_401() { + assert_eq!( + ( + 5.544399941316208f64, + -0.001892691938596266f64, + 0f64, + &[ + -0.031141630416121578f64, + 0.00038621064567151f64, + -0.00017946365486924213f64, + -0.00008300698656022431f64 + ] as &[f64] + ), + Phobos::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_401() { + assert_eq!( + ( + 0.9230395870244597f64, + -0.0010707081834185127f64, + 0f64, + &[ + -0.018765175709923063f64, + 0.00011669725164439606f64, + -0.00011322648989388013f64, + 0.000049144282945955534f64 + ] as &[f64] + ), + Phobos::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_401() { + assert_eq!( + ( + 0.6141419961301966f64, + 19.702057793318815f64, + 0.00000000016643698911600935f64, + &[ + 0.02485728795564792f64, + -0.0003968499982587423f64, + 0.0000716825922415843f64, + 0.00011029852554073445f64, + -0.019949113350295186f64 + ] as &[f64] + ), + Phobos::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_402() { assert_eq!(Deimos::id(), 402i32) } @@ -2414,6 +6097,82 @@ mod tests { assert_eq!(Deimos::along_orbit_radius(), 6f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_402() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Deimos::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_402() { + assert_eq!( + ( + 5.526708263174914f64, + -0.0018357397507085887f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.05396867424229676f64, + 0.004010877798556321f64, + 0.0011202666329959662f64, + 0.00044218562371099577f64, + 0.00013590791618817245f64 + ] as &[f64] + ), + Deimos::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_402() { + assert_eq!( + ( + 0.9339242922383507f64, + -0.0010435487658623783f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.032102888827614605f64, + 0.002500240004017941f64, + 0.00033360380402252296f64, + -0.0002587607695714273f64, + 0.00003358537079612689f64 + ] as &[f64] + ), + Deimos::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_402() { + assert_eq!( + ( + 1.3857797243489947f64, + 4.977013864082068f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.047814137677880446f64, + -0.006975837721323607f64, + -0.0011455047921115052f64, + -0.0005084039391304362f64, + 0.0002965593651818685f64 + ] as &[f64] + ), + Deimos::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_501() { assert_eq!(Io::id(), 501i32) } @@ -2429,6 +6188,64 @@ mod tests { assert_eq!(Io::along_orbit_radius(), 1819.4f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_501() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Io::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_501() { + assert_eq!( + ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + 0f64, + 0.0016406094968746698f64, + 0.0004188790204786391f64 + ] as &[f64] + ), + Io::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_501() { + assert_eq!( + ( + 1.1257373675363425f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + 0f64, + 0.0006981317007977319f64, + 0.00019198621771937625f64 + ] as &[f64] + ), + Io::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_501() { + assert_eq!( + ( + 3.4974652880714365f64, + 3.551552235248627f64, + 0f64, + &[ + 0f64, + 0f64, + -0.0014835298641951802f64, + -0.0003839724354387525f64 + ] as &[f64] + ), + Io::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_502() { assert_eq!(Europa::id(), 502i32) } @@ -2444,6 +6261,73 @@ mod tests { assert_eq!(Europa::along_orbit_radius(), 1560.3f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_502() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Europa::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_502() { + assert_eq!( + ( + 4.678878658746398f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.01895427567665842f64, + 0.0010471975511965976f64, + 0.0002617993877991494f64, + 0.00015707963267948965f64 + ] as &[f64] + ), + Europa::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_502() { + assert_eq!( + ( + 1.125911900461542f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.008168140899333463f64, + 0.0004537856055185257f64, + 0.00012217304763960306f64, + 0.00003490658503988659f64 + ] as &[f64] + ), + Europa::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_502() { + assert_eq!( + ( + 0.6287025031533974f64, + 1.7693227033738699f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.01710422666954443f64, + -0.0009424777960769379f64, + -0.0002443460952792061f64, + -0.00013962634015954637f64 + ] as &[f64] + ), + Europa::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_503() { assert_eq!(Ganymede::id(), 503i32) } @@ -2459,6 +6343,70 @@ mod tests { assert_eq!(Ganymede::along_orbit_radius(), 2631.2f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_503() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ganymede::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_503() { + assert_eq!( + ( + 4.680973053848792f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.0006457718232379018f64, + 0.0075223690760955605f64, + 0.0015882496193148398f64 + ] as &[f64] + ), + Ganymede::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_503() { + assert_eq!( + ( + 1.1269590980127384f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.00027925268031909274f64, + 0.003246312408709453f64, + 0.0006806784082777885f64 + ] as &[f64] + ), + Ganymede::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_503() { + assert_eq!( + ( + 0.7690618815987814f64, + 0.8782079330731682f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.0005759586531581288f64, + -0.006789330790257942f64, + -0.0014311699866353504f64 + ] as &[f64] + ), + Ganymede::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_504() { assert_eq!(Callisto::id(), 504i32) } @@ -2474,6 +6422,76 @@ mod tests { assert_eq!(Callisto::along_orbit_radius(), 2410.3f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_504() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Callisto::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_504() { + assert_eq!( + ( + 4.690048765959163f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.001186823891356144f64, + 0.010297442586766544f64, + 0f64, + 0.00017453292519943296f64 + ] as &[f64] + ), + Callisto::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_504() { + assert_eq!( + ( + 1.1314969540679238f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0005061454830783556f64, + 0.004433136300065597f64, + 0f64, + -0.00006981317007977319f64 + ] as &[f64] + ), + Callisto::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_504() { + assert_eq!( + ( + 4.529303941850484f64, + 0.37648622085811195f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0.001064650843716541f64, + -0.009302604913129777f64, + 0f64, + -0.00015707963267948965f64 + ] as &[f64] + ), + Callisto::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_505() { assert_eq!(Amalthea::id(), 505i32) } @@ -2489,6 +6507,82 @@ mod tests { assert_eq!(Amalthea::along_orbit_radius(), 73f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_505() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Amalthea::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_505() { + assert_eq!( + ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[ + -0.014660765716752368f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00017453292519943296f64, + 0f64 + ] as &[f64] + ), + Amalthea::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_505() { + assert_eq!( + ( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + &[ + -0.006283185307179586f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Amalthea::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_505() { + assert_eq!( + ( + 4.043404278095263f64, + 12.612298185680531f64, + 0f64, + &[ + 0.013264502315156905f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64 + ] as &[f64] + ), + Amalthea::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_506() { assert_eq!(Himalia::id(), 506i32) } @@ -2504,6 +6598,34 @@ mod tests { assert_eq!(Himalia::along_orbit_radius(), 85f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_506() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Himalia::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_506() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Himalia::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_506() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Himalia::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_506() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Himalia::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_507() { assert_eq!(Elara::id(), 507i32) } @@ -2515,6 +6637,34 @@ mod tests { assert_eq!(Elara::along_orbit_radius(), 40f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_507() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Elara::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_507() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Elara::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_507() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Elara::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_507() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Elara::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_508() { assert_eq!(Pasiphae::id(), 508i32) } @@ -2526,6 +6676,34 @@ mod tests { assert_eq!(Pasiphae::along_orbit_radius(), 18f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_508() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Pasiphae::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_508() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pasiphae::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_508() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pasiphae::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_508() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pasiphae::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_509() { assert_eq!(Sinope::id(), 509i32) } @@ -2537,17 +6715,73 @@ mod tests { assert_eq!(Sinope::along_orbit_radius(), 14f64); } #[test] - fn test_naif_id_510() { - assert_eq!(Lysithea::id(), 510i32) + fn test_rotational_elements_nutation_precession_coefficients_509() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Sinope::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_510() { + fn test_rotational_elements_right_ascension_coefficients_509() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sinope::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_509() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sinope::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_509() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sinope::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_510() { + assert_eq!(Lysithea::id(), 510i32) + } + #[test] + fn test_tri_axial_510() { assert_eq!(Lysithea::polar_radius(), 12f64); assert_eq!(Lysithea::mean_radius(), 12f64); assert_eq!(Lysithea::subplanetary_radius(), 12f64); assert_eq!(Lysithea::along_orbit_radius(), 12f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_510() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Lysithea::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_510() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Lysithea::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_510() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Lysithea::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_510() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Lysithea::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_511() { assert_eq!(Carme::id(), 511i32) } @@ -2559,6 +6793,34 @@ mod tests { assert_eq!(Carme::along_orbit_radius(), 15f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_511() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Carme::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_511() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Carme::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_511() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Carme::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_511() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Carme::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_512() { assert_eq!(Ananke::id(), 512i32) } @@ -2570,6 +6832,34 @@ mod tests { assert_eq!(Ananke::along_orbit_radius(), 10f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_512() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ananke::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_512() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ananke::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_512() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ananke::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_512() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ananke::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_513() { assert_eq!(Leda::id(), 513i32) } @@ -2581,6 +6871,34 @@ mod tests { assert_eq!(Leda::along_orbit_radius(), 5f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_513() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Leda::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_513() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Leda::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_513() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Leda::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_513() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Leda::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_514() { assert_eq!(Thebe::id(), 514i32) } @@ -2596,6 +6914,82 @@ mod tests { assert_eq!(Thebe::along_orbit_radius(), 49f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_514() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Thebe::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_514() { + assert_eq!( + ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[ + 0f64, + -0.03682644721708035f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64 + ] as &[f64] + ), + Thebe::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_514() { + assert_eq!( + ( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + &[ + 0f64, + -0.0158824961931484f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00017453292519943296f64 + ] as &[f64] + ), + Thebe::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_514() { + assert_eq!( + ( + 0.1494001839707146f64, + 9.31482937374367f64, + 0f64, + &[ + 0f64, + 0.033335788713091695f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64 + ] as &[f64] + ), + Thebe::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_515() { assert_eq!(Adrastea::id(), 515i32) } @@ -2611,6 +7005,49 @@ mod tests { assert_eq!(Adrastea::along_orbit_radius(), 8f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_515() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Adrastea::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_515() { + assert_eq!( + ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[] as &[f64] + ), + Adrastea::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_515() { + assert_eq!( + ( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + &[] as &[f64] + ), + Adrastea::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_515() { + assert_eq!( + ( + 0.5810201079889122f64, + 21.066100687650238f64, + 0f64, + &[] as &[f64] + ), + Adrastea::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_516() { assert_eq!(Metis::id(), 516i32) } @@ -2626,555 +7063,3302 @@ mod tests { assert_eq!(Metis::along_orbit_radius(), 20f64); } #[test] - fn test_naif_id_517() { - assert_eq!(Callirrhoe::id(), 517i32) + fn test_rotational_elements_nutation_precession_coefficients_516() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Metis::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_518() { - assert_eq!(Themisto::id(), 518i32) + fn test_rotational_elements_right_ascension_coefficients_516() { + assert_eq!( + ( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + &[] as &[f64] + ), + Metis::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_519() { - assert_eq!(Magaclite::id(), 519i32) + fn test_rotational_elements_declination_coefficients_516() { + assert_eq!( + ( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + &[] as &[f64] + ), + Metis::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_520() { - assert_eq!(Taygete::id(), 520i32) + fn test_rotational_elements_prime_meridian_coefficients_516() { + assert_eq!( + ( + 6.040410008227175f64, + 21.3149160457997f64, + 0f64, + &[] as &[f64] + ), + Metis::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_521() { - assert_eq!(Chaldene::id(), 521i32) + fn test_naif_id_517() { + assert_eq!(Callirrhoe::id(), 517i32) } #[test] - fn test_naif_id_522() { - assert_eq!(Harpalyke::id(), 522i32) + fn test_rotational_elements_nutation_precession_coefficients_517() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Callirrhoe::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_523() { - assert_eq!(Kalyke::id(), 523i32) + fn test_rotational_elements_right_ascension_coefficients_517() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Callirrhoe::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_524() { - assert_eq!(Iocaste::id(), 524i32) + fn test_rotational_elements_declination_coefficients_517() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Callirrhoe::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_525() { - assert_eq!(Erinome::id(), 525i32) + fn test_rotational_elements_prime_meridian_coefficients_517() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Callirrhoe::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_526() { - assert_eq!(Isonoe::id(), 526i32) + fn test_naif_id_518() { + assert_eq!(Themisto::id(), 518i32) } #[test] - fn test_naif_id_527() { - assert_eq!(Praxidike::id(), 527i32) + fn test_rotational_elements_nutation_precession_coefficients_518() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Themisto::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_528() { - assert_eq!(Autonoe::id(), 528i32) + fn test_rotational_elements_right_ascension_coefficients_518() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Themisto::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_529() { - assert_eq!(Thyone::id(), 529i32) + fn test_rotational_elements_declination_coefficients_518() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Themisto::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_530() { - assert_eq!(Hermippe::id(), 530i32) + fn test_rotational_elements_prime_meridian_coefficients_518() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Themisto::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_531() { - assert_eq!(Aitne::id(), 531i32) + fn test_naif_id_519() { + assert_eq!(Magaclite::id(), 519i32) } #[test] - fn test_naif_id_532() { - assert_eq!(Eurydome::id(), 532i32) + fn test_rotational_elements_nutation_precession_coefficients_519() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Magaclite::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_533() { - assert_eq!(Euanthe::id(), 533i32) + fn test_rotational_elements_right_ascension_coefficients_519() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Magaclite::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_534() { - assert_eq!(Euporie::id(), 534i32) + fn test_rotational_elements_declination_coefficients_519() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Magaclite::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_535() { - assert_eq!(Orthosie::id(), 535i32) + fn test_rotational_elements_prime_meridian_coefficients_519() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Magaclite::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_536() { - assert_eq!(Sponde::id(), 536i32) + fn test_naif_id_520() { + assert_eq!(Taygete::id(), 520i32) } #[test] - fn test_naif_id_537() { - assert_eq!(Kale::id(), 537i32) + fn test_rotational_elements_nutation_precession_coefficients_520() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Taygete::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_538() { - assert_eq!(Pasithee::id(), 538i32) + fn test_rotational_elements_right_ascension_coefficients_520() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Taygete::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_539() { - assert_eq!(Hegemone::id(), 539i32) + fn test_rotational_elements_declination_coefficients_520() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Taygete::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_540() { - assert_eq!(Mneme::id(), 540i32) + fn test_rotational_elements_prime_meridian_coefficients_520() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Taygete::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_541() { - assert_eq!(Aoede::id(), 541i32) + fn test_naif_id_521() { + assert_eq!(Chaldene::id(), 521i32) } #[test] - fn test_naif_id_542() { - assert_eq!(Thelxinoe::id(), 542i32) + fn test_rotational_elements_nutation_precession_coefficients_521() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Chaldene::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_543() { - assert_eq!(Arche::id(), 543i32) + fn test_rotational_elements_right_ascension_coefficients_521() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Chaldene::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_544() { - assert_eq!(Kallichore::id(), 544i32) + fn test_rotational_elements_declination_coefficients_521() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Chaldene::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_545() { - assert_eq!(Helike::id(), 545i32) + fn test_rotational_elements_prime_meridian_coefficients_521() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Chaldene::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_546() { - assert_eq!(Carpo::id(), 546i32) + fn test_naif_id_522() { + assert_eq!(Harpalyke::id(), 522i32) } #[test] - fn test_naif_id_547() { - assert_eq!(Eukelade::id(), 547i32) + fn test_rotational_elements_nutation_precession_coefficients_522() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Harpalyke::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_548() { - assert_eq!(Cyllene::id(), 548i32) + fn test_rotational_elements_right_ascension_coefficients_522() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Harpalyke::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_549() { - assert_eq!(Kore::id(), 549i32) + fn test_rotational_elements_declination_coefficients_522() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Harpalyke::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_550() { - assert_eq!(Herse::id(), 550i32) + fn test_rotational_elements_prime_meridian_coefficients_522() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Harpalyke::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_553() { - assert_eq!(Dia::id(), 553i32) + fn test_naif_id_523() { + assert_eq!(Kalyke::id(), 523i32) } #[test] - fn test_naif_id_601() { - assert_eq!(Mimas::id(), 601i32) + fn test_rotational_elements_nutation_precession_coefficients_523() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Kalyke::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_point_mass_601() { - assert_eq!(Mimas::gravitational_parameter(), 2.503488768152587f64); + fn test_rotational_elements_right_ascension_coefficients_523() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kalyke::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_601() { - assert_eq!(Mimas::polar_radius(), 190.6f64); - assert_eq!(Mimas::mean_radius(), 198.36666666666667f64); - assert_eq!(Mimas::subplanetary_radius(), 207.8f64); - assert_eq!(Mimas::along_orbit_radius(), 196.7f64); + fn test_rotational_elements_declination_coefficients_523() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kalyke::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_602() { - assert_eq!(Enceladus::id(), 602i32) + fn test_rotational_elements_prime_meridian_coefficients_523() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kalyke::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_point_mass_602() { - assert_eq!(Enceladus::gravitational_parameter(), 7.210366688598896f64); + fn test_naif_id_524() { + assert_eq!(Iocaste::id(), 524i32) } #[test] - fn test_tri_axial_602() { - assert_eq!(Enceladus::polar_radius(), 248.3f64); - assert_eq!(Enceladus::mean_radius(), 252.1f64); - assert_eq!(Enceladus::subplanetary_radius(), 256.6f64); - assert_eq!(Enceladus::along_orbit_radius(), 251.4f64); + fn test_rotational_elements_nutation_precession_coefficients_524() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Iocaste::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_603() { - assert_eq!(Tethys::id(), 603i32) + fn test_rotational_elements_right_ascension_coefficients_524() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Iocaste::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_point_mass_603() { - assert_eq!(Tethys::gravitational_parameter(), 41.21352885489587f64); + fn test_rotational_elements_declination_coefficients_524() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Iocaste::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_603() { - assert_eq!(Tethys::polar_radius(), 526.3f64); - assert_eq!(Tethys::mean_radius(), 530.9999999999999f64); - assert_eq!(Tethys::subplanetary_radius(), 538.4f64); - assert_eq!(Tethys::along_orbit_radius(), 528.3f64); + fn test_rotational_elements_prime_meridian_coefficients_524() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Iocaste::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_604() { - assert_eq!(Dione::id(), 604i32) + fn test_naif_id_525() { + assert_eq!(Erinome::id(), 525i32) } #[test] - fn test_point_mass_604() { - assert_eq!(Dione::gravitational_parameter(), 73.11607172482067f64); + fn test_rotational_elements_nutation_precession_coefficients_525() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Erinome::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_604() { - assert_eq!(Dione::polar_radius(), 559.6f64); - assert_eq!(Dione::mean_radius(), 561.4333333333333f64); - assert_eq!(Dione::subplanetary_radius(), 563.4f64); - assert_eq!(Dione::along_orbit_radius(), 561.3f64); + fn test_rotational_elements_right_ascension_coefficients_525() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Erinome::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_605() { - assert_eq!(Rhea::id(), 605i32) + fn test_rotational_elements_declination_coefficients_525() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Erinome::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_point_mass_605() { - assert_eq!(Rhea::gravitational_parameter(), 153.9417519146563f64); + fn test_rotational_elements_prime_meridian_coefficients_525() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Erinome::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_tri_axial_605() { - assert_eq!(Rhea::polar_radius(), 762.4f64); - assert_eq!(Rhea::mean_radius(), 763.5f64); - assert_eq!(Rhea::subplanetary_radius(), 765f64); - assert_eq!(Rhea::along_orbit_radius(), 763.1f64); - } + fn test_naif_id_526() { + assert_eq!(Isonoe::id(), 526i32) + } #[test] - fn test_naif_id_606() { - assert_eq!(Titan::id(), 606i32) + fn test_rotational_elements_nutation_precession_coefficients_526() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Isonoe::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_point_mass_606() { - assert_eq!(Titan::gravitational_parameter(), 8978.137095521046f64); + fn test_rotational_elements_right_ascension_coefficients_526() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Isonoe::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_606() { - assert_eq!(Titan::polar_radius(), 2574.47f64); - assert_eq!(Titan::mean_radius(), 2574.7999999999997f64); - assert_eq!(Titan::subplanetary_radius(), 2575.15f64); - assert_eq!(Titan::along_orbit_radius(), 2574.78f64); + fn test_rotational_elements_declination_coefficients_526() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Isonoe::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_607() { - assert_eq!(Hyperion::id(), 607i32) + fn test_rotational_elements_prime_meridian_coefficients_526() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Isonoe::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_point_mass_607() { - assert_eq!(Hyperion::gravitational_parameter(), 0.3704913747932265f64); + fn test_naif_id_527() { + assert_eq!(Praxidike::id(), 527i32) } #[test] - fn test_tri_axial_607() { - assert_eq!(Hyperion::polar_radius(), 102.7f64); - assert_eq!(Hyperion::mean_radius(), 138.6f64); - assert_eq!(Hyperion::subplanetary_radius(), 180.1f64); - assert_eq!(Hyperion::along_orbit_radius(), 133f64); + fn test_rotational_elements_nutation_precession_coefficients_527() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Praxidike::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_608() { - assert_eq!(Iapetus::id(), 608i32) + fn test_rotational_elements_right_ascension_coefficients_527() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Praxidike::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_point_mass_608() { - assert_eq!(Iapetus::gravitational_parameter(), 120.5151060137642f64); + fn test_rotational_elements_declination_coefficients_527() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Praxidike::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_608() { - assert_eq!(Iapetus::polar_radius(), 712.1f64); - assert_eq!(Iapetus::mean_radius(), 734.5f64); - assert_eq!(Iapetus::subplanetary_radius(), 745.7f64); - assert_eq!(Iapetus::along_orbit_radius(), 745.7f64); + fn test_rotational_elements_prime_meridian_coefficients_527() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Praxidike::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_609() { - assert_eq!(Phoebe::id(), 609i32) + fn test_naif_id_528() { + assert_eq!(Autonoe::id(), 528i32) } #[test] - fn test_point_mass_609() { - assert_eq!(Phoebe::gravitational_parameter(), 0.5547860052791678f64); + fn test_rotational_elements_nutation_precession_coefficients_528() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Autonoe::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_609() { - assert_eq!(Phoebe::polar_radius(), 101.8f64); - assert_eq!(Phoebe::mean_radius(), 106.56666666666666f64); - assert_eq!(Phoebe::subplanetary_radius(), 109.4f64); - assert_eq!(Phoebe::along_orbit_radius(), 108.5f64); + fn test_rotational_elements_right_ascension_coefficients_528() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Autonoe::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_610() { - assert_eq!(Janus::id(), 610i32) + fn test_rotational_elements_declination_coefficients_528() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Autonoe::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_point_mass_610() { - assert_eq!(Janus::gravitational_parameter(), 0.1265765099012197f64); + fn test_rotational_elements_prime_meridian_coefficients_528() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Autonoe::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_tri_axial_610() { - assert_eq!(Janus::polar_radius(), 76.3f64); - assert_eq!(Janus::mean_radius(), 90.33333333333333f64); - assert_eq!(Janus::subplanetary_radius(), 101.7f64); - assert_eq!(Janus::along_orbit_radius(), 93f64); + fn test_naif_id_529() { + assert_eq!(Thyone::id(), 529i32) } #[test] - fn test_naif_id_611() { - assert_eq!(Epimetheus::id(), 611i32) + fn test_rotational_elements_nutation_precession_coefficients_529() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Thyone::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_point_mass_611() { + fn test_rotational_elements_right_ascension_coefficients_529() { assert_eq!( - Epimetheus::gravitational_parameter(), - 0.03512333288208074f64 - ); + (0f64, 0f64, 0f64, &[] as &[f64]), + Thyone::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_611() { - assert_eq!(Epimetheus::polar_radius(), 53f64); - assert_eq!(Epimetheus::mean_radius(), 58.4f64); - assert_eq!(Epimetheus::subplanetary_radius(), 64.9f64); - assert_eq!(Epimetheus::along_orbit_radius(), 57.3f64); + fn test_rotational_elements_declination_coefficients_529() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Thyone::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_612() { - assert_eq!(Helene::id(), 612i32) + fn test_rotational_elements_prime_meridian_coefficients_529() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Thyone::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_point_mass_612() { - assert_eq!(Helene::gravitational_parameter(), 0.0004757419551776972f64); + fn test_naif_id_530() { + assert_eq!(Hermippe::id(), 530i32) } #[test] - fn test_tri_axial_612() { - assert_eq!(Helene::polar_radius(), 13.3f64); - assert_eq!(Helene::mean_radius(), 18.46666666666667f64); - assert_eq!(Helene::subplanetary_radius(), 22.5f64); - assert_eq!(Helene::along_orbit_radius(), 19.6f64); + fn test_rotational_elements_nutation_precession_coefficients_530() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Hermippe::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_613() { - assert_eq!(Telesto::id(), 613i32) + fn test_rotational_elements_right_ascension_coefficients_530() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hermippe::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_613() { - assert_eq!(Telesto::polar_radius(), 9.8f64); - assert_eq!(Telesto::mean_radius(), 12.633333333333335f64); - assert_eq!(Telesto::subplanetary_radius(), 16.3f64); - assert_eq!(Telesto::along_orbit_radius(), 11.8f64); + fn test_rotational_elements_declination_coefficients_530() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hermippe::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_614() { - assert_eq!(Calypso::id(), 614i32) + fn test_rotational_elements_prime_meridian_coefficients_530() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hermippe::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_tri_axial_614() { - assert_eq!(Calypso::polar_radius(), 6.3f64); - assert_eq!(Calypso::mean_radius(), 10.3f64); - assert_eq!(Calypso::subplanetary_radius(), 15.3f64); - assert_eq!(Calypso::along_orbit_radius(), 9.3f64); + fn test_naif_id_531() { + assert_eq!(Aitne::id(), 531i32) } #[test] - fn test_naif_id_615() { - assert_eq!(Atlas::id(), 615i32) + fn test_rotational_elements_nutation_precession_coefficients_531() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Aitne::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_point_mass_615() { - assert_eq!(Atlas::gravitational_parameter(), 0.0003718871247516475f64); + fn test_rotational_elements_right_ascension_coefficients_531() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aitne::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_615() { - assert_eq!(Atlas::polar_radius(), 9.4f64); - assert_eq!(Atlas::mean_radius(), 15.899999999999999f64); - assert_eq!(Atlas::subplanetary_radius(), 20.5f64); - assert_eq!(Atlas::along_orbit_radius(), 17.8f64); + fn test_rotational_elements_declination_coefficients_531() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aitne::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_616() { - assert_eq!(Prometheus::id(), 616i32) + fn test_rotational_elements_prime_meridian_coefficients_531() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aitne::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_point_mass_616() { - assert_eq!(Prometheus::gravitational_parameter(), 0.0107520800100761f64); + fn test_naif_id_532() { + assert_eq!(Eurydome::id(), 532i32) } #[test] - fn test_tri_axial_616() { - assert_eq!(Prometheus::polar_radius(), 28.2f64); - assert_eq!(Prometheus::mean_radius(), 46f64); - assert_eq!(Prometheus::subplanetary_radius(), 68.2f64); - assert_eq!(Prometheus::along_orbit_radius(), 41.6f64); + fn test_rotational_elements_nutation_precession_coefficients_532() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Eurydome::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_617() { - assert_eq!(Pandora::id(), 617i32) + fn test_rotational_elements_right_ascension_coefficients_532() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Eurydome::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_point_mass_617() { - assert_eq!(Pandora::gravitational_parameter(), 0.009290325122028795f64); + fn test_rotational_elements_declination_coefficients_532() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Eurydome::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_617() { - assert_eq!(Pandora::polar_radius(), 31.5f64); - assert_eq!(Pandora::mean_radius(), 41.5f64); - assert_eq!(Pandora::subplanetary_radius(), 52.2f64); - assert_eq!(Pandora::along_orbit_radius(), 40.8f64); + fn test_rotational_elements_prime_meridian_coefficients_532() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Eurydome::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_618() { - assert_eq!(Pan::id(), 618i32) + fn test_naif_id_533() { + assert_eq!(Euanthe::id(), 533i32) } #[test] - fn test_tri_axial_618() { - assert_eq!(Pan::polar_radius(), 10.4f64); - assert_eq!(Pan::mean_radius(), 14.333333333333334f64); - assert_eq!(Pan::subplanetary_radius(), 17.2f64); - assert_eq!(Pan::along_orbit_radius(), 15.4f64); + fn test_rotational_elements_nutation_precession_coefficients_533() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Euanthe::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_619() { - assert_eq!(Ymir::id(), 619i32) + fn test_rotational_elements_right_ascension_coefficients_533() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Euanthe::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_620() { - assert_eq!(Paaliaq::id(), 620i32) + fn test_rotational_elements_declination_coefficients_533() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Euanthe::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_621() { - assert_eq!(Tarvos::id(), 621i32) + fn test_rotational_elements_prime_meridian_coefficients_533() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Euanthe::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_622() { - assert_eq!(Ijiraq::id(), 622i32) + fn test_naif_id_534() { + assert_eq!(Euporie::id(), 534i32) } #[test] - fn test_naif_id_623() { - assert_eq!(Suttungr::id(), 623i32) + fn test_rotational_elements_nutation_precession_coefficients_534() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Euporie::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_624() { - assert_eq!(Kiviuq::id(), 624i32) + fn test_rotational_elements_right_ascension_coefficients_534() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Euporie::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_625() { - assert_eq!(Mundilfari::id(), 625i32) + fn test_rotational_elements_declination_coefficients_534() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Euporie::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_626() { - assert_eq!(Albiorix::id(), 626i32) + fn test_rotational_elements_prime_meridian_coefficients_534() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Euporie::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_627() { - assert_eq!(Skathi::id(), 627i32) + fn test_naif_id_535() { + assert_eq!(Orthosie::id(), 535i32) } #[test] - fn test_naif_id_628() { - assert_eq!(Erriapus::id(), 628i32) + fn test_rotational_elements_nutation_precession_coefficients_535() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Orthosie::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_629() { - assert_eq!(Siarnaq::id(), 629i32) + fn test_rotational_elements_right_ascension_coefficients_535() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Orthosie::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_630() { - assert_eq!(Thrymr::id(), 630i32) + fn test_rotational_elements_declination_coefficients_535() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Orthosie::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_631() { - assert_eq!(Narvi::id(), 631i32) + fn test_rotational_elements_prime_meridian_coefficients_535() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Orthosie::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_632() { - assert_eq!(Methone::id(), 632i32) + fn test_naif_id_536() { + assert_eq!(Sponde::id(), 536i32) } #[test] - fn test_tri_axial_632() { - assert_eq!(Methone::polar_radius(), 1.21f64); - assert_eq!(Methone::mean_radius(), 1.4799999999999998f64); - assert_eq!(Methone::subplanetary_radius(), 1.94f64); - assert_eq!(Methone::along_orbit_radius(), 1.29f64); + fn test_rotational_elements_nutation_precession_coefficients_536() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Sponde::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_633() { - assert_eq!(Pallene::id(), 633i32) + fn test_rotational_elements_right_ascension_coefficients_536() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sponde::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_633() { - assert_eq!(Pallene::polar_radius(), 1.8f64); - assert_eq!(Pallene::mean_radius(), 2.2533333333333334f64); - assert_eq!(Pallene::subplanetary_radius(), 2.88f64); - assert_eq!(Pallene::along_orbit_radius(), 2.08f64); + fn test_rotational_elements_declination_coefficients_536() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sponde::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_634() { - assert_eq!(Polydeuces::id(), 634i32) + fn test_rotational_elements_prime_meridian_coefficients_536() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sponde::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_tri_axial_634() { - assert_eq!(Polydeuces::polar_radius(), 1f64); - assert_eq!(Polydeuces::mean_radius(), 1.2333333333333334f64); - assert_eq!(Polydeuces::subplanetary_radius(), 1.5f64); - assert_eq!(Polydeuces::along_orbit_radius(), 1.2f64); + fn test_naif_id_537() { + assert_eq!(Kale::id(), 537i32) } #[test] - fn test_naif_id_635() { - assert_eq!(Daphnis::id(), 635i32) + fn test_rotational_elements_nutation_precession_coefficients_537() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Kale::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_635() { - assert_eq!(Daphnis::polar_radius(), 2.8f64); - assert_eq!(Daphnis::mean_radius(), 3.9666666666666663f64); - assert_eq!(Daphnis::subplanetary_radius(), 4.6f64); - assert_eq!(Daphnis::along_orbit_radius(), 4.5f64); + fn test_rotational_elements_right_ascension_coefficients_537() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kale::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_636() { - assert_eq!(Aegir::id(), 636i32) + fn test_rotational_elements_declination_coefficients_537() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kale::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_637() { - assert_eq!(Bebhionn::id(), 637i32) + fn test_rotational_elements_prime_meridian_coefficients_537() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kale::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_638() { - assert_eq!(Bergelmir::id(), 638i32) + fn test_naif_id_538() { + assert_eq!(Pasithee::id(), 538i32) } #[test] - fn test_naif_id_639() { - assert_eq!(Bestla::id(), 639i32) + fn test_rotational_elements_nutation_precession_coefficients_538() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Pasithee::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_640() { - assert_eq!(Farbauti::id(), 640i32) + fn test_rotational_elements_right_ascension_coefficients_538() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pasithee::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_641() { - assert_eq!(Fenrir::id(), 641i32) + fn test_rotational_elements_declination_coefficients_538() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pasithee::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_538() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pasithee::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_539() { + assert_eq!(Hegemone::id(), 539i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_539() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Hegemone::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_539() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hegemone::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_539() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hegemone::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_539() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hegemone::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_540() { + assert_eq!(Mneme::id(), 540i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_540() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Mneme::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_540() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mneme::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_540() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mneme::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_540() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mneme::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_541() { + assert_eq!(Aoede::id(), 541i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_541() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Aoede::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_541() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aoede::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_541() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aoede::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_541() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aoede::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_542() { + assert_eq!(Thelxinoe::id(), 542i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_542() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Thelxinoe::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_542() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Thelxinoe::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_542() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Thelxinoe::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_542() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Thelxinoe::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_543() { + assert_eq!(Arche::id(), 543i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_543() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Arche::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_543() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Arche::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_543() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Arche::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_543() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Arche::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_544() { + assert_eq!(Kallichore::id(), 544i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_544() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Kallichore::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_544() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kallichore::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_544() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kallichore::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_544() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kallichore::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_545() { + assert_eq!(Helike::id(), 545i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_545() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Helike::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_545() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Helike::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_545() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Helike::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_545() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Helike::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_546() { + assert_eq!(Carpo::id(), 546i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_546() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Carpo::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_546() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Carpo::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_546() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Carpo::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_546() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Carpo::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_547() { + assert_eq!(Eukelade::id(), 547i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_547() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Eukelade::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_547() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Eukelade::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_547() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Eukelade::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_547() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Eukelade::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_548() { + assert_eq!(Cyllene::id(), 548i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_548() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Cyllene::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_548() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Cyllene::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_548() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Cyllene::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_548() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Cyllene::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_549() { + assert_eq!(Kore::id(), 549i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_549() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Kore::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_549() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kore::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_549() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kore::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_549() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kore::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_550() { + assert_eq!(Herse::id(), 550i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_550() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Herse::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_550() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Herse::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_550() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Herse::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_550() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Herse::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_553() { + assert_eq!(Dia::id(), 553i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_553() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Dia::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_553() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Dia::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_553() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Dia::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_553() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Dia::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_601() { + assert_eq!(Mimas::id(), 601i32) + } + #[test] + fn test_point_mass_601() { + assert_eq!(Mimas::gravitational_parameter(), 2.503488768152587f64); + } + #[test] + fn test_tri_axial_601() { + assert_eq!(Mimas::polar_radius(), 190.6f64); + assert_eq!(Mimas::mean_radius(), 198.36666666666667f64); + assert_eq!(Mimas::subplanetary_radius(), 207.8f64); + assert_eq!(Mimas::along_orbit_radius(), 196.7f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_601() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Mimas::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_601() { + assert_eq!( + ( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + &[ + 0f64, + 0f64, + 0.2366666465704311f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Mimas::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_601() { + assert_eq!( + ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[ + 0f64, + 0f64, + -0.026703537555513242f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Mimas::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_601() { + assert_eq!( + ( + 5.819974923700291f64, + 6.667062709440567f64, + 0f64, + &[ + 0f64, + 0f64, + -0.23527038316883564f64, + 0f64, + -0.7827801695194568f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Mimas::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_602() { + assert_eq!(Enceladus::id(), 602i32) + } + #[test] + fn test_point_mass_602() { + assert_eq!(Enceladus::gravitational_parameter(), 7.210366688598896f64); + } + #[test] + fn test_tri_axial_602() { + assert_eq!(Enceladus::polar_radius(), 248.3f64); + assert_eq!(Enceladus::mean_radius(), 252.1f64); + assert_eq!(Enceladus::subplanetary_radius(), 256.6f64); + assert_eq!(Enceladus::along_orbit_radius(), 251.4f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_602() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Enceladus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_602() { + assert_eq!( + ( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Enceladus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_602() { + assert_eq!( + ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Enceladus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_602() { + assert_eq!( + ( + 0.11030480872604163f64, + 4.585536698039173f64, + 0f64, + &[] as &[f64] + ), + Enceladus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_603() { + assert_eq!(Tethys::id(), 603i32) + } + #[test] + fn test_point_mass_603() { + assert_eq!(Tethys::gravitational_parameter(), 41.21352885489587f64); + } + #[test] + fn test_tri_axial_603() { + assert_eq!(Tethys::polar_radius(), 526.3f64); + assert_eq!(Tethys::mean_radius(), 530.9999999999999f64); + assert_eq!(Tethys::subplanetary_radius(), 538.4f64); + assert_eq!(Tethys::along_orbit_radius(), 528.3f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_603() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Tethys::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_603() { + assert_eq!( + ( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.16859880574265224f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Tethys::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_603() { + assert_eq!( + ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.019024088846738195f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Tethys::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_603() { + assert_eq!( + ( + 0.1562069680534925f64, + 3.328306379991881f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.16755160819145562f64, + 0.03892084231947355f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Tethys::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_604() { + assert_eq!(Dione::id(), 604i32) + } + #[test] + fn test_point_mass_604() { + assert_eq!(Dione::gravitational_parameter(), 73.11607172482067f64); + } + #[test] + fn test_tri_axial_604() { + assert_eq!(Dione::polar_radius(), 559.6f64); + assert_eq!(Dione::mean_radius(), 561.4333333333333f64); + assert_eq!(Dione::subplanetary_radius(), 563.4f64); + assert_eq!(Dione::along_orbit_radius(), 561.3f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_604() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Dione::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_604() { + assert_eq!( + ( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Dione::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_604() { + assert_eq!( + ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Dione::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_604() { + assert_eq!( + ( + 6.241297405131723f64, + 2.295717637805533f64, + 0f64, + &[] as &[f64] + ), + Dione::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_605() { + assert_eq!(Rhea::id(), 605i32) + } + #[test] + fn test_point_mass_605() { + assert_eq!(Rhea::gravitational_parameter(), 153.9417519146563f64); + } + #[test] + fn test_tri_axial_605() { + assert_eq!(Rhea::polar_radius(), 762.4f64); + assert_eq!(Rhea::mean_radius(), 763.5f64); + assert_eq!(Rhea::subplanetary_radius(), 765f64); + assert_eq!(Rhea::along_orbit_radius(), 763.1f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_605() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Rhea::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_605() { + assert_eq!( + ( + 0.7047639519553103f64, + -0.0006283185307179586f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.054105206811824215f64, + 0f64, + 0f64 + ] as &[f64] + ), + Rhea::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_605() { + assert_eq!( + ( + 1.4582225900412622f64, + -0.00006981317007977319f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.006108652381980153f64, + 0f64, + 0f64 + ] as &[f64] + ), + Rhea::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_605() { + assert_eq!( + ( + 4.104316268989865f64, + 1.3908537151816638f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.05375614096142535f64, + 0f64, + 0f64 + ] as &[f64] + ), + Rhea::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_606() { + assert_eq!(Titan::id(), 606i32) + } + #[test] + fn test_point_mass_606() { + assert_eq!(Titan::gravitational_parameter(), 8978.137095521046f64); + } + #[test] + fn test_tri_axial_606() { + assert_eq!(Titan::polar_radius(), 2574.47f64); + assert_eq!(Titan::mean_radius(), 2574.7999999999997f64); + assert_eq!(Titan::subplanetary_radius(), 2575.15f64); + assert_eq!(Titan::along_orbit_radius(), 2574.78f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_606() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Titan::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_606() { + assert_eq!( + ( + 0.6891031125771652f64, + 0f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64] as &[f64] + ), + Titan::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_606() { + assert_eq!( + ( + 1.456091543024577f64, + 0f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64] as &[f64] + ), + Titan::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_606() { + assert_eq!( + ( + 3.2565313114798795f64, + 0.39404258030637335f64, + 0f64, + &[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64] as &[f64] + ), + Titan::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_607() { + assert_eq!(Hyperion::id(), 607i32) + } + #[test] + fn test_point_mass_607() { + assert_eq!(Hyperion::gravitational_parameter(), 0.3704913747932265f64); + } + #[test] + fn test_tri_axial_607() { + assert_eq!(Hyperion::polar_radius(), 102.7f64); + assert_eq!(Hyperion::mean_radius(), 138.6f64); + assert_eq!(Hyperion::subplanetary_radius(), 180.1f64); + assert_eq!(Hyperion::along_orbit_radius(), 133f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_607() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Hyperion::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_607() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hyperion::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_607() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hyperion::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_607() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hyperion::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_608() { + assert_eq!(Iapetus::id(), 608i32) + } + #[test] + fn test_point_mass_608() { + assert_eq!(Iapetus::gravitational_parameter(), 120.5151060137642f64); + } + #[test] + fn test_tri_axial_608() { + assert_eq!(Iapetus::polar_radius(), 712.1f64); + assert_eq!(Iapetus::mean_radius(), 734.5f64); + assert_eq!(Iapetus::subplanetary_radius(), 745.7f64); + assert_eq!(Iapetus::along_orbit_radius(), 745.7f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_608() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Iapetus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_608() { + assert_eq!( + ( + 5.552939548145159f64, + -0.06892305216125608f64, + 0f64, + &[] as &[f64] + ), + Iapetus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_608() { + assert_eq!( + ( + 1.3095205377713455f64, + -0.019949113350295186f64, + 0f64, + &[] as &[f64] + ), + Iapetus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_608() { + assert_eq!( + ( + 6.199409503083858f64, + 0.07920229445458282f64, + 0f64, + &[] as &[f64] + ), + Iapetus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_609() { + assert_eq!(Phoebe::id(), 609i32) + } + #[test] + fn test_point_mass_609() { + assert_eq!(Phoebe::gravitational_parameter(), 0.5547860052791678f64); + } + #[test] + fn test_tri_axial_609() { + assert_eq!(Phoebe::polar_radius(), 101.8f64); + assert_eq!(Phoebe::mean_radius(), 106.56666666666666f64); + assert_eq!(Phoebe::subplanetary_radius(), 109.4f64); + assert_eq!(Phoebe::along_orbit_radius(), 108.5f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_609() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Phoebe::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_609() { + assert_eq!( + (6.229080100367762f64, 0f64, 0f64, &[] as &[f64]), + Phoebe::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_609() { + assert_eq!( + (1.3578661580515883f64, 0f64, 0f64, &[] as &[f64]), + Phoebe::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_609() { + assert_eq!( + ( + 3.116808978211474f64, + 16.26016798998745f64, + 0f64, + &[] as &[f64] + ), + Phoebe::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_610() { + assert_eq!(Janus::id(), 610i32) + } + #[test] + fn test_point_mass_610() { + assert_eq!(Janus::gravitational_parameter(), 0.1265765099012197f64); + } + #[test] + fn test_tri_axial_610() { + assert_eq!(Janus::polar_radius(), 76.3f64); + assert_eq!(Janus::mean_radius(), 90.33333333333333f64); + assert_eq!(Janus::subplanetary_radius(), 101.7f64); + assert_eq!(Janus::along_orbit_radius(), 93f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_610() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Janus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_610() { + assert_eq!( + ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[ + 0f64, + -0.028326693759867967f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0004014257279586958f64 + ] as &[f64] + ), + Janus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_610() { + assert_eq!( + ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[ + 0f64, + -0.003193952531149623f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000017453292519943296f64 + ] as &[f64] + ), + Janus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_610() { + assert_eq!( + ( + 1.0267771989482641f64, + 9.044924285944507f64, + 0f64, + &[ + 0f64, + 0.028152160834668535f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0004014257279586958f64 + ] as &[f64] + ), + Janus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_611() { + assert_eq!(Epimetheus::id(), 611i32) + } + #[test] + fn test_point_mass_611() { + assert_eq!( + Epimetheus::gravitational_parameter(), + 0.03512333288208074f64 + ); + } + #[test] + fn test_tri_axial_611() { + assert_eq!(Epimetheus::polar_radius(), 53f64); + assert_eq!(Epimetheus::mean_radius(), 58.4f64); + assert_eq!(Epimetheus::subplanetary_radius(), 64.9f64); + assert_eq!(Epimetheus::along_orbit_radius(), 57.3f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_611() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Epimetheus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_611() { + assert_eq!( + ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[ + -0.05503023131538121f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015009831567151233f64, + 0f64 + ] as &[f64] + ), + Epimetheus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_611() { + assert_eq!( + ( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + &[ + -0.006213372137099813f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00008726646259971648f64, + 0f64 + ] as &[f64] + ), + Epimetheus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_611() { + assert_eq!( + ( + 5.128999072835736f64, + 9.049370273103856f64, + 0f64, + &[ + 0.05468116546498235f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015009831567151233f64, + 0f64 + ] as &[f64] + ), + Epimetheus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_612() { + assert_eq!(Helene::id(), 612i32) + } + #[test] + fn test_point_mass_612() { + assert_eq!(Helene::gravitational_parameter(), 0.0004757419551776972f64); + } + #[test] + fn test_tri_axial_612() { + assert_eq!(Helene::polar_radius(), 13.3f64); + assert_eq!(Helene::mean_radius(), 18.46666666666667f64); + assert_eq!(Helene::subplanetary_radius(), 22.5f64); + assert_eq!(Helene::along_orbit_radius(), 19.6f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_612() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Helene::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_612() { + assert_eq!( + ( + 0.7129669994396837f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Helene::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_612() { + assert_eq!( + ( + 1.4545573986120743f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Helene::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_612() { + assert_eq!( + ( + 4.278151062488501f64, + 2.297157080652823f64, + 0f64, + &[] as &[f64] + ), + Helene::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_613() { + assert_eq!(Telesto::id(), 613i32) + } + #[test] + fn test_tri_axial_613() { + assert_eq!(Telesto::polar_radius(), 9.8f64); + assert_eq!(Telesto::mean_radius(), 12.633333333333335f64); + assert_eq!(Telesto::subplanetary_radius(), 16.3f64); + assert_eq!(Telesto::along_orbit_radius(), 11.8f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_613() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Telesto::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_613() { + assert_eq!( + ( + 0.8815658051823358f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Telesto::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_613() { + assert_eq!( + ( + 1.4671237692264334f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Telesto::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_613() { + assert_eq!( + ( + 0.9927432785343747f64, + 3.328306811088206f64, + 0f64, + &[] as &[f64] + ), + Telesto::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_614() { + assert_eq!(Calypso::id(), 614i32) + } + #[test] + fn test_tri_axial_614() { + assert_eq!(Calypso::polar_radius(), 6.3f64); + assert_eq!(Calypso::mean_radius(), 10.3f64); + assert_eq!(Calypso::subplanetary_radius(), 15.3f64); + assert_eq!(Calypso::along_orbit_radius(), 9.3f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_614() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Calypso::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_614() { + assert_eq!( + ( + 0.6354743806511354f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Calypso::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_614() { + assert_eq!( + ( + 1.4842279958959779f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Calypso::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_614() { + assert_eq!( + ( + 2.679254934736495f64, + 3.327893239613983f64, + 0f64, + &[] as &[f64] + ), + Calypso::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_615() { + assert_eq!(Atlas::id(), 615i32) + } + #[test] + fn test_point_mass_615() { + assert_eq!(Atlas::gravitational_parameter(), 0.0003718871247516475f64); + } + #[test] + fn test_tri_axial_615() { + assert_eq!(Atlas::polar_radius(), 9.4f64); + assert_eq!(Atlas::mean_radius(), 15.899999999999999f64); + assert_eq!(Atlas::subplanetary_radius(), 20.5f64); + assert_eq!(Atlas::along_orbit_radius(), 17.8f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_615() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Atlas::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_615() { + assert_eq!( + ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Atlas::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_615() { + assert_eq!( + ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Atlas::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_615() { + assert_eq!( + ( + 2.4064599726497815f64, + 10.442409634437194f64, + 0f64, + &[] as &[f64] + ), + Atlas::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_616() { + assert_eq!(Prometheus::id(), 616i32) + } + #[test] + fn test_point_mass_616() { + assert_eq!(Prometheus::gravitational_parameter(), 0.0107520800100761f64); + } + #[test] + fn test_tri_axial_616() { + assert_eq!(Prometheus::polar_radius(), 28.2f64); + assert_eq!(Prometheus::mean_radius(), 46f64); + assert_eq!(Prometheus::subplanetary_radius(), 68.2f64); + assert_eq!(Prometheus::along_orbit_radius(), 41.6f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_616() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Prometheus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_616() { + assert_eq!( + ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Prometheus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_616() { + assert_eq!( + ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Prometheus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_616() { + assert_eq!( + ( + 5.1686180468560075f64, + 10.250126710744977f64, + 0f64, + &[] as &[f64] + ), + Prometheus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_617() { + assert_eq!(Pandora::id(), 617i32) + } + #[test] + fn test_point_mass_617() { + assert_eq!(Pandora::gravitational_parameter(), 0.009290325122028795f64); + } + #[test] + fn test_tri_axial_617() { + assert_eq!(Pandora::polar_radius(), 31.5f64); + assert_eq!(Pandora::mean_radius(), 41.5f64); + assert_eq!(Pandora::subplanetary_radius(), 52.2f64); + assert_eq!(Pandora::along_orbit_radius(), 40.8f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_617() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Pandora::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_617() { + assert_eq!( + ( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Pandora::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_617() { + assert_eq!( + ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Pandora::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_617() { + assert_eq!( + ( + 2.8434904173491615f64, + 9.997055714535051f64, + 0f64, + &[] as &[f64] + ), + Pandora::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_618() { + assert_eq!(Pan::id(), 618i32) + } + #[test] + fn test_tri_axial_618() { + assert_eq!(Pan::polar_radius(), 10.4f64); + assert_eq!(Pan::mean_radius(), 14.333333333333334f64); + assert_eq!(Pan::subplanetary_radius(), 17.2f64); + assert_eq!(Pan::along_orbit_radius(), 15.4f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_618() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Pan::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_618() { + assert_eq!( + ( + 0.7086036763096978f64, + -0.0006283185307179586f64, + 0f64, + &[] as &[f64] + ), + Pan::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_618() { + assert_eq!( + ( + 1.457349925415265f64, + -0.00006981317007977319f64, + 0f64, + &[] as &[f64] + ), + Pan::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_618() { + assert_eq!( + ( + 0.8517206749732328f64, + 10.92652906235538f64, + 0f64, + &[] as &[f64] + ), + Pan::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_619() { + assert_eq!(Ymir::id(), 619i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_619() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ymir::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_619() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ymir::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_619() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ymir::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_619() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ymir::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_620() { + assert_eq!(Paaliaq::id(), 620i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_620() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Paaliaq::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_620() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Paaliaq::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_620() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Paaliaq::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_620() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Paaliaq::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_621() { + assert_eq!(Tarvos::id(), 621i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_621() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Tarvos::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_621() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Tarvos::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_621() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Tarvos::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_621() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Tarvos::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_622() { + assert_eq!(Ijiraq::id(), 622i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_622() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ijiraq::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_622() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ijiraq::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_622() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ijiraq::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_622() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ijiraq::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_623() { + assert_eq!(Suttungr::id(), 623i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_623() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Suttungr::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_623() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Suttungr::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_623() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Suttungr::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_623() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Suttungr::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_624() { + assert_eq!(Kiviuq::id(), 624i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_624() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Kiviuq::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_624() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kiviuq::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_624() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kiviuq::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_624() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kiviuq::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_625() { + assert_eq!(Mundilfari::id(), 625i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_625() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Mundilfari::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_625() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mundilfari::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_625() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mundilfari::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_625() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mundilfari::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_626() { + assert_eq!(Albiorix::id(), 626i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_626() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Albiorix::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_626() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Albiorix::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_626() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Albiorix::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_626() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Albiorix::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_627() { + assert_eq!(Skathi::id(), 627i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_627() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Skathi::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_627() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Skathi::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_627() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Skathi::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_627() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Skathi::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_628() { + assert_eq!(Erriapus::id(), 628i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_628() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Erriapus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_628() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Erriapus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_628() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Erriapus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_628() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Erriapus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_629() { + assert_eq!(Siarnaq::id(), 629i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_629() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Siarnaq::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_629() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Siarnaq::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_629() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Siarnaq::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_629() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Siarnaq::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_630() { + assert_eq!(Thrymr::id(), 630i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_630() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Thrymr::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_630() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Thrymr::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_630() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Thrymr::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_630() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Thrymr::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_631() { + assert_eq!(Narvi::id(), 631i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_631() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Narvi::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_631() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Narvi::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_631() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Narvi::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_631() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Narvi::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_632() { + assert_eq!(Methone::id(), 632i32) + } + #[test] + fn test_tri_axial_632() { + assert_eq!(Methone::polar_radius(), 1.21f64); + assert_eq!(Methone::mean_radius(), 1.4799999999999998f64); + assert_eq!(Methone::subplanetary_radius(), 1.94f64); + assert_eq!(Methone::along_orbit_radius(), 1.29f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_632() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Methone::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_632() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Methone::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_632() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Methone::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_632() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Methone::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_633() { + assert_eq!(Pallene::id(), 633i32) + } + #[test] + fn test_tri_axial_633() { + assert_eq!(Pallene::polar_radius(), 1.8f64); + assert_eq!(Pallene::mean_radius(), 2.2533333333333334f64); + assert_eq!(Pallene::subplanetary_radius(), 2.88f64); + assert_eq!(Pallene::along_orbit_radius(), 2.08f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_633() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Pallene::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_633() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pallene::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_633() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pallene::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_633() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Pallene::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_634() { + assert_eq!(Polydeuces::id(), 634i32) + } + #[test] + fn test_tri_axial_634() { + assert_eq!(Polydeuces::polar_radius(), 1f64); + assert_eq!(Polydeuces::mean_radius(), 1.2333333333333334f64); + assert_eq!(Polydeuces::subplanetary_radius(), 1.5f64); + assert_eq!(Polydeuces::along_orbit_radius(), 1.2f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_634() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Polydeuces::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_634() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Polydeuces::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_634() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Polydeuces::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_634() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Polydeuces::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_635() { + assert_eq!(Daphnis::id(), 635i32) + } + #[test] + fn test_tri_axial_635() { + assert_eq!(Daphnis::polar_radius(), 2.8f64); + assert_eq!(Daphnis::mean_radius(), 3.9666666666666663f64); + assert_eq!(Daphnis::subplanetary_radius(), 4.6f64); + assert_eq!(Daphnis::along_orbit_radius(), 4.5f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_635() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Daphnis::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_635() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Daphnis::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_635() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Daphnis::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_635() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Daphnis::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_636() { + assert_eq!(Aegir::id(), 636i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_636() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Aegir::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_636() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aegir::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_636() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aegir::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_636() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aegir::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_637() { + assert_eq!(Bebhionn::id(), 637i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_637() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Bebhionn::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_637() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bebhionn::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_637() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bebhionn::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_637() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bebhionn::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_638() { + assert_eq!(Bergelmir::id(), 638i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_638() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Bergelmir::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_638() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bergelmir::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_638() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bergelmir::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_638() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bergelmir::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_639() { + assert_eq!(Bestla::id(), 639i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_639() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Bestla::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_639() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bestla::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_639() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bestla::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_639() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Bestla::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_640() { + assert_eq!(Farbauti::id(), 640i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_640() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Farbauti::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_640() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Farbauti::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_640() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Farbauti::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_640() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Farbauti::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_641() { + assert_eq!(Fenrir::id(), 641i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_641() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Fenrir::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_641() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Fenrir::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_641() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Fenrir::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_641() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Fenrir::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] fn test_naif_id_642() { assert_eq!(Fornjot::id(), 642i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_642() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Fornjot::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_642() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Fornjot::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_642() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Fornjot::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_642() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Fornjot::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_643() { assert_eq!(Hati::id(), 643i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_643() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Hati::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_643() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hati::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_643() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hati::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_643() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hati::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_644() { assert_eq!(Hyrrokkin::id(), 644i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_644() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Hyrrokkin::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_644() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hyrrokkin::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_644() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hyrrokkin::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_644() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hyrrokkin::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_645() { assert_eq!(Kari::id(), 645i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_645() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Kari::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_645() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kari::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_645() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kari::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_645() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kari::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_646() { assert_eq!(Loge::id(), 646i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_646() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Loge::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_646() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Loge::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_646() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Loge::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_646() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Loge::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_647() { assert_eq!(Skoll::id(), 647i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_647() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Skoll::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_647() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Skoll::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_647() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Skoll::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_647() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Skoll::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_648() { assert_eq!(Surtur::id(), 648i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_648() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Surtur::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_648() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Surtur::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_648() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Surtur::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_648() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Surtur::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_649() { assert_eq!(Anthe::id(), 649i32) } @@ -3186,18 +10370,130 @@ mod tests { assert_eq!(Anthe::along_orbit_radius(), 0.5f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_649() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Anthe::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_649() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Anthe::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_649() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Anthe::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_649() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Anthe::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_650() { assert_eq!(Jarnsaxa::id(), 650i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_650() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Jarnsaxa::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_650() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Jarnsaxa::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_650() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Jarnsaxa::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_650() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Jarnsaxa::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_651() { assert_eq!(Greip::id(), 651i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_651() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Greip::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_651() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Greip::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_651() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Greip::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_651() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Greip::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_652() { assert_eq!(Tarqeq::id(), 652i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_652() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Tarqeq::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_652() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Tarqeq::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_652() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Tarqeq::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_652() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Tarqeq::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_653() { assert_eq!(Aegaeon::id(), 653i32) } @@ -3209,6 +10505,34 @@ mod tests { assert_eq!(Aegaeon::along_orbit_radius(), 0.25f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_653() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Aegaeon::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_653() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aegaeon::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_653() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aegaeon::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_653() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Aegaeon::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_701() { assert_eq!(Ariel::id(), 701i32) } @@ -3224,6 +10548,91 @@ mod tests { assert_eq!(Ariel::along_orbit_radius(), 577.9f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_701() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ariel::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_701() { + assert_eq!( + ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.005061454830783556f64 + ] as &[f64] + ), + Ariel::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_701() { + assert_eq!( + ( + -0.26354471705114374f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64 + ] as &[f64] + ), + Ariel::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_701() { + assert_eq!( + ( + 2.7265533574655416f64, + -2.492952697630833f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0008726646259971648f64, + 0.0013962634015954637f64 + ] as &[f64] + ), + Ariel::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_702() { assert_eq!(Umbriel::id(), 702i32) } @@ -3239,6 +10648,94 @@ mod tests { assert_eq!(Umbriel::along_orbit_radius(), 584.7f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_702() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Umbriel::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_702() { + assert_eq!( + ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.003665191429188092f64 + ] as &[f64] + ), + Umbriel::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_702() { + assert_eq!( + ( + -0.26354471705114374f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.003490658503988659f64 + ] as &[f64] + ), + Umbriel::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_702() { + assert_eq!( + ( + 1.885828256779873f64, + -1.5161481881953498f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0.0010471975511965976f64 + ] as &[f64] + ), + Umbriel::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_703() { assert_eq!(Titania::id(), 703i32) } @@ -3254,6 +10751,97 @@ mod tests { assert_eq!(Titania::along_orbit_radius(), 788.9f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_703() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Titania::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_703() { + assert_eq!( + ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.005061454830783556f64 + ] as &[f64] + ), + Titania::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_703() { + assert_eq!( + ( + -0.26354471705114374f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64 + ] as &[f64] + ), + Titania::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_703() { + assert_eq!( + ( + 1.3568189605003917f64, + -0.7217186318332268f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0013962634015954637f64 + ] as &[f64] + ), + Titania::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_704() { assert_eq!(Oberon::id(), 704i32) } @@ -3269,6 +10857,100 @@ mod tests { assert_eq!(Oberon::along_orbit_radius(), 761.4f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_704() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Oberon::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_704() { + assert_eq!( + ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64 + ] as &[f64] + ), + Oberon::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_704() { + assert_eq!( + ( + -0.26354471705114374f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64 + ] as &[f64] + ), + Oberon::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_704() { + assert_eq!( + ( + 0.1181587903600161f64, + -0.4666921966546346f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64 + ] as &[f64] + ), + Oberon::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_705() { assert_eq!(Miranda::id(), 705i32) } @@ -3284,6 +10966,106 @@ mod tests { assert_eq!(Miranda::along_orbit_radius(), 234.2f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_705() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Miranda::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_705() { + assert_eq!( + ( + 4.493001093409003f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.07696902001294993f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64 + ] as &[f64] + ), + Miranda::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_705() { + assert_eq!( + ( + -0.2631956512007449f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.07417649320975901f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64 + ] as &[f64] + ), + Miranda::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_705() { + assert_eq!( + ( + 0.5358160803622591f64, + -4.445191100713563f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.02007128639793479f64, + -0.022165681500327987f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0.002617993877991494f64 + ] as &[f64] + ), + Miranda::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_706() { assert_eq!(Cordelia::id(), 706i32) } @@ -3295,6 +11077,106 @@ mod tests { assert_eq!(Cordelia::along_orbit_radius(), 13f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_706() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Cordelia::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_706() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + -0.002617993877991494f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Cordelia::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_706() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0.0024434609527920616f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Cordelia::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_706() { + assert_eq!( + ( + 2.2286109218715593f64, + -18.753921879266084f64, + 0f64, + &[ + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Cordelia::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_707() { assert_eq!(Ophelia::id(), 707i32) } @@ -3306,6 +11188,106 @@ mod tests { assert_eq!(Ophelia::along_orbit_radius(), 15f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_707() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ophelia::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_707() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Ophelia::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_707() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Ophelia::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_707() { + assert_eq!( + ( + 2.2750366799746087f64, + -16.692447910262292f64, + 0f64, + &[ + 0f64, + -0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Ophelia::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_708() { assert_eq!(Bianca::id(), 708i32) } @@ -3317,6 +11299,106 @@ mod tests { assert_eq!(Bianca::along_orbit_radius(), 21f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_708() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Bianca::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_708() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + -0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Bianca::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_708() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Bianca::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_708() { + assert_eq!( + ( + 1.8406242291532198f64, + -14.458158751655587f64, + 0f64, + &[ + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Bianca::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_709() { assert_eq!(Cressida::id(), 709i32) } @@ -3328,6 +11410,106 @@ mod tests { assert_eq!(Cressida::along_orbit_radius(), 31f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_709() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Cressida::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_709() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Cressida::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_709() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Cressida::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_709() { + assert_eq!( + ( + 1.0325367854798453f64, + -13.553906388910956f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Cressida::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_710() { assert_eq!(Desdemona::id(), 710i32) } @@ -3339,6 +11521,106 @@ mod tests { assert_eq!(Desdemona::along_orbit_radius(), 27f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_710() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Desdemona::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_710() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0029670597283903604f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Desdemona::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_710() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Desdemona::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_710() { + assert_eq!( + ( + 1.6594590527962085f64, + -13.265430289266899f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Desdemona::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_711() { assert_eq!(Juliet::id(), 711i32) } @@ -3350,6 +11632,106 @@ mod tests { assert_eq!(Juliet::along_orbit_radius(), 42f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_711() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Juliet::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_711() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Juliet::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_711() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Juliet::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_711() { + assert_eq!( + ( + 5.2806681848340435f64, + -12.74309158902866f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Juliet::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_712() { assert_eq!(Portia::id(), 712i32) } @@ -3361,85 +11743,821 @@ mod tests { assert_eq!(Portia::along_orbit_radius(), 54f64); } #[test] - fn test_naif_id_713() { - assert_eq!(Rosalind::id(), 713i32) + fn test_rotational_elements_nutation_precession_coefficients_712() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Portia::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_712() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Portia::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_712() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Portia::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_712() { + assert_eq!( + ( + 0.4368559117741807f64, + -12.243250601727652f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Portia::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_713() { + assert_eq!(Rosalind::id(), 713i32) + } + #[test] + fn test_tri_axial_713() { + assert_eq!(Rosalind::polar_radius(), 27f64); + assert_eq!(Rosalind::mean_radius(), 27f64); + assert_eq!(Rosalind::subplanetary_radius(), 27f64); + assert_eq!(Rosalind::along_orbit_radius(), 27f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_713() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Rosalind::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_713() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.005061454830783556f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Rosalind::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_713() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Rosalind::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_713() { + assert_eq!( + ( + 5.496041814530144f64, + -11.250935609538423f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0013962634015954637f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Rosalind::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_714() { + assert_eq!(Belinda::id(), 714i32) + } + #[test] + fn test_tri_axial_714() { + assert_eq!(Belinda::polar_radius(), 33f64); + assert_eq!(Belinda::mean_radius(), 33f64); + assert_eq!(Belinda::subplanetary_radius(), 33f64); + assert_eq!(Belinda::along_orbit_radius(), 33f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_714() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Belinda::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_714() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Belinda::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_714() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Belinda::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_714() { + assert_eq!( + ( + 5.191656392982332f64, + -10.076882135239488f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Belinda::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_715() { + assert_eq!(Puck::id(), 715i32) + } + #[test] + fn test_tri_axial_715() { + assert_eq!(Puck::polar_radius(), 77f64); + assert_eq!(Puck::mean_radius(), 77f64); + assert_eq!(Puck::subplanetary_radius(), 77f64); + assert_eq!(Puck::along_orbit_radius(), 77f64); + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_715() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Puck::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_715() { + assert_eq!( + ( + 4.49090669830661f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.005759586531581287f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Puck::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_715() { + assert_eq!( + ( + -0.2649409804527392f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0054105206811824215f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Puck::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_715() { + assert_eq!( + ( + 1.5924384095196262f64, + -8.247467318113788f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Puck::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_716() { + assert_eq!(Caliban::id(), 716i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_716() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Caliban::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_716() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Caliban::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_716() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Caliban::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_716() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Caliban::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_717() { + assert_eq!(Sycorax::id(), 717i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_717() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Sycorax::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_717() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sycorax::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_717() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sycorax::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_717() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sycorax::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_718() { + assert_eq!(Prospero::id(), 718i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_718() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Prospero::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_718() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Prospero::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_718() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Prospero::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_718() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Prospero::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_719() { + assert_eq!(Setebos::id(), 719i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_719() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Setebos::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_719() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Setebos::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_719() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Setebos::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_719() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Setebos::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_720() { + assert_eq!(Stephano::id(), 720i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_720() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Stephano::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_720() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Stephano::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_720() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Stephano::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_720() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Stephano::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_721() { + assert_eq!(Trinculo::id(), 721i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_721() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Trinculo::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_721() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Trinculo::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_721() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Trinculo::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_721() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Trinculo::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_722() { + assert_eq!(Francisco::id(), 722i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_722() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Francisco::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_722() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Francisco::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_722() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Francisco::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_722() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Francisco::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_723() { + assert_eq!(Margaret::id(), 723i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_723() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Margaret::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_723() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Margaret::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_723() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Margaret::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_723() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Margaret::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] + fn test_naif_id_724() { + assert_eq!(Ferdinand::id(), 724i32) + } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_724() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Ferdinand::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_724() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ferdinand::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_713() { - assert_eq!(Rosalind::polar_radius(), 27f64); - assert_eq!(Rosalind::mean_radius(), 27f64); - assert_eq!(Rosalind::subplanetary_radius(), 27f64); - assert_eq!(Rosalind::along_orbit_radius(), 27f64); + fn test_rotational_elements_declination_coefficients_724() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ferdinand::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_714() { - assert_eq!(Belinda::id(), 714i32) + fn test_rotational_elements_prime_meridian_coefficients_724() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Ferdinand::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_tri_axial_714() { - assert_eq!(Belinda::polar_radius(), 33f64); - assert_eq!(Belinda::mean_radius(), 33f64); - assert_eq!(Belinda::subplanetary_radius(), 33f64); - assert_eq!(Belinda::along_orbit_radius(), 33f64); + fn test_naif_id_725() { + assert_eq!(Perdita::id(), 725i32) } #[test] - fn test_naif_id_715() { - assert_eq!(Puck::id(), 715i32) + fn test_rotational_elements_nutation_precession_coefficients_725() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Perdita::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_tri_axial_715() { - assert_eq!(Puck::polar_radius(), 77f64); - assert_eq!(Puck::mean_radius(), 77f64); - assert_eq!(Puck::subplanetary_radius(), 77f64); - assert_eq!(Puck::along_orbit_radius(), 77f64); + fn test_rotational_elements_right_ascension_coefficients_725() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Perdita::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_716() { - assert_eq!(Caliban::id(), 716i32) + fn test_rotational_elements_declination_coefficients_725() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Perdita::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_717() { - assert_eq!(Sycorax::id(), 717i32) + fn test_rotational_elements_prime_meridian_coefficients_725() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Perdita::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_718() { - assert_eq!(Prospero::id(), 718i32) + fn test_naif_id_726() { + assert_eq!(Mab::id(), 726i32) } #[test] - fn test_naif_id_719() { - assert_eq!(Setebos::id(), 719i32) + fn test_rotational_elements_nutation_precession_coefficients_726() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Mab::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_720() { - assert_eq!(Stephano::id(), 720i32) + fn test_rotational_elements_right_ascension_coefficients_726() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mab::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_721() { - assert_eq!(Trinculo::id(), 721i32) + fn test_rotational_elements_declination_coefficients_726() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mab::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_722() { - assert_eq!(Francisco::id(), 722i32) + fn test_rotational_elements_prime_meridian_coefficients_726() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Mab::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] - fn test_naif_id_723() { - assert_eq!(Margaret::id(), 723i32) + fn test_naif_id_727() { + assert_eq!(Cupid::id(), 727i32) } #[test] - fn test_naif_id_724() { - assert_eq!(Ferdinand::id(), 724i32) + fn test_rotational_elements_nutation_precession_coefficients_727() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Cupid::NUTATION_PRECESSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_725() { - assert_eq!(Perdita::id(), 725i32) + fn test_rotational_elements_right_ascension_coefficients_727() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Cupid::RIGHT_ASCENSION_COEFFICIENTS + ) } #[test] - fn test_naif_id_726() { - assert_eq!(Mab::id(), 726i32) + fn test_rotational_elements_declination_coefficients_727() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Cupid::DECLINATION_COEFFICIENTS + ) } #[test] - fn test_naif_id_727() { - assert_eq!(Cupid::id(), 727i32) + fn test_rotational_elements_prime_meridian_coefficients_727() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Cupid::PRIME_MERIDIAN_COEFFICIENTS + ) } #[test] fn test_naif_id_801() { @@ -3457,6 +12575,103 @@ mod tests { assert_eq!(Triton::along_orbit_radius(), 1352.6f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_801() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Triton::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_801() { + assert_eq!( + ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.5646140130201657f64, + 0f64, + -0.1096066770252439f64, + -0.03630284844148206f64, + -0.012915436464758038f64, + -0.004886921905584123f64, + -0.0019198621771937625f64, + -0.0012217304763960308f64, + -0.00034906585039886593f64, + -0.00017453292519943296f64 + ] as &[f64] + ), + Triton::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_801() { + assert_eq!( + ( + 0.7185520530460655f64, + 0f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.3935717463247213f64, + 0f64, + 0.03665191429188092f64, + 0.009599310885968814f64, + 0.0027925268031909274f64, + 0.0008726646259971648f64, + 0.00034906585039886593f64, + 0.00017453292519943296f64, + 0f64, + 0f64 + ] as &[f64] + ), + Triton::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_801() { + assert_eq!( + ( + 5.175424830938785f64, + -1.069140942327404f64, + 0f64, + &[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.3883357585687383f64, + 0f64, + 0.11746065865921838f64, + 0.03577924966588375f64, + 0.012915436464758038f64, + 0.004886921905584123f64, + 0.0019198621771937625f64, + 0.0008726646259971648f64, + 0.00034906585039886593f64, + 0.00017453292519943296f64 + ] as &[f64] + ), + Triton::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_802() { assert_eq!(Nereid::id(), 802i32) } @@ -3468,6 +12683,34 @@ mod tests { assert_eq!(Nereid::along_orbit_radius(), 170f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_802() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Nereid::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_802() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Nereid::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_802() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Nereid::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_802() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Nereid::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_803() { assert_eq!(Naiad::id(), 803i32) } @@ -3483,6 +12726,103 @@ mod tests { assert_eq!(Naiad::along_orbit_radius(), 29f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_803() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Naiad::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_803() { + assert_eq!( + ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + -0.11327186845443199f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004363323129985824f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Naiad::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_803() { + assert_eq!( + ( + 0.7567747636647413f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + -0.08290313946973066f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Naiad::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_803() { + assert_eq!( + ( + 4.434183497616794f64, + 21.342656148360604f64, + 0f64, + &[ + -0.008377580409572781f64, + 0.07679448708775051f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00471238898038469f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Naiad::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_804() { assert_eq!(Thalassa::id(), 804i32) } @@ -3498,6 +12838,103 @@ mod tests { assert_eq!(Thalassa::along_orbit_radius(), 40f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_804() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Thalassa::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_804() { + assert_eq!( + ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + -0.004886921905584123f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Thalassa::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_804() { + assert_eq!( + ( + 0.7583455599915362f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + -0.003665191429188092f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Thalassa::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_804() { + assert_eq!( + ( + 1.7812830345854127f64, + 20.171739891174827f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0.0033161255787892262f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Thalassa::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_805() { assert_eq!(Despina::id(), 805i32) } @@ -3513,6 +12950,103 @@ mod tests { assert_eq!(Despina::along_orbit_radius(), 74f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_805() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Despina::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_805() { + assert_eq!( + ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Despina::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_805() { + assert_eq!( + ( + 0.7583455599915362f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + -0.0012217304763960308f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Despina::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_805() { + assert_eq!( + ( + 5.34960869028782f64, + 18.77510290185297f64, + 0f64, + &[ + -0.008552113334772215f64, + 0f64, + 0f64, + 0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Despina::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_806() { assert_eq!(Galatea::id(), 806i32) } @@ -3528,6 +13062,103 @@ mod tests { assert_eq!(Galatea::along_orbit_radius(), 79f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_806() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Galatea::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_806() { + assert_eq!( + ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + -0.0012217304763960308f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Galatea::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_806() { + assert_eq!( + ( + 0.7579964941411373f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + -0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Galatea::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_806() { + assert_eq!( + ( + 4.504520266472165f64, + 14.6548275586037f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Galatea::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_807() { assert_eq!(Larissa::id(), 807i32) } @@ -3543,6 +13174,103 @@ mod tests { assert_eq!(Larissa::along_orbit_radius(), 96f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_807() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Larissa::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_807() { + assert_eq!( + ( + 5.224817648770225f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00471238898038469f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Larissa::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_807() { + assert_eq!( + ( + 0.7576474282907384f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.003490658503988659f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Larissa::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_807() { + assert_eq!( + ( + 3.1312952110030268f64, + 11.328119671568512f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0033161255787892262f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Larissa::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_808() { assert_eq!(Proteus::id(), 808i32) } @@ -3558,26 +13286,263 @@ mod tests { assert_eq!(Proteus::along_orbit_radius(), 208f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_808() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Proteus::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_808() { + assert_eq!( + ( + 5.22324685244343f64, + 0f64, + 0f64, + &[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Proteus::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_808() { + assert_eq!( + ( + 0.7489207820307667f64, + 0f64, + 0f64, + &[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Proteus::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_808() { + assert_eq!( + ( + 1.6297884555123048f64, + 5.598412754411688f64, + 0f64, + &[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64 + ] as &[f64] + ), + Proteus::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_809() { assert_eq!(Halimede::id(), 809i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_809() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Halimede::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_809() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Halimede::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_809() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Halimede::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_809() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Halimede::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_810() { assert_eq!(Psamathe::id(), 810i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_810() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Psamathe::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_810() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Psamathe::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_810() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Psamathe::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_810() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Psamathe::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_811() { assert_eq!(Sao::id(), 811i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_811() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Sao::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_811() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sao::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_811() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sao::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_811() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Sao::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_812() { assert_eq!(Laomedeia::id(), 812i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_812() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Laomedeia::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_812() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Laomedeia::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_812() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Laomedeia::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_812() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Laomedeia::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_813() { assert_eq!(Neso::id(), 813i32) } #[test] + fn test_rotational_elements_nutation_precession_coefficients_813() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Neso::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_813() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Neso::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_813() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Neso::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_813() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Neso::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_901() { assert_eq!(Charon::id(), 901i32) } @@ -3593,6 +13558,39 @@ mod tests { assert_eq!(Charon::along_orbit_radius(), 606f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_901() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Charon::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_901() { + assert_eq!( + (2.3211657321048187f64, 0f64, 0f64, &[] as &[f64]), + Charon::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_901() { + assert_eq!( + (-0.10756464180041053f64, 0f64, 0f64, &[] as &[f64]), + Charon::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_901() { + assert_eq!( + ( + 2.1414317257344426f64, + 0.9837115923543857f64, + 0f64, + &[] as &[f64] + ), + Charon::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_902() { assert_eq!(Nix::id(), 902i32) } @@ -3601,6 +13599,34 @@ mod tests { assert_eq!(Nix::gravitational_parameter(), 0.00304817564816976f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_902() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Nix::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_902() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Nix::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_902() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Nix::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_902() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Nix::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_903() { assert_eq!(Hydra::id(), 903i32) } @@ -3609,6 +13635,34 @@ mod tests { assert_eq!(Hydra::gravitational_parameter(), 0.003211039206155255f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_903() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Hydra::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_903() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hydra::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_903() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hydra::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_903() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Hydra::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_904() { assert_eq!(Kerberos::id(), 904i32) } @@ -3617,6 +13671,34 @@ mod tests { assert_eq!(Kerberos::gravitational_parameter(), 0.001110040850536676f64); } #[test] + fn test_rotational_elements_nutation_precession_coefficients_904() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Kerberos::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_904() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kerberos::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_904() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kerberos::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_904() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Kerberos::PRIME_MERIDIAN_COEFFICIENTS + ) + } + #[test] fn test_naif_id_905() { assert_eq!(Styx::id(), 905i32) } @@ -3624,4 +13706,32 @@ mod tests { fn test_point_mass_905() { assert_eq!(Styx::gravitational_parameter(), 0f64); } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_905() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Styx::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_905() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Styx::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_905() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Styx::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_905() { + assert_eq!( + (0f64, 0f64, 0f64, &[] as &[f64]), + Styx::PRIME_MERIDIAN_COEFFICIENTS + ) + } } diff --git a/crates/lox_core/src/bodies/sun.rs b/crates/lox_core/src/bodies/sun.rs index 5943bafe..8e029172 100644 --- a/crates/lox_core/src/bodies/sun.rs +++ b/crates/lox_core/src/bodies/sun.rs @@ -8,7 +8,10 @@ // Auto-generated by `lox_gen`. Do not edit! -use super::{Ellipsoid, NaifId, PointMass, Spheroid}; +use super::{ + Ellipsoid, NaifId, NutationPrecessionCoefficients, PointMass, PolynomialCoefficients, + RotationalElements, Spheroid, +}; #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct Sun; impl NaifId for Sun { @@ -34,7 +37,23 @@ impl Spheroid for Sun { 695700f64 } } +#[allow(clippy::approx_constant)] +impl RotationalElements for Sun { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = + (&[] as &[f64], &[] as &[f64]); + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = + (4.993910588731375f64, 0f64, 0f64, &[] as &[f64]); + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = + (1.1147417932487782f64, 0f64, 0f64, &[] as &[f64]); + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = ( + 1.4691483511587469f64, + 0.24756448241988369f64, + 0f64, + &[] as &[f64], + ); +} #[cfg(test)] +#[allow(clippy::approx_constant)] mod tests { use super::*; #[test] @@ -51,4 +70,37 @@ mod tests { assert_eq!(Sun::mean_radius(), 695700f64); assert_eq!(Sun::equatorial_radius(), 695700f64); } + #[test] + fn test_rotational_elements_nutation_precession_coefficients_10() { + assert_eq!( + (&[] as &[f64], &[] as &[f64]), + Sun::NUTATION_PRECESSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_right_ascension_coefficients_10() { + assert_eq!( + (4.993910588731375f64, 0f64, 0f64, &[] as &[f64]), + Sun::RIGHT_ASCENSION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_declination_coefficients_10() { + assert_eq!( + (1.1147417932487782f64, 0f64, 0f64, &[] as &[f64]), + Sun::DECLINATION_COEFFICIENTS + ) + } + #[test] + fn test_rotational_elements_prime_meridian_coefficients_10() { + assert_eq!( + ( + 1.4691483511587469f64, + 0.24756448241988369f64, + 0f64, + &[] as &[f64] + ), + Sun::PRIME_MERIDIAN_COEFFICIENTS + ) + } } diff --git a/tools/lox_gen/Cargo.lock b/tools/lox_gen/Cargo.lock index 469394dd..50481e98 100644 --- a/tools/lox_gen/Cargo.lock +++ b/tools/lox_gen/Cargo.lock @@ -2,13 +2,43 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "float_eq" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28a80e3145d8ad11ba0995949bbcf48b9df2be62772b3d351ef017dff6ecb853" + +[[package]] +name = "glam" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" + +[[package]] +name = "lox_core" +version = "0.1.0" +dependencies = [ + "float_eq", + "glam", + "num", + "thiserror", +] + [[package]] name = "lox_gen" version = "0.1.0" dependencies = [ + "lox_core", "lox_io", "proc-macro2", "quote", + "thiserror", ] [[package]] @@ -40,22 +70,129 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + [[package]] name = "proc-macro2" -version = "1.0.52" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.26" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "syn" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] diff --git a/tools/lox_gen/Cargo.toml b/tools/lox_gen/Cargo.toml index b584c3da..72c9b9d4 100644 --- a/tools/lox_gen/Cargo.toml +++ b/tools/lox_gen/Cargo.toml @@ -9,3 +9,5 @@ edition = "2021" proc-macro2 = "1.0" quote = "1.0" lox_io = { path = "../../crates/lox_io" } +lox_core = { path = "../../crates/lox_core" } +thiserror = "1.0.50" diff --git a/tools/lox_gen/src/main.rs b/tools/lox_gen/src/main.rs index 62f1dc24..8b4f787c 100644 --- a/tools/lox_gen/src/main.rs +++ b/tools/lox_gen/src/main.rs @@ -6,6 +6,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +use std::collections::HashSet; use std::fs; use std::path::Path; use std::process::Command; @@ -16,10 +17,13 @@ use quote::{format_ident, quote}; use lox_io::spice::Kernel; use naif_ids::{Body, BARYCENTERS, MINOR_BODIES, PLANETS, SATELLITES, SUN}; +use crate::rotational_elements::{CoefficientKernel, RotationalElements}; + mod naif_ids; +mod rotational_elements; type Generator = fn( - imports: &mut Vec, + imports: &mut HashSet, code: &mut TokenStream, tests: &mut TokenStream, ident: &Ident, @@ -39,7 +43,11 @@ pub fn main() { .expect("parsing should succeed"); let data = Data { pck, gm }; let bodies: [(&str, Vec, Vec); 5] = [ - ("sun", Vec::from(SUN), vec![naif_id, point_mass, spheroid]), + ( + "sun", + Vec::from(SUN), + vec![naif_id, point_mass, spheroid, rotational_elements], + ), ( "barycenters", Vec::from(BARYCENTERS), @@ -48,17 +56,17 @@ pub fn main() { ( "planets", Vec::from(PLANETS), - vec![naif_id, point_mass, spheroid], + vec![naif_id, point_mass, spheroid, rotational_elements], ), ( "satellites", Vec::from(SATELLITES), - vec![naif_id, point_mass, tri_axial], + vec![naif_id, point_mass, tri_axial, rotational_elements], ), ( "minor", Vec::from(MINOR_BODIES), - vec![naif_id, point_mass, tri_axial], + vec![naif_id, point_mass, tri_axial, rotational_elements], ), ]; bodies @@ -91,7 +99,7 @@ fn write_file(file: &str, bodies: &[Body], generators: &[Generator], data: &Data } fn generate_code(bodies: &[Body], generators: &[Generator], data: &Data) -> String { - let mut imports: Vec = Vec::new(); + let mut imports: HashSet = HashSet::new(); let mut code = quote!(); let mut tests = quote!(); @@ -107,12 +115,14 @@ fn generate_code(bodies: &[Body], generators: &[Generator], data: &Data) -> Stri .for_each(|generator| generator(&mut imports, &mut code, &mut tests, &ident, id, data)) }); + let imports_iter = imports.iter(); let module = quote! { - use super::{#(#imports),*}; + use super::{#(#imports_iter),*}; #code #[cfg(test)] + #[allow(clippy::approx_constant)] // at least one parsed constant is close to TAU mod tests { use super::*; @@ -123,18 +133,14 @@ fn generate_code(bodies: &[Body], generators: &[Generator], data: &Data) -> Stri } fn naif_id( - imports: &mut Vec, + imports: &mut HashSet, code: &mut TokenStream, tests: &mut TokenStream, ident: &Ident, id: &i32, _data: &Data, ) { - let trait_name = format_ident!("NaifId"); - - if !imports.contains(&trait_name) { - imports.push(trait_name); - } + imports.insert(format_ident!("NaifId")); *code = quote! { #code @@ -159,22 +165,14 @@ fn naif_id( } fn spheroid( - imports: &mut Vec, + imports: &mut HashSet, code: &mut TokenStream, tests: &mut TokenStream, ident: &Ident, id: &i32, data: &Data, ) { - let trait_name = format_ident!("Ellipsoid"); - if !imports.contains(&trait_name) { - imports.push(trait_name); - } - - let trait_name = format_ident!("Spheroid"); - if !imports.contains(&trait_name) { - imports.push(trait_name); - } + imports.extend([format_ident!("Ellipsoid"), format_ident!("Spheroid")]); let radii = format!("BODY{id}_RADII"); if let Some(radii) = data.pck.get_double_array(&radii) { @@ -217,22 +215,14 @@ fn spheroid( } fn tri_axial( - imports: &mut Vec, + imports: &mut HashSet, code: &mut TokenStream, tests: &mut TokenStream, ident: &Ident, id: &i32, data: &Data, ) { - let trait_name = format_ident!("Ellipsoid"); - if !imports.contains(&trait_name) { - imports.push(trait_name); - } - - let trait_name = format_ident!("TriAxial"); - if !imports.contains(&trait_name) { - imports.push(trait_name); - } + imports.extend([format_ident!("Ellipsoid"), format_ident!("TriAxial")]); let radii = format!("BODY{id}_RADII"); if let Some(radii) = data.pck.get_double_array(&radii) { @@ -280,17 +270,15 @@ fn tri_axial( } fn point_mass( - imports: &mut Vec, + imports: &mut HashSet, code: &mut TokenStream, tests: &mut TokenStream, ident: &Ident, id: &i32, data: &Data, ) { - let trait_name = format_ident!("PointMass"); - if !imports.contains(&trait_name) { - imports.push(trait_name); - } + imports.insert(format_ident!("PointMass")); + let key = format!("BODY{id}_GM"); if let Some(gm) = data.gm.get_double_array(&key) { let gm = gm.first().unwrap(); @@ -316,3 +304,27 @@ fn point_mass( } }; } + +/// Generates implementations for [lox_core::bodies::RotationalElements]. +fn rotational_elements( + imports: &mut HashSet, + code: &mut TokenStream, + tests: &mut TokenStream, + ident: &Ident, + id: &i32, + data: &Data, +) { + let elements = match RotationalElements::parse(*id as u32, ident, CoefficientKernel(&data.pck)) + { + Ok(elements) => elements, + Err(err) => panic!("failed to parse rotational elements for {}: {}", ident, err), + }; + + imports.extend([ + format_ident!("RotationalElements"), + format_ident!("PolynomialCoefficients"), + format_ident!("NutationPrecessionCoefficients"), + ]); + code.extend(elements.code_tokens()); + tests.extend(elements.test_tokens()); +} diff --git a/tools/lox_gen/src/naif_ids.rs b/tools/lox_gen/src/naif_ids.rs index 26cf4826..91ef5548 100644 --- a/tools/lox_gen/src/naif_ids.rs +++ b/tools/lox_gen/src/naif_ids.rs @@ -35,6 +35,10 @@ pub const PLANETS: [Body; 9] = [ (999, "Pluto"), ]; +pub fn is_planet(id: i32) -> bool { + PLANETS.iter().any(|(i, _)| *i == id) +} + pub const SATELLITES: [Body; 152] = [ (301, "Moon"), (401, "Phobos"), diff --git a/tools/lox_gen/src/rotational_elements.rs b/tools/lox_gen/src/rotational_elements.rs new file mode 100644 index 00000000..0cc6cc8b --- /dev/null +++ b/tools/lox_gen/src/rotational_elements.rs @@ -0,0 +1,338 @@ +/* + * Copyright (c) 2023. Helge Eichhorn and the LOX contributors + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +use proc_macro2::{Ident, TokenStream}; +use quote::{format_ident, quote, ToTokens}; +use thiserror::Error; + +use lox_io::spice::Kernel; + +use crate::naif_ids::is_planet; + +/// Converts [lox_core::bodies::PolynomialCoefficients] into a TokenStream. +pub struct TokenizeablePolynomialCoefficients(f64, f64, f64, Vec); + +impl ToTokens for TokenizeablePolynomialCoefficients { + fn to_tokens(&self, tokens: &mut TokenStream) { + let Self(a, b, c, d) = self; + // The explicit type annotation is required to support the case of an empty slice. + tokens.extend(quote! { (#a, #b, #c, &[#(#d),*] as &[f64]) }); + } +} + +/// Converts [lox_core::bodies::NutationPrecessionCoefficients] into a TokenStream. +#[derive(Default)] +pub struct TokenizeableNutPrecCoefficients((Vec, Vec)); + +impl ToTokens for TokenizeableNutPrecCoefficients { + fn to_tokens(&self, tokens: &mut TokenStream) { + let (a, b) = &self.0; + // The explicit type annotations are required to support the case of an empty slice. + tokens.extend(quote! { (&[#(#a),*] as &[f64], &[#(#b),*] as &[f64]) }); + } +} + +/// Holds the rotational elements for a given body. +/// +/// May be parsed directly from PCK data and knows how to represent its code and test components as +/// streams of tokens. +/// +/// Wherever data is not available for a given body, the corresponding field will be empty. +pub(crate) struct RotationalElements<'a> { + id: u32, + ident: &'a Ident, + right_ascension: TokenizeablePolynomialCoefficients, + declination: TokenizeablePolynomialCoefficients, + prime_meridian: TokenizeablePolynomialCoefficients, + + /// barycenter_nut_prec_coefficients will be the type default for all bodies except the prime + /// bodies of their respective systems. + barycenter_nut_prec_coefficients: TokenizeableNutPrecCoefficients, +} + +impl<'a> RotationalElements<'a> { + pub(crate) fn parse( + id: u32, + ident: &'a Ident, + kernel: impl GetPolynomialCoefficients, + ) -> Result> { + Ok(Self { + id, + ident, + right_ascension: kernel.get_right_ascension_coefficients_or_default(id)?, + declination: kernel.get_declination_coefficients_or_default(id)?, + prime_meridian: kernel.get_prime_meridian_coefficients_or_default(id)?, + barycenter_nut_prec_coefficients: kernel + .get_barycenter_nut_prec_coefficients_or_default(id)?, + }) + } + + /// Returns the TokenStream corresponding to the [lox_core::bodies::BodyRotationalElements] impl. + pub(crate) fn code_tokens(&self) -> TokenStream { + let ident = self.ident; + let barycenter_nut_prec = &self.barycenter_nut_prec_coefficients; + let right_ascension = &self.right_ascension; + let declination = &self.declination; + let prime_meridian = &self.prime_meridian; + + quote! { + #[allow(clippy::approx_constant)] + impl RotationalElements for #ident { + const NUTATION_PRECESSION_COEFFICIENTS: NutationPrecessionCoefficients = #barycenter_nut_prec; + const RIGHT_ASCENSION_COEFFICIENTS: PolynomialCoefficients = #right_ascension; + const DECLINATION_COEFFICIENTS: PolynomialCoefficients = #declination; + const PRIME_MERIDIAN_COEFFICIENTS: PolynomialCoefficients = #prime_meridian; + } + } + } + + /// Returns the TokenStream testing the [lox_core::bodies::BodyRotationalElements] impl. + pub(crate) fn test_tokens(&self) -> TokenStream { + let ident = self.ident; + let barycenter_nut_prec = &self.barycenter_nut_prec_coefficients; + let right_ascension = &self.right_ascension; + let declination = &self.declination; + let prime_meridian = &self.prime_meridian; + + let barycenter_nut_prec_test_name = format_ident!( + "test_rotational_elements_nutation_precession_coefficients_{}", + self.id + ); + + let right_ascension_test_name = format_ident!( + "test_rotational_elements_right_ascension_coefficients_{}", + self.id + ); + + let declination_test_name = format_ident!( + "test_rotational_elements_declination_coefficients_{}", + self.id + ); + + let prime_meridian_test_name = format_ident!( + "test_rotational_elements_prime_meridian_coefficients_{}", + self.id + ); + + quote! { + #[test] + fn #barycenter_nut_prec_test_name() { + assert_eq!(#barycenter_nut_prec, #ident::NUTATION_PRECESSION_COEFFICIENTS) + } + + #[test] + fn #right_ascension_test_name() { + assert_eq!(#right_ascension, #ident::RIGHT_ASCENSION_COEFFICIENTS) + } + + #[test] + fn #declination_test_name() { + assert_eq!(#declination, #ident::DECLINATION_COEFFICIENTS) + } + + #[test] + fn #prime_meridian_test_name() { + assert_eq!(#prime_meridian, #ident::PRIME_MERIDIAN_COEFFICIENTS) + } + } + } +} + +/// Indicates that a value retrieved from the kernel did not conform to the domain model. +#[derive(Debug, Error)] +pub enum CoefficientsError { + #[error("kernel coefficients with key {key} had size {actual}, expected at least {actual}")] + TooFew { + key: String, + min: usize, + actual: usize, + }, + #[error("kernel coefficients with key {key} had size {actual}, expected at most {actual}")] + TooMany { + key: String, + max: usize, + actual: usize, + }, + #[error( + "barycenter nutation precession coefficients with key {key} had an odd number of \ + terms, but an even number is required" + )] + OddNumber { key: String }, +} + +/// GetPolynomialCoefficients supports translation between a raw PCK kernel and RotationalElements. +pub trait GetPolynomialCoefficients { + fn get_right_ascension_coefficients_or_default( + &self, + id: u32, + ) -> Result>; + + fn get_declination_coefficients_or_default( + &self, + id: u32, + ) -> Result>; + + fn get_prime_meridian_coefficients_or_default( + &self, + id: u32, + ) -> Result>; + + fn get_barycenter_nut_prec_coefficients_or_default( + &self, + barycenter_id: u32, + ) -> Result>; +} + +/// Concrete translator from a raw PCK kernel to RotationalElements. Produces coefficients in +/// radians. +pub struct CoefficientKernel<'a>(pub &'a Kernel); + +/// The type of coefficient to be retrieved from the kernel. +enum PolynomialCoefficientType { + RightAscension, + Declination, + PrimeMeridian, +} + +impl PolynomialCoefficientType { + /// Returns the pair of kernel keys required to retrieve the trig and non-trig coefficients for + /// a given body and coefficient type. + fn keys(&self, id: u32) -> (String, String) { + match self { + PolynomialCoefficientType::RightAscension => ( + format!("BODY{}_POLE_RA", id), + format!("BODY{}_NUT_PREC_RA", id), + ), + PolynomialCoefficientType::Declination => ( + format!("BODY{}_POLE_DEC", id), + format!("BODY{}_NUT_PREC_DEC", id), + ), + PolynomialCoefficientType::PrimeMeridian => { + (format!("BODY{}_PM", id), format!("BODY{}_NUT_PREC_PM", id)) + } + } + } +} + +impl GetPolynomialCoefficients for CoefficientKernel<'_> { + fn get_right_ascension_coefficients_or_default( + &self, + id: u32, + ) -> Result> { + self.get_polynomial_coefficients_or_default(id, PolynomialCoefficientType::RightAscension) + } + + fn get_declination_coefficients_or_default( + &self, + id: u32, + ) -> Result> { + self.get_polynomial_coefficients_or_default(id, PolynomialCoefficientType::Declination) + } + + fn get_prime_meridian_coefficients_or_default( + &self, + id: u32, + ) -> Result> { + self.get_polynomial_coefficients_or_default(id, PolynomialCoefficientType::PrimeMeridian) + } + + fn get_barycenter_nut_prec_coefficients_or_default( + &self, + id: u32, + ) -> Result> { + if !is_planet(id as i32) { + return Ok(TokenizeableNutPrecCoefficients::default()); + } + + let barycenter_id = id / 100; + + let key = format!("BODY{}_NUT_PREC_ANGLES", barycenter_id); + match self.0.get_double_array(&key) { + None => Ok(TokenizeableNutPrecCoefficients::default()), + // The raw kernel data is an array of implicit pairs, so the number of coefficients must + // always be even. + Some(coefficients) if coefficients.len() % 2 == 1 => { + Err(Box::new(CoefficientsError::OddNumber { + key: key.to_string(), + })) + } + // Split the implicit pairs into two index-matched vecs. + Some(coefficients) => Ok(TokenizeableNutPrecCoefficients(unpair(coefficients))), + } + } +} + +impl<'a> CoefficientKernel<'a> { + fn get_polynomial_coefficients_or_default( + &self, + id: u32, + pct: PolynomialCoefficientType, + ) -> Result> { + let (key, nut_prec_key) = pct.keys(id); + let non_trig_coefficients = self.get_non_trig_coefficients_or_default(&key)?; + let nut_prec_coefficients = self.get_nut_prec_coefficients_or_default(&nut_prec_key)?; + + Ok(TokenizeablePolynomialCoefficients( + non_trig_coefficients[0], + non_trig_coefficients[1], + non_trig_coefficients[2], + nut_prec_coefficients, + )) + } + + fn get_non_trig_coefficients_or_default( + &self, + key: &str, + ) -> Result<[f64; 3], Box> { + match self.0.get_double_array(key) { + None => Ok([0.0; 3]), + Some(coefficients) if coefficients.len() < 2 => { + Err(Box::new(CoefficientsError::TooFew { + key: key.to_string(), + min: 2, + actual: coefficients.len(), + })) + } + Some(coefficients) if coefficients.len() > 3 => { + Err(Box::new(CoefficientsError::TooMany { + key: key.to_string(), + max: 3, + actual: coefficients.len(), + })) + } + Some(coefficients) => Ok([ + coefficients[0].to_radians(), + coefficients[1].to_radians(), + coefficients.get(2).copied().unwrap_or(0.0).to_radians(), + ]), + } + } + + fn get_nut_prec_coefficients_or_default( + &self, + key: &str, + ) -> Result, Box> { + match self.0.get_double_array(key) { + None => Ok(vec![]), + Some(coefficients) => Ok(coefficients.iter().map(|c| c.to_radians()).collect()), + } + } +} + +fn unpair(vec: &Vec) -> (Vec, Vec) { + let mut a: Vec = Vec::with_capacity(vec.len() / 2); + let mut b: Vec = Vec::with_capacity(vec.len() / 2); + for (i, coefficient) in vec.iter().enumerate() { + if i % 2 == 0 { + a.push(*coefficient); + } else { + b.push(*coefficient); + } + } + (a, b) +}