added new sanity-check assertions

fixed issue with angles [bad interface]
- adjusted other parts accordingly
- added corresponding test-cases
started working on absolute heading
This commit is contained in:
2017-03-31 11:47:29 +02:00
parent 2fdaa795b2
commit 8930be1e2c
10 changed files with 168 additions and 19 deletions

View File

@@ -14,17 +14,38 @@ TEST(Angle, dir) {
}
TEST(Angle, safe) {
ASSERT_EQ(0, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(0)))));
ASSERT_EQ(0, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(360)))));
ASSERT_EQ(85, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(85)))));
ASSERT_EQ(155, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(155)))));
ASSERT_EQ(275, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(275)))));
ASSERT_EQ(355, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(355)))));
// negative
ASSERT_EQ(330, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(-30)))));
ASSERT_EQ(270, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(-90)))));
ASSERT_EQ(185, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(-175)))));
// too positive
ASSERT_EQ(30, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(390)))));
ASSERT_EQ(140, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(500)))));
ASSERT_EQ(180, (int)std::round(Angle::radToDeg(Angle::makeSafe_2PI(Angle::degToRad(900)))));
}
TEST(Angle, calc) {
ASSERT_EQ(0, Angle::getDEG_360(0,0, +1,0)); // to the right
ASSERT_EQ(90, Angle::getDEG_360(0,0, 0,+1)); // upwards
ASSERT_EQ(180, Angle::getDEG_360(0,0, -1,0)); // to the left
ASSERT_EQ(270, Angle::getDEG_360(0,0, 0,-1)); // downwards
ASSERT_EQ(0, (int)Angle::getDEG_360(0,0, +1,0)); // to the right
ASSERT_EQ(90, (int)Angle::getDEG_360(0,0, 0,+1)); // upwards
ASSERT_EQ(180, (int)Angle::getDEG_360(0,0, -1,0)); // to the left
ASSERT_EQ(270, (int)Angle::getDEG_360(0,0, 0,-1)); // downwards
ASSERT_EQ(45, Angle::getDEG_360(0,0, +1,+1)); // to the upper right
ASSERT_EQ(135, Angle::getDEG_360(0,0, -1,+1)); // to the upper left
ASSERT_EQ(225, Angle::getDEG_360(0,0, -1,-1)); // to the lower left
ASSERT_EQ(315, Angle::getDEG_360(0,0, +1,-1)); // to the lower right
ASSERT_EQ(45, (int)Angle::getDEG_360(0,0, +1,+1)); // to the upper right
ASSERT_EQ(135, (int)Angle::getDEG_360(0,0, -1,+1)); // to the upper left
ASSERT_EQ(225, (int)Angle::getDEG_360(0,0, -1,-1)); // to the lower left
ASSERT_EQ(315, (int)Angle::getDEG_360(0,0, +1,-1)); // to the lower right
}