58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
#if GTEST
|
|
#include <gtest/gtest.h>
|
|
#include <limits>
|
|
#include <math.h>
|
|
|
|
#include "Spherical.h"
|
|
|
|
#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
|
|
|
|
TEST(Spherical, FromVector3) {
|
|
Vector3 v = Vector3(0, 0, 1);
|
|
Spherical s = Spherical(v);
|
|
|
|
EXPECT_FLOAT_EQ(s.distance, 1.0F) << "s.distance 0 0 1";
|
|
EXPECT_FLOAT_EQ(s.horizontalAngle, 0.0F) << "s.hor 0 0 1";
|
|
EXPECT_FLOAT_EQ(s.verticalAngle, 0.0F) << "s.vert 0 0 1";
|
|
|
|
v = Vector3(0, 1, 0);
|
|
s = Spherical(v);
|
|
|
|
EXPECT_FLOAT_EQ(s.distance, 1.0F) << "s.distance 0 1 0";
|
|
EXPECT_FLOAT_EQ(s.horizontalAngle, 0.0F) << "s.hor 0 1 0";
|
|
EXPECT_FLOAT_EQ(s.verticalAngle, 90.0F) << "s.vert 0 1 0";
|
|
|
|
v = Vector3(1, 0, 0);
|
|
s = Spherical(v);
|
|
|
|
EXPECT_FLOAT_EQ(s.distance, 1.0F) << "s.distance 1 0 0";
|
|
EXPECT_FLOAT_EQ(s.horizontalAngle, 90.0F) << "s.hor 1 0 0";
|
|
EXPECT_FLOAT_EQ(s.verticalAngle, 0.0F) << "s.vert 1 0 0";
|
|
}
|
|
|
|
TEST(Spherical, ToVector3) {
|
|
Vector3 v = Vector3(0, 0, 1);
|
|
Spherical s = Spherical(v);
|
|
Vector3 r = s.ToVector3();
|
|
|
|
EXPECT_FLOAT_EQ(r.x, 0.0F) << "toVector3.x 0 0 1";
|
|
EXPECT_FLOAT_EQ(r.y, 0.0F) << "toVector3.y 0 0 1";
|
|
EXPECT_FLOAT_EQ(r.z, 1.0F) << "toVector3.z 0 0 1";
|
|
|
|
v = Vector3(0, 1, 0);
|
|
s = Spherical(v);
|
|
r = s.ToVector3();
|
|
|
|
EXPECT_FLOAT_EQ(r.x, 0.0F) << "toVector3.x 0 1 0";
|
|
EXPECT_FLOAT_EQ(r.y, 1.0F) << "toVector3.y 0 1 0";
|
|
EXPECT_NEAR(r.z, 0.0F, 1.0e-06) << "toVector3.z 0 1 0";
|
|
|
|
v = Vector3(1, 0, 0);
|
|
s = Spherical(v);
|
|
r = s.ToVector3();
|
|
|
|
EXPECT_FLOAT_EQ(r.x, 1.0F) << "toVector3.x 1 0 0";
|
|
EXPECT_FLOAT_EQ(r.y, 0.0F) << "toVector3.y 1 0 0";
|
|
EXPECT_NEAR(r.z, 0.0F, 1.0e-06) << "toVector3.z 1 0 0";
|
|
}
|
|
#endif |