forked from Mirrorlandia_minetest/minetest
Add testWrapDegrees_0_360_v3f unittests
This commit is contained in:
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,24 +108,63 @@ 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(720.5) - 0.5) < 0.001);
|
||||||
|
UASSERT(fabs(modulo360f(-0.5) - (-0.5)) < 0.001);
|
||||||
|
UASSERT(fabs(modulo360f(-365.5) - (-5.5)) < 0.001);
|
||||||
|
|
||||||
|
for (float f = -720; f <= -360; f += 0.25) {
|
||||||
|
UASSERT(std::fabs(modulo360f(f) - modulo360f(f + 360)) < 0.001);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (float f = -1440; f <= 1440; f += 0.25) {
|
||||||
|
UASSERT(std::fabs(modulo360f(f) - fmodf(f, 360)) < 0.001);
|
||||||
|
UASSERT(std::fabs(wrapDegrees_180(f) - ref_WrapDegrees180(f)) < 0.001);
|
||||||
|
UASSERT(std::fabs(wrapDegrees_0_360(f) - ref_WrapDegrees_0_360(f)) < 0.001);
|
||||||
|
UASSERT(wrapDegrees_0_360(
|
||||||
|
std::fabs(wrapDegrees_180(f) - wrapDegrees_0_360(f))) < 0.001);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestUtilities::testWrapDegrees_0_360_v3f()
|
||||||
{
|
{
|
||||||
UASSERT(fabs(modulo360f(100.0) - 100.0) < 0.001);
|
// only x test with little step
|
||||||
UASSERT(fabs(modulo360f(720.5) - 0.5) < 0.001);
|
for (float x = -720.f; x <= 720; x += 0.05) {
|
||||||
UASSERT(fabs(modulo360f(-0.5) - (-0.5)) < 0.001);
|
v3f r = wrapDegrees_0_360_v3f(v3f(x, 0, 0));
|
||||||
UASSERT(fabs(modulo360f(-365.5) - (-5.5)) < 0.001);
|
UASSERT(r.X >= 0.0f && r.X < 360.0f)
|
||||||
|
UASSERT(r.Y == 0.0f)
|
||||||
|
UASSERT(r.Z == 0.0f)
|
||||||
|
}
|
||||||
|
|
||||||
for (float f = -720; f <= -360; f += 0.25) {
|
// only y test with little step
|
||||||
UASSERT(std::fabs(modulo360f(f) - modulo360f(f + 360)) < 0.001);
|
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (float f = -1440; f <= 1440; f += 0.25) {
|
// test the whole coordinate translation
|
||||||
UASSERT(std::fabs(modulo360f(f) - fmodf(f, 360)) < 0.001);
|
for (float x = -720.f; x <= 720; x += 2.5) {
|
||||||
UASSERT(std::fabs(wrapDegrees_180(f) - ref_WrapDegrees180(f)) < 0.001);
|
for (float y = -720.f; y <= 720; y += 2.5) {
|
||||||
UASSERT(std::fabs(wrapDegrees_0_360(f) - ref_WrapDegrees_0_360(f)) < 0.001);
|
for (float z = -720.f; z <= 720; z += 2.5) {
|
||||||
UASSERT(wrapDegrees_0_360(
|
v3f r = wrapDegrees_0_360_v3f(v3f(x, y, z));
|
||||||
std::fabs(wrapDegrees_180(f) - wrapDegrees_0_360(f))) < 0.001);
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user