Skip to content

Commit

Permalink
Test planets
Browse files Browse the repository at this point in the history
  • Loading branch information
helgee committed Jan 24, 2024
1 parent d2a50bf commit 02e4e33
Showing 1 changed file with 40 additions and 4 deletions.
44 changes: 40 additions & 4 deletions crates/lox_py/src/bodies.rs
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,12 @@ impl PyPlanet {
}
}

fn __repr__(&self) -> PyResult<String> {
Ok(format!("Planet(\"{}\")", self.name()))
fn __repr__(&self) -> String {
format!("Planet(\"{}\")", self.name())
}

fn __str__(&self) -> PyResult<String> {
Ok(self.name().to_string())
fn __str__(&self) -> &str {
self.name()
}

pub fn id(&self) -> i32 {
Expand Down Expand Up @@ -444,6 +444,13 @@ mod tests {
#[rstest]
#[case("Mercury Barycenter", MercuryBarycenter)]
#[case("Venus Barycenter", VenusBarycenter)]
#[case("Earth Barycenter", EarthBarycenter)]
#[case("Mars Barycenter", MarsBarycenter)]
#[case("Jupiter Barycenter", JupiterBarycenter)]
#[case("Saturn Barycenter", SaturnBarycenter)]
#[case("Uranus Barycenter", UranusBarycenter)]
#[case("Neptune Barycenter", NeptuneBarycenter)]
#[case("Pluto Barycenter", PlutoBarycenter)]
fn test_barycenter(#[case] name: &str, #[case] barycenter: impl Barycenter) {
let py_barycenter = PyBarycenter::new(name).expect("barycenter should be valid");
assert_eq!(
Expand All @@ -466,4 +473,33 @@ mod tests {
barycenter.gravitational_parameter()
);
}

#[rstest]
#[case("Mercury", Mercury)]
#[case("Venus", Venus)]
#[case("Earth", Earth)]
#[case("Mars", Mars)]
#[case("Jupiter", Jupiter)]
#[case("Saturn", Saturn)]
#[case("Uranus", Uranus)]
#[case("Neptune", Neptune)]
#[case("Pluto", Pluto)]
fn test_planet(#[case] name: &str, #[case] planet: impl Planet) {
let py_planet = PyPlanet::new(name).expect("planet should be valid");
assert_eq!(py_planet.__repr__(), format!("Planet(\"{}\")", name));
assert_eq!(py_planet.__str__(), name);
assert_eq!(py_planet.name(), name);
let py_planet = PyPlanet::new(&name.to_lowercase()).expect("planet should be valid");
assert_eq!(py_planet.__repr__(), format!("Planet(\"{}\")", name));
assert_eq!(py_planet.__str__(), name);
assert_eq!(py_planet.name(), name);
assert_eq!(py_planet.id(), planet.id().0);
assert_eq!(
py_planet.gravitational_parameter(),
planet.gravitational_parameter()
);
assert_eq!(py_planet.mean_radius(), planet.mean_radius());
assert_eq!(py_planet.polar_radius(), planet.polar_radius());
assert_eq!(py_planet.equatorial_radius(), planet.equatorial_radius());
}
}

0 comments on commit 02e4e33

Please sign in to comment.