Add testWrapDegrees_0_360_v3f unittests

This commit is contained in:
Loïc Blot 2018-12-04 16:18:17 +01:00
parent e6811184d5
commit 75a26b10ab

@ -31,6 +31,7 @@ public:
void runTests(IGameDef *gamedef); void runTests(IGameDef *gamedef);
void testAngleWrapAround(); void testAngleWrapAround();
void testWrapDegrees_0_360_v3f();
void testLowercase(); void testLowercase();
void testTrim(); void testTrim();
void testIsYes(); void testIsYes();
@ -59,6 +60,7 @@ static TestUtilities g_test_instance;
void TestUtilities::runTests(IGameDef *gamedef) void TestUtilities::runTests(IGameDef *gamedef)
{ {
TEST(testAngleWrapAround); TEST(testAngleWrapAround);
TEST(testWrapDegrees_0_360_v3f);
TEST(testLowercase); TEST(testLowercase);
TEST(testTrim); TEST(testTrim);
TEST(testIsYes); TEST(testIsYes);
@ -106,8 +108,7 @@ inline float ref_WrapDegrees_0_360(float f)
} }
void TestUtilities::testAngleWrapAround() void TestUtilities::testAngleWrapAround() {
{
UASSERT(fabs(modulo360f(100.0) - 100.0) < 0.001); UASSERT(fabs(modulo360f(100.0) - 100.0) < 0.001);
UASSERT(fabs(modulo360f(720.5) - 0.5) < 0.001); UASSERT(fabs(modulo360f(720.5) - 0.5) < 0.001);
UASSERT(fabs(modulo360f(-0.5) - (-0.5)) < 0.001); UASSERT(fabs(modulo360f(-0.5) - (-0.5)) < 0.001);
@ -124,6 +125,46 @@ void TestUtilities::testAngleWrapAround()
UASSERT(wrapDegrees_0_360( UASSERT(wrapDegrees_0_360(
std::fabs(wrapDegrees_180(f) - wrapDegrees_0_360(f))) < 0.001); std::fabs(wrapDegrees_180(f) - wrapDegrees_0_360(f))) < 0.001);
} }
}
void TestUtilities::testWrapDegrees_0_360_v3f()
{
// only x test with little step
for (float x = -720.f; x <= 720; x += 0.05) {
v3f r = wrapDegrees_0_360_v3f(v3f(x, 0, 0));
UASSERT(r.X >= 0.0f && r.X < 360.0f)
UASSERT(r.Y == 0.0f)
UASSERT(r.Z == 0.0f)
}
// only y test with little step
for (float y = -720.f; y <= 720; y += 0.05) {
v3f r = wrapDegrees_0_360_v3f(v3f(0, y, 0));
UASSERT(r.X == 0.0f)
UASSERT(r.Y >= 0.0f && r.Y < 360.0f)
UASSERT(r.Z == 0.0f)
}
// only z test with little step
for (float z = -720.f; z <= 720; z += 0.05) {
v3f r = wrapDegrees_0_360_v3f(v3f(0, 0, z));
UASSERT(r.X == 0.0f)
UASSERT(r.Y == 0.0f)
UASSERT(r.Z >= 0.0f && r.Z < 360.0f)
}
// test the whole coordinate translation
for (float x = -720.f; x <= 720; x += 2.5) {
for (float y = -720.f; y <= 720; y += 2.5) {
for (float z = -720.f; z <= 720; z += 2.5) {
v3f r = wrapDegrees_0_360_v3f(v3f(x, y, z));
UASSERT(r.X >= 0.0f && r.X < 360.0f)
UASSERT(r.Y >= 0.0f && r.Y < 360.0f)
UASSERT(r.Z >= 0.0f && r.Z < 360.0f)
}
}
}
} }