summaryrefslogtreecommitdiffstats
path: root/src/math/test/vector_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/test/vector_test.cpp')
-rw-r--r--src/math/test/vector_test.cpp76
1 files changed, 15 insertions, 61 deletions
diff --git a/src/math/test/vector_test.cpp b/src/math/test/vector_test.cpp
index 899a580..ead2fd2 100644
--- a/src/math/test/vector_test.cpp
+++ b/src/math/test/vector_test.cpp
@@ -26,59 +26,41 @@
#include "../func.h"
#include "../vector.h"
-#include <cstdio>
+#include "gtest/gtest.h"
-using namespace std;
const float TEST_TOLERANCE = 1e-6;
-int TestLength()
+
+TEST(VectorTest, LengthTest)
{
Math::Vector vec(-1.288447945923275, 0.681452565308134, -0.633761098985957);
const float expectedLength = 1.58938001708428;
- if (! Math::IsEqual(vec.Length(), expectedLength, TEST_TOLERANCE) )
- {
- fprintf(stderr, "Length mismatch!\n");
- return __LINE__;
- }
-
- return 0;
+ EXPECT_TRUE(Math::IsEqual(vec.Length(), expectedLength, TEST_TOLERANCE));
}
-int TestNormalize()
+TEST(VectorTest, NormalizeTest)
{
Math::Vector vec(1.848877241804398, -0.157262961268577, -1.963031403332377);
const Math::Vector expectedNormalized(0.6844609421393856, -0.0582193085618106, -0.7267212194481797);
vec.Normalize();
- if (! Math::VectorsEqual(vec, expectedNormalized, TEST_TOLERANCE))
- {
- fprintf(stderr, "Normalize mismatch!\n");
- return __LINE__;
- }
-
- return 0;
+ EXPECT_TRUE(Math::VectorsEqual(vec, expectedNormalized, TEST_TOLERANCE));
}
-int TestDot()
+TEST(VectorTest, DotTest)
{
Math::Vector vecA(0.8202190530968309, 0.0130926060162780, 0.2411914183883510);
Math::Vector vecB(-0.0524083951404069, 1.5564932716738220, -0.8971342631500536);
float expectedDot = -0.238988896477326;
- if (! Math::IsEqual(Math::DotProduct(vecA, vecB), expectedDot, TEST_TOLERANCE) )
- {
- fprintf(stderr, "Dot product mismatch!\n");
- return __LINE__;
- }
-
- return 0;
+ EXPECT_TRUE(Math::IsEqual(Math::DotProduct(vecA, vecB), expectedDot, TEST_TOLERANCE));
}
-int TestCross()
+TEST(VectorTest, CrossTest)
{
Math::Vector vecA(1.37380499798567, 1.18054518384682, 1.95166361293121);
Math::Vector vecB(0.891657855926886, 0.447591335394532, -0.901604070087823);
@@ -86,42 +68,14 @@ int TestCross()
Math::Vector expectedCross(-1.937932065431669, 2.978844370287636, -0.437739173833581);
Math::Vector expectedReverseCross = -expectedCross;
- if (! Math::VectorsEqual(vecA.CrossMultiply(vecB), expectedCross, TEST_TOLERANCE) )
- {
- fprintf(stderr, "Cross product mismatch!\n");
- return __LINE__;
- }
-
- if (! Math::VectorsEqual(vecB.CrossMultiply(vecA), expectedReverseCross, TEST_TOLERANCE) )
- {
- fprintf(stderr, "Reverse cross product mismatch!\n");
- return __LINE__;
- }
+ EXPECT_TRUE(Math::VectorsEqual(vecA.CrossMultiply(vecB), expectedCross, TEST_TOLERANCE));
- return 0;
+ EXPECT_TRUE(Math::VectorsEqual(vecB.CrossMultiply(vecA), expectedReverseCross, TEST_TOLERANCE));
}
-int main()
+int main(int argc, char* argv[])
{
- // Functions to test
- int (*TESTS[])() =
- {
- TestLength,
- TestNormalize,
- TestDot,
- TestCross
- };
- const int TESTS_SIZE = sizeof(TESTS) / sizeof(*TESTS);
-
- int result = 0;
- for (int i = 0; i < TESTS_SIZE; ++i)
- {
- result = TESTS[i]();
- if (result != 0)
- return result;
- }
-
- fprintf(stderr, "All tests successful\n");
-
- return 0;
+ ::testing::InitGoogleTest(&argc, argv);
+
+ return RUN_ALL_TESTS();
}