diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..01e58ede --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1 @@ +Resolves # diff --git a/Jenkinsfile b/Jenkinsfile index 3918ead0..43c3738e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -17,7 +17,7 @@ pipeline { parallel { stage('yarn') { steps { - sh 'yarn' + sh '(cd visualization-client && yarn)' } } } @@ -31,10 +31,15 @@ pipeline { } stage('cargo doc') { when { - anyOf { - branch 'master' - changeRequest() - } + branch 'master' + } + steps { + sh 'cargo doc' + } + } + stage('cargo doc --no-deps') { + when { + changeRequest() } steps { sh 'cargo doc --no-deps' @@ -65,6 +70,11 @@ pipeline { sh 'cargo clippy -- -Dwarnings' } } + stage('clippy --tests') { + steps { + sh 'cargo clippy -- -Dwarnings --tests' + } + } stage('rustfmt') { steps { sh 'cargo fmt --all -- --check' diff --git a/environment/src/lib.rs b/environment/src/lib.rs index b99f3a20..bbe29fe3 100644 --- a/environment/src/lib.rs +++ b/environment/src/lib.rs @@ -7,8 +7,10 @@ rust_2018_idioms, missing_debug_implementations, clippy::missing_doc, - clippy::doc_markdown + clippy::doc_markdown, + clippy::unimplemented )] +#![cfg_attr(test, allow(clippy::float_cmp))] #[macro_use] extern crate serde_derive; diff --git a/environment/src/object.rs b/environment/src/object.rs index dcee8b30..4e6c51bc 100644 --- a/environment/src/object.rs +++ b/environment/src/object.rs @@ -137,7 +137,7 @@ pub struct Radians { } impl Radians { - pub fn new(value: f64) -> Option { + pub fn try_new(value: f64) -> Option { if value >= 0.0 && value < 2.0 * PI { Some(Radians { value }) } else { @@ -145,7 +145,7 @@ impl Radians { } } - pub fn value(&self) -> f64 { + pub fn value(self) -> f64 { self.value } } @@ -229,32 +229,32 @@ mod tests { #[test] fn radians_new_with_negative_0_point_1_is_none() { - let radians = Radians::new(-0.1); + let radians = Radians::try_new(-0.1); assert!(radians.is_none()) } #[test] fn radians_new_with_0_is_some() { - let radians = Radians::new(0.0); + let radians = Radians::try_new(0.0); assert!(radians.is_some()) } #[test] fn radians_new_with_1_point_9_pi_is_some() { - let radians = Radians::new(1.9 * PI); + let radians = Radians::try_new(1.9 * PI); assert!(radians.is_some()) } #[test] fn radians_new_with_2_pi_is_none() { - let radians = Radians::new(2.0 * PI); + let radians = Radians::try_new(2.0 * PI); assert!(radians.is_none()) } #[test] fn radians_value_returns_1_when_given_1() { let value = 1.0; - let radians = Radians::new(value).unwrap(); + let radians = Radians::try_new(value).unwrap(); assert_eq!(value, radians.value()) } diff --git a/environment/src/object_builder.rs b/environment/src/object_builder.rs index 71e6133f..4e012f82 100644 --- a/environment/src/object_builder.rs +++ b/environment/src/object_builder.rs @@ -15,7 +15,7 @@ //! .build() //! .unwrap(), //! ).location(300, 450) -//! .rotation(Radians::new(FRAC_PI_2).unwrap()) +//! .rotation(Radians::try_new(FRAC_PI_2).unwrap()) //! .kind(Kind::Organism) //! .mobility(Mobility::Movable(Velocity{x: 3, y: 5})) //! .build() @@ -150,7 +150,7 @@ impl ObjectBuilder { /// use myelin_environment::object_builder::ObjectBuilder; /// use myelin_environment::object::Radians; /// ObjectBuilder::new() - /// .rotation(Radians::new(4.5).unwrap()); + /// .rotation(Radians::try_new(4.5).unwrap()); /// ``` pub fn rotation(&mut self, rotation: Radians) -> &mut Self { self.rotation = Some(rotation); @@ -178,7 +178,7 @@ impl ObjectBuilder { /// .build() /// .unwrap(), /// ).location(300, 450) - /// .rotation(Radians::new(FRAC_PI_2).unwrap()) + /// .rotation(Radians::try_new(FRAC_PI_2).unwrap()) /// .kind(Kind::Organism) /// .mobility(Mobility::Movable(Velocity{x: 3, y: 5})) /// .build() @@ -329,7 +329,7 @@ mod test { fn test_object_builder_should_error_for_missing_shape() { let result = ObjectBuilder::new() .location(10, 10) - .rotation(Radians::new(0.0).unwrap()) + .rotation(Radians::try_new(0.0).unwrap()) .kind(Kind::Terrain) .mobility(Mobility::Immovable) .build(); @@ -356,7 +356,7 @@ mod test { .unwrap(), ) .location(10, 10) - .rotation(Radians::new(0.0).unwrap()) + .rotation(Radians::try_new(0.0).unwrap()) .mobility(Mobility::Immovable) .build(); assert_eq!( @@ -380,7 +380,7 @@ mod test { .build() .unwrap(), ) - .rotation(Radians::new(0.0).unwrap()) + .rotation(Radians::try_new(0.0).unwrap()) .kind(Kind::Terrain) .mobility(Mobility::Immovable) .build(); @@ -406,7 +406,7 @@ mod test { .build() .unwrap(), ) - .rotation(Radians::new(0.0).unwrap()) + .rotation(Radians::try_new(0.0).unwrap()) .location(30, 40) .kind(Kind::Plant) .build(); @@ -447,7 +447,7 @@ mod test { ], }, position: Position { - rotation: Radians::new(0.0).unwrap(), + rotation: Radians::try_new(0.0).unwrap(), location: Location { x: 30, y: 40 }, }, kind: Kind::Terrain, @@ -488,7 +488,7 @@ mod test { .mobility(Mobility::Movable(Velocity { x: -12, y: 5 })) .kind(Kind::Organism) .location(30, 40) - .rotation(Radians::new(1.1).unwrap()) + .rotation(Radians::try_new(1.1).unwrap()) .sensor(Sensor { shape: PolygonBuilder::new() .vertex(2, 0) @@ -498,7 +498,7 @@ mod test { .unwrap(), position: Position { location: Location { x: 12, y: 42 }, - rotation: Radians::new(1.2).unwrap(), + rotation: Radians::try_new(1.2).unwrap(), }, }) .build(); @@ -506,7 +506,7 @@ mod test { let expected = ObjectDescription { position: Position { location: Location { x: 30, y: 40 }, - rotation: Radians::new(1.1).unwrap(), + rotation: Radians::try_new(1.1).unwrap(), }, mobility: Mobility::Movable(Velocity { x: -12, y: 5 }), kind: Kind::Organism, @@ -528,7 +528,7 @@ mod test { }, position: Position { location: Location { x: 12, y: 42 }, - rotation: Radians::new(1.2).unwrap(), + rotation: Radians::try_new(1.2).unwrap(), }, }), }; diff --git a/environment/src/simulation_impl/mod.rs b/environment/src/simulation_impl/mod.rs index ca5f84ce..52a28660 100644 --- a/environment/src/simulation_impl/mod.rs +++ b/environment/src/simulation_impl/mod.rs @@ -813,7 +813,7 @@ mod tests { fn position() -> Position { Position { location: Location { x: 30, y: 40 }, - rotation: Radians::new(3.4).unwrap(), + rotation: Radians::try_new(3.4).unwrap(), } } @@ -974,7 +974,7 @@ mod tests { *self.add_body_was_called.borrow_mut() = true; if let Some((ref expected_body, ref return_value)) = self.expect_add_body_and_return { if body == *expected_body { - return_value.clone() + *return_value } else { panic!( "add_body() was called with {:?}, expected {:?}", @@ -1014,7 +1014,7 @@ mod tests { self.expect_attach_sensor_and_return { if body_handle == *expected_handle && sensor == *expected_sensor { - return_value.clone() + *return_value } else { panic!( "attach_sensor() was called with {:?} and {:?}, expected {:?} and {:?}", @@ -1065,7 +1065,7 @@ mod tests { self.expect_apply_force_and_return { if body_handle == *expected_body_handle && force == *expected_force { - return_value.clone() + *return_value } else { panic!( "apply_force() was called with {:?} and {:?}, expected {:?} and {:?}", diff --git a/environment/src/simulation_impl/world/force_applier.rs b/environment/src/simulation_impl/world/force_applier.rs index d86ce3c7..e3992cf3 100644 --- a/environment/src/simulation_impl/world/force_applier.rs +++ b/environment/src/simulation_impl/world/force_applier.rs @@ -126,7 +126,7 @@ mod tests { torque: Torque::default(), }; let expected_body = body.clone(); - test_force(body, expected_body, force); + test_force(&body, &expected_body, force); } #[test] @@ -138,12 +138,12 @@ mod tests { }; let expected_body = PhysicalBody { position: Position { - rotation: Radians::new(0.6093).unwrap(), + rotation: Radians::try_new(0.6093).unwrap(), ..body.position.clone() }, ..body }; - test_force(physical_body(), expected_body, force); + test_force(&physical_body(), &expected_body, force); } #[test] @@ -155,12 +155,12 @@ mod tests { }; let expected_body = PhysicalBody { position: Position { - rotation: Radians::new(5.0711853071795865).unwrap(), + rotation: Radians::try_new(5.071_185_307_179_586_5).unwrap(), ..body.position.clone() }, ..body }; - test_force(physical_body(), expected_body, force); + test_force(&physical_body(), &expected_body, force); } #[test] @@ -178,7 +178,7 @@ mod tests { mobility: Mobility::Movable(Velocity { x: 9, y: 9 }), ..body }; - test_force(physical_body(), expected_body, force); + test_force(&physical_body(), &expected_body, force); } #[test] @@ -196,7 +196,7 @@ mod tests { mobility: Mobility::Movable(Velocity { x: -4, y: -4 }), ..body }; - test_force(physical_body(), expected_body, force); + test_force(&physical_body(), &expected_body, force); } #[test] @@ -209,15 +209,15 @@ mod tests { let expected_body = PhysicalBody { position: Position { location: Location { - x: 4294967292, - y: 4294967282, + x: 4_294_967_292, + y: 4_294_967_282, }, ..body.position.clone() }, mobility: Mobility::Movable(Velocity { x: -9, y: -19 }), ..body }; - test_force(physical_body(), expected_body, force); + test_force(&physical_body(), &expected_body, force); } #[test] @@ -231,12 +231,12 @@ mod tests { let expected_body = PhysicalBody { position: Position { location: Location { x: 10, y: 15 }, - rotation: Radians::new(0.009000000000000001).unwrap(), + rotation: Radians::try_new(0.009_000_000_000_000_001).unwrap(), }, mobility: Mobility::Movable(Velocity { x: 4, y: 9 }), ..body }; - test_force(physical_body(), expected_body, force); + test_force(&physical_body(), &expected_body, force); } fn physical_body() -> PhysicalBody { @@ -256,7 +256,7 @@ mod tests { } } - fn test_force(body: PhysicalBody, expected_body: PhysicalBody, force: Force) { + fn test_force(body: &PhysicalBody, expected_body: &PhysicalBody, force: Force) { let rotation_translator = NphysicsRotationTranslatorImpl::default(); let force_applier = SingleTimeForceApplierImpl::default(); let mut world = NphysicsWorld::with_timestep( @@ -274,7 +274,7 @@ mod tests { world.step(); let actual_body = world.body(handle).expect(BODY_HANDLE_ERROR); - assert_eq!(expected_body, actual_body); + assert_eq!(*expected_body, actual_body); } } diff --git a/environment/src/simulation_impl/world/mod.rs b/environment/src/simulation_impl/world/mod.rs index e45d5111..6221d2da 100644 --- a/environment/src/simulation_impl/world/mod.rs +++ b/environment/src/simulation_impl/world/mod.rs @@ -418,15 +418,16 @@ mod tests { #[test] fn can_return_rigid_object_with_valid_handle() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(3.0).unwrap(), 3.0); - rotation_translator.expect_to_radians_and_return(3.0, Radians::new(3.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(3.0).unwrap(), 3.0); + rotation_translator.expect_to_radians_and_return(3.0, Radians::try_new(3.0)); let force_applier = SingleTimeForceApplierMock::default(); let mut world = NphysicsWorld::with_timestep( DEFAULT_TIMESTEP, Box::new(rotation_translator), Box::new(force_applier), ); - let movable_body = movable_body(Radians::new(3.0).unwrap()); + let movable_body = movable_body(Radians::try_new(3.0).unwrap()); let handle = world.add_body(movable_body); world.body(handle); @@ -435,15 +436,16 @@ mod tests { #[test] fn can_return_grounded_object_with_valid_handle() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(3.0).unwrap(), 3.0); - rotation_translator.expect_to_radians_and_return(3.0, Radians::new(3.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(3.0).unwrap(), 3.0); + rotation_translator.expect_to_radians_and_return(3.0, Radians::try_new(3.0)); let force_applier = SingleTimeForceApplierMock::default(); let mut world = NphysicsWorld::with_timestep( DEFAULT_TIMESTEP, Box::new(rotation_translator), Box::new(force_applier), ); - let body = immovable_body(Radians::new(3.0).unwrap()); + let body = immovable_body(Radians::try_new(3.0).unwrap()); let handle = world.add_body(body); world.body(handle); @@ -452,15 +454,16 @@ mod tests { #[test] fn removing_object_returns_physical_body() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(3.0).unwrap(), 3.0); - rotation_translator.expect_to_radians_and_return(3.0, Radians::new(3.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(3.0).unwrap(), 3.0); + rotation_translator.expect_to_radians_and_return(3.0, Radians::try_new(3.0)); let force_applier = SingleTimeForceApplierMock::default(); let mut world = NphysicsWorld::with_timestep( DEFAULT_TIMESTEP, Box::new(rotation_translator), Box::new(force_applier), ); - let expected_body = movable_body(Radians::new(3.0).unwrap()); + let expected_body = movable_body(Radians::try_new(3.0).unwrap()); let handle = world.add_body(expected_body.clone()); let physical_body = world.remove_body(handle).expect("Invalid handle"); @@ -491,15 +494,16 @@ mod tests { #[test] fn removed_object_cannot_be_accessed() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(3.0).unwrap(), 3.0); - rotation_translator.expect_to_radians_and_return(3.0, Radians::new(3.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(3.0).unwrap(), 3.0); + rotation_translator.expect_to_radians_and_return(3.0, Radians::try_new(3.0)); let force_applier = SingleTimeForceApplierMock::default(); let mut world = NphysicsWorld::with_timestep( DEFAULT_TIMESTEP, Box::new(rotation_translator), Box::new(force_applier), ); - let expected_body = movable_body(Radians::new(3.0).unwrap()); + let expected_body = movable_body(Radians::try_new(3.0).unwrap()); let handle = world.add_body(expected_body.clone()); let _physical_body = world.remove_body(handle).expect("Invalid handle"); @@ -510,16 +514,17 @@ mod tests { #[test] fn can_return_mixed_objects_with_valid_handles() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(3.0).unwrap(), 3.0); - rotation_translator.expect_to_radians_and_return(3.0, Radians::new(3.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(3.0).unwrap(), 3.0); + rotation_translator.expect_to_radians_and_return(3.0, Radians::try_new(3.0)); let force_applier = SingleTimeForceApplierMock::default(); let mut world = NphysicsWorld::with_timestep( DEFAULT_TIMESTEP, Box::new(rotation_translator), Box::new(force_applier), ); - let rigid_object = movable_body(Radians::new(3.0).unwrap()); - let grounded_object = immovable_body(Radians::new(3.0).unwrap()); + let rigid_object = movable_body(Radians::try_new(3.0).unwrap()); + let grounded_object = immovable_body(Radians::try_new(3.0).unwrap()); let rigid_handle = world.add_body(rigid_object); let grounded_handle = world.add_body(grounded_object); @@ -531,15 +536,16 @@ mod tests { #[test] fn returns_correct_rigid_body() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(3.0).unwrap(), 3.0); - rotation_translator.expect_to_radians_and_return(3.0, Radians::new(3.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(3.0).unwrap(), 3.0); + rotation_translator.expect_to_radians_and_return(3.0, Radians::try_new(3.0)); let force_applier = SingleTimeForceApplierMock::default(); let mut world = NphysicsWorld::with_timestep( DEFAULT_TIMESTEP, Box::new(rotation_translator), Box::new(force_applier), ); - let expected_body = movable_body(Radians::new(3.0).unwrap()); + let expected_body = movable_body(Radians::try_new(3.0).unwrap()); let handle = world.add_body(expected_body.clone()); let actual_body = world.body(handle); @@ -549,15 +555,16 @@ mod tests { #[test] fn returns_correct_grounded_body() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(3.0).unwrap(), 3.0); - rotation_translator.expect_to_radians_and_return(3.0, Radians::new(3.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(3.0).unwrap(), 3.0); + rotation_translator.expect_to_radians_and_return(3.0, Radians::try_new(3.0)); let force_applier = SingleTimeForceApplierMock::default(); let mut world = NphysicsWorld::with_timestep( DEFAULT_TIMESTEP, Box::new(rotation_translator), Box::new(force_applier), ); - let expected_body = immovable_body(Radians::new(3.0).unwrap()); + let expected_body = immovable_body(Radians::try_new(3.0).unwrap()); let handle = world.add_body(expected_body.clone()); let actual_body = world.body(handle); @@ -781,7 +788,7 @@ mod tests { Box::new(rotation_translator), Box::new(force_applier), ); - let invalid_handle = BodyHandle(132144); + let invalid_handle = BodyHandle(132_144); let sensor_handle = world.attach_sensor(invalid_handle, sensor()); assert!(sensor_handle.is_none()) } @@ -795,7 +802,7 @@ mod tests { Box::new(rotation_translator), Box::new(force_applier), ); - let invalid_handle = SensorHandle(112358); + let invalid_handle = SensorHandle(112_358); let body_handles = world.bodies_within_sensor(invalid_handle); assert!(body_handles.is_none()) @@ -804,8 +811,9 @@ mod tests { #[test] fn timestep_is_respected() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(0.0).unwrap(), 0.0); - rotation_translator.expect_to_radians_and_return(0.0, Radians::new(0.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(0.0).unwrap(), 0.0); + rotation_translator.expect_to_radians_and_return(0.0, Radians::try_new(0.0)); let mut force_applier = SingleTimeForceApplierMock::default(); force_applier.expect_apply_and_return(true); let mut world = NphysicsWorld::with_timestep( @@ -835,8 +843,9 @@ mod tests { #[test] fn timestep_can_be_changed() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator.expect_to_radians_and_return(0.0, Radians::new(0.0)); - rotation_translator.expect_to_nphysics_rotation_and_return(Radians::new(0.0).unwrap(), 0.0); + rotation_translator.expect_to_radians_and_return(0.0, Radians::try_new(0.0)); + rotation_translator + .expect_to_nphysics_rotation_and_return(Radians::try_new(0.0).unwrap(), 0.0); let mut force_applier = SingleTimeForceApplierMock::default(); force_applier.expect_apply_and_return(true); let mut world = NphysicsWorld::with_timestep( @@ -867,9 +876,11 @@ mod tests { #[test] fn step_is_ignored_for_rigid_objects_with_no_movement() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator - .expect_to_nphysics_rotation_and_return(Radians::new(FRAC_PI_2).unwrap(), FRAC_PI_2); - rotation_translator.expect_to_radians_and_return(FRAC_PI_2, Radians::new(FRAC_PI_2)); + rotation_translator.expect_to_nphysics_rotation_and_return( + Radians::try_new(FRAC_PI_2).unwrap(), + FRAC_PI_2, + ); + rotation_translator.expect_to_radians_and_return(FRAC_PI_2, Radians::try_new(FRAC_PI_2)); let mut force_applier = SingleTimeForceApplierMock::default(); force_applier.expect_apply_and_return(true); let mut world = NphysicsWorld::with_timestep( @@ -877,7 +888,7 @@ mod tests { Box::new(rotation_translator), Box::new(force_applier), ); - let expected_body = immovable_body(Radians::new(FRAC_PI_2).unwrap()); + let expected_body = immovable_body(Radians::try_new(FRAC_PI_2).unwrap()); let handle = world.add_body(expected_body.clone()); world.step(); @@ -890,9 +901,11 @@ mod tests { #[test] fn step_is_ignored_for_grounded_objects() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator - .expect_to_nphysics_rotation_and_return(Radians::new(FRAC_PI_2).unwrap(), FRAC_PI_2); - rotation_translator.expect_to_radians_and_return(FRAC_PI_2, Radians::new(FRAC_PI_2)); + rotation_translator.expect_to_nphysics_rotation_and_return( + Radians::try_new(FRAC_PI_2).unwrap(), + FRAC_PI_2, + ); + rotation_translator.expect_to_radians_and_return(FRAC_PI_2, Radians::try_new(FRAC_PI_2)); let mut force_applier = SingleTimeForceApplierMock::default(); force_applier.expect_apply_and_return(true); let mut world = NphysicsWorld::with_timestep( @@ -900,7 +913,7 @@ mod tests { Box::new(rotation_translator), Box::new(force_applier), ); - let body = immovable_body(Radians::new(FRAC_PI_2).unwrap()); + let body = immovable_body(Radians::try_new(FRAC_PI_2).unwrap()); let still_body = PhysicalBody { mobility: Mobility::Movable(Velocity { x: 0, y: 0 }), ..body @@ -917,8 +930,10 @@ mod tests { #[test] fn applied_force_is_propagated() { let mut rotation_translator = NphysicsRotationTranslatorMock::default(); - rotation_translator - .expect_to_nphysics_rotation_and_return(Radians::new(FRAC_PI_2).unwrap(), FRAC_PI_2); + rotation_translator.expect_to_nphysics_rotation_and_return( + Radians::try_new(FRAC_PI_2).unwrap(), + FRAC_PI_2, + ); let mut force_applier = SingleTimeForceApplierMock::default(); let expected_force = Force { linear: LinearForce { x: 4, y: 10 }, @@ -931,7 +946,7 @@ mod tests { Box::new(rotation_translator), Box::new(force_applier), ); - let expected_body = movable_body(Radians::new(FRAC_PI_2).unwrap()); + let expected_body = movable_body(Radians::try_new(FRAC_PI_2).unwrap()); let handle = world.add_body(expected_body.clone()); world.apply_force(handle, expected_force); @@ -1021,7 +1036,10 @@ mod tests { self.expect_to_nphysics_rotation_and_return { if orientation != expected_input { - panic!("to_nphysics_rotation() was called with an unexpected input value: {:?}") + panic!( + "to_nphysics_rotation() was called with an unexpected input value: {:?}", + orientation + ) } expected_output @@ -1035,7 +1053,10 @@ mod tests { if let Some((expected_input, expected_output)) = self.expect_to_radians_and_return { if nphysics_rotation != expected_input { - panic!("to_radians() was called with an unexpected input value: {:?}") + panic!( + "to_radians() was called with an unexpected input value: {:?}", + nphysics_rotation + ) } expected_output diff --git a/environment/src/simulation_impl/world/rotation_translator.rs b/environment/src/simulation_impl/world/rotation_translator.rs index 600c7664..c5d50f59 100644 --- a/environment/src/simulation_impl/world/rotation_translator.rs +++ b/environment/src/simulation_impl/world/rotation_translator.rs @@ -19,9 +19,9 @@ impl NphysicsRotationTranslator for NphysicsRotationTranslatorImpl { fn to_radians(&self, nphysics_rotation: f64) -> Option { if nphysics_rotation >= 0.0 { - Radians::new(nphysics_rotation) + Radians::try_new(nphysics_rotation) } else { - Radians::new((2.0 * PI) + nphysics_rotation) + Radians::try_new((2.0 * PI) + nphysics_rotation) } } } @@ -121,48 +121,48 @@ mod tests { #[test] fn to_nphysics_rotation_returns_0_when_passed_0() { - verify_to_nphysics_rotation_returns_exoected_result(Radians::new(0.0).unwrap(), 0.0) + verify_to_nphysics_rotation_returns_exoected_result(Radians::try_new(0.0).unwrap(), 0.0) } #[test] fn to_nphysics_rotation_returns_half_pi_when_passed_half_pi() { verify_to_nphysics_rotation_returns_exoected_result( - Radians::new(FRAC_PI_2).unwrap(), + Radians::try_new(FRAC_PI_2).unwrap(), FRAC_PI_2, ) } #[test] fn to_nphysics_rotation_returns_pi_when_passed_pi() { - verify_to_nphysics_rotation_returns_exoected_result(Radians::new(PI).unwrap(), PI) + verify_to_nphysics_rotation_returns_exoected_result(Radians::try_new(PI).unwrap(), PI) } #[test] fn to_nphysics_rotation_returns_negative_half_pi_when_passed_one_and_a_half_pi() { verify_to_nphysics_rotation_returns_exoected_result( - Radians::new(3.0 * FRAC_PI_2).unwrap(), + Radians::try_new(3.0 * FRAC_PI_2).unwrap(), -FRAC_PI_2, ) } #[test] fn to_radians_returns_0_when_passed_0() { - verify_to_radians_returns_expected_result(0.0, Radians::new(0.0)) + verify_to_radians_returns_expected_result(0.0, Radians::try_new(0.0)) } #[test] fn to_radians_returns_half_pi_when_passed_half_pi() { - verify_to_radians_returns_expected_result(FRAC_PI_2, Radians::new(FRAC_PI_2)) + verify_to_radians_returns_expected_result(FRAC_PI_2, Radians::try_new(FRAC_PI_2)) } #[test] fn to_radians_returns_returns_pi_when_passed_pi() { - verify_to_radians_returns_expected_result(PI, Radians::new(PI)) + verify_to_radians_returns_expected_result(PI, Radians::try_new(PI)) } #[test] fn to_radians_returns_one_and_a_half_pi_when_passed_negative_half_pi() { - verify_to_radians_returns_expected_result(-FRAC_PI_2, Radians::new(3.0 * FRAC_PI_2)) + verify_to_radians_returns_expected_result(-FRAC_PI_2, Radians::try_new(3.0 * FRAC_PI_2)) } fn verify_to_nphysics_rotation_returns_exoected_result(input: Radians, expected: f64) { diff --git a/object-behavior/src/lib.rs b/object-behavior/src/lib.rs index f3073421..eecc0482 100644 --- a/object-behavior/src/lib.rs +++ b/object-behavior/src/lib.rs @@ -5,7 +5,8 @@ rust_2018_idioms, missing_debug_implementations, clippy::missing_doc, - clippy::doc_markdown + clippy::doc_markdown, + clippy::unimplemented )] // Not named "static" because that would be a keyword diff --git a/object-behavior/src/static_behavior.rs b/object-behavior/src/static_behavior.rs index 5f604565..2a146c24 100644 --- a/object-behavior/src/static_behavior.rs +++ b/object-behavior/src/static_behavior.rs @@ -42,7 +42,7 @@ mod tests { .unwrap(), ) .location(300, 450) - .rotation(Radians::new(FRAC_PI_2).unwrap()) + .rotation(Radians::try_new(FRAC_PI_2).unwrap()) .kind(Kind::Organism) .mobility(Mobility::Movable(Velocity { x: 3, y: 5 })) .build() diff --git a/visualization-client/src/controller.rs b/visualization-client/src/controller.rs index a2de948a..be83f943 100644 --- a/visualization-client/src/controller.rs +++ b/visualization-client/src/controller.rs @@ -130,7 +130,7 @@ mod tests { .expect("Created invalid vertex"), ), location: Some(Location { x: 20, y: 40 }), - rotation: Some(Radians::new(6.0).unwrap()), + rotation: Some(Radians::try_new(6.0).unwrap()), mobility: None, kind: None, sensor: None, diff --git a/visualization-client/src/lib.rs b/visualization-client/src/lib.rs index a18ad6c0..c1b13ca1 100644 --- a/visualization-client/src/lib.rs +++ b/visualization-client/src/lib.rs @@ -5,7 +5,8 @@ rust_2018_idioms, missing_debug_implementations, clippy::missing_doc, - clippy::doc_markdown + clippy::doc_markdown, + clippy::unimplemented )] #[cfg_attr(test, macro_use)] diff --git a/visualization-client/src/presenter/delta_applier.rs b/visualization-client/src/presenter/delta_applier.rs index 01cf2f48..e3280d4d 100644 --- a/visualization-client/src/presenter/delta_applier.rs +++ b/visualization-client/src/presenter/delta_applier.rs @@ -263,12 +263,12 @@ mod test { fn apply_delta_handles_rotation_update() { test_apply_delta_handles_update( ObjectDescriptionDelta { - rotation: Some(Radians::new(PI).unwrap()), + rotation: Some(Radians::try_new(PI).unwrap()), ..Default::default() }, { let mut object_description = object_description(); - object_description.position.rotation = Radians::new(PI).unwrap(); + object_description.position.rotation = Radians::try_new(PI).unwrap(); object_description }, ); diff --git a/visualization-client/src/presenter/global_polygon_translator.rs b/visualization-client/src/presenter/global_polygon_translator.rs index d239b068..cb78e2c1 100644 --- a/visualization-client/src/presenter/global_polygon_translator.rs +++ b/visualization-client/src/presenter/global_polygon_translator.rs @@ -111,7 +111,7 @@ mod test { view_model::Vertex { x: 40, y: 30 }, ], }, - translator.to_global_polygon(&polygon(), &position(Radians::new(PI).unwrap())) + translator.to_global_polygon(&polygon(), &position(Radians::try_new(PI).unwrap())) ); } @@ -140,7 +140,7 @@ mod test { }, ], }, - translator.to_global_polygon(&polygon(), &position(Radians::new(3.0).unwrap())) + translator.to_global_polygon(&polygon(), &position(Radians::try_new(3.0).unwrap())) ); } } diff --git a/visualization-core/src/lib.rs b/visualization-core/src/lib.rs index 4a2d7e48..2cf333cf 100644 --- a/visualization-core/src/lib.rs +++ b/visualization-core/src/lib.rs @@ -3,7 +3,8 @@ rust_2018_idioms, missing_debug_implementations, clippy::missing_doc, - clippy::doc_markdown + clippy::doc_markdown, + clippy::unimplemented )] #[macro_use] diff --git a/visualization-core/src/serialization/json.rs b/visualization-core/src/serialization/json.rs index afda60f1..22dc3ac2 100644 --- a/visualization-core/src/serialization/json.rs +++ b/visualization-core/src/serialization/json.rs @@ -89,7 +89,7 @@ mod test { ), mobility: Some(Mobility::Movable(Velocity { x: 2, y: 3 })), location: Some(Location { x: 3, y: 4 }), - rotation: Some(Radians::new(1.0).unwrap()), + rotation: Some(Radians::try_new(1.0).unwrap()), sensor: Some(Some(Sensor { shape: PolygonBuilder::new() .vertex(-10, -12) @@ -99,7 +99,7 @@ mod test { .unwrap(), position: Position { location: Location { x: 2, y: 3 }, - rotation: Radians::new(1.0).unwrap(), + rotation: Radians::try_new(1.0).unwrap(), }, })), }; @@ -143,7 +143,7 @@ mod test { ), mobility: Some(Mobility::Movable(Velocity { x: 2, y: 3 })), location: Some(Location { x: 3, y: 4 }), - rotation: Some(Radians::new(1.0).unwrap()), + rotation: Some(Radians::try_new(1.0).unwrap()), sensor: Some(Some(Sensor { shape: PolygonBuilder::new() .vertex(-10, -12) @@ -153,7 +153,7 @@ mod test { .unwrap(), position: Position { location: Location { x: 2, y: 3 }, - rotation: Radians::new(1.0).unwrap(), + rotation: Radians::try_new(1.0).unwrap(), }, })), }; diff --git a/visualization-server/src/client.rs b/visualization-server/src/client.rs index 61edcbb4..941b20ba 100644 --- a/visualization-server/src/client.rs +++ b/visualization-server/src/client.rs @@ -290,7 +290,7 @@ mod tests { .unwrap(), ) .location(50, 50) - .rotation(Radians::new(1.0).unwrap()) + .rotation(Radians::try_new(1.0).unwrap()) .sensor(Sensor { shape: PolygonBuilder::new() .vertex(-2, -2) diff --git a/visualization-server/src/lib.rs b/visualization-server/src/lib.rs index 38dfacc6..2d9aa250 100644 --- a/visualization-server/src/lib.rs +++ b/visualization-server/src/lib.rs @@ -5,7 +5,8 @@ rust_2018_idioms, missing_debug_implementations, clippy::missing_doc, - clippy::doc_markdown + clippy::doc_markdown, + clippy::unimplemented )] #[macro_use] diff --git a/worldgen/src/generator/hardcoded_generator.rs b/worldgen/src/generator/hardcoded_generator.rs index 25fcd29e..67d8b846 100644 --- a/worldgen/src/generator/hardcoded_generator.rs +++ b/worldgen/src/generator/hardcoded_generator.rs @@ -200,7 +200,7 @@ fn build_organism(x: u32, y: u32) -> ObjectDescription { .expect("Generated an invalid vertex"), ) .location(x, y) - .rotation(Radians::new(FRAC_PI_2).unwrap()) + .rotation(Radians::try_new(FRAC_PI_2).unwrap()) .mobility(Mobility::Movable(Velocity::default())) .kind(Kind::Organism) .sensor(Sensor { @@ -263,7 +263,7 @@ mod tests { } impl Drop for SimulationMock { fn drop(&mut self) { - assert!(self.objects.len() > 0); + assert!(!self.objects.is_empty()); } } diff --git a/worldgen/src/lib.rs b/worldgen/src/lib.rs index 7d58dfc8..789260cc 100644 --- a/worldgen/src/lib.rs +++ b/worldgen/src/lib.rs @@ -7,7 +7,8 @@ rust_2018_idioms, missing_debug_implementations, clippy::missing_doc, - clippy::doc_markdown + clippy::doc_markdown, + clippy::unimplemented )] use myelin_environment::Simulation;