Skip to content

Commit

Permalink
Merge pull request #14 from ichiro-its/12-add-delta-angle-equation
Browse files Browse the repository at this point in the history
Add Delta Angle Equation
  • Loading branch information
threeal authored Apr 19, 2021
2 parents 483f7c7 + 0204895 commit f0f9589
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
3 changes: 3 additions & 0 deletions include/keisan/angle.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ double wrap_deg(double value);
double rad_to_deg(double value);
double deg_to_rad(double value);

double delta_deg(double value1, double value2);
double delta_rad(double value1, double value2);

} // namespace keisan

#endif // KEISAN__ANGLE_HPP_
10 changes: 10 additions & 0 deletions src/angle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,14 @@ double deg_to_rad(double value)
return wrap_rad(scale_number(value, 180.0, pi));
}

double delta_deg(double value1, double value2)
{
return wrap_deg(value2 - value1);
}

double delta_rad(double value1, double value2)
{
return wrap_rad(value2 - value1);
}

} // namespace keisan
37 changes: 37 additions & 0 deletions test/angle_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,40 @@ TEST(DegToRadTest, ConversionTest) {
keisan::deg_to_rad(180.0 * 6.2),
keisan::pi * 0.2);
}

TEST(DeltaDegTest, OverflowTest) {
ASSERT_DOUBLE_EQ(
keisan::delta_deg(-30.0, 40.0),
70.0);

ASSERT_DOUBLE_EQ(
keisan::delta_deg(30.0, -40.0),
-70.0);

ASSERT_DOUBLE_EQ(
keisan::delta_deg(100.0, -150.0),
110.0);

ASSERT_DOUBLE_EQ(
keisan::delta_deg(-100.0, 150.0),
-110.0);
}

TEST(DeltaRadTest, OverflowTest)
{
ASSERT_DOUBLE_EQ(
keisan::delta_rad(keisan::pi * -0.1, keisan::pi * 0.3),
keisan::pi * 0.4);

ASSERT_DOUBLE_EQ(
keisan::delta_rad(keisan::pi * 0.1, keisan::pi * -0.3),
keisan::pi * -0.4);

ASSERT_DOUBLE_EQ(
keisan::delta_rad(keisan::pi * 0.6, keisan::pi * -0.7),
keisan::pi * 0.7);

ASSERT_DOUBLE_EQ(
keisan::delta_rad(keisan::pi * -0.6, keisan::pi * 0.7),
keisan::pi * -0.7);
}

0 comments on commit f0f9589

Please sign in to comment.