From 25e7ed2b2187f30ff3b988c881ed65674f2a8c31 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 13 Sep 2013 11:10:07 -0700 Subject: [PATCH] Add a bunch of tests for Vector3 --- test/test_basics.cc | 150 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 144 insertions(+), 6 deletions(-) diff --git a/test/test_basics.cc b/test/test_basics.cc index 1562e21..aa08a3b 100644 --- a/test/test_basics.cc +++ b/test/test_basics.cc @@ -10,11 +10,149 @@ #include "basics.h" -TEST(Vector3Test, OperatorAdd) +class Vector3Test + : public ::testing::Test { - Vector3 v1(3, 2, 1), v2(4, 5, 6); - Vector3 sum = v1 + v2; - EXPECT_EQ(7, sum.x); - EXPECT_EQ(7, sum.y); - EXPECT_EQ(7, sum.z); +public: + virtual void SetUp(); + +protected: + Vector3 v1, v2; +}; + + +void +Vector3Test::SetUp() +{ + v1 = Vector3(1, 3, 5); + v2 = Vector3(7, 13, 17); +} + + +TEST_F(Vector3Test, OperatorEq) +{ + v1 = v2; + EXPECT_EQ(v2, v1); +} + + +TEST_F(Vector3Test, OperatorMul) +{ + Vector3 out; + + out = v1 * 5; + EXPECT_EQ(5, out.x); + EXPECT_EQ(15, out.y); + EXPECT_EQ(25, out.z); + + out = v1 * -7; + EXPECT_EQ(-7, out.x); + EXPECT_EQ(-21, out.y); + EXPECT_EQ(-35, out.z); + + out = v1; + out *= 5; + EXPECT_EQ(5, out.x); + EXPECT_EQ(15, out.y); + EXPECT_EQ(25, out.z); + + out = v1; + out *= -7; + EXPECT_EQ(-7, out.x); + EXPECT_EQ(-21, out.y); + EXPECT_EQ(-35, out.z); +} + + +// TODO: Test divison. +#if 0 +TEST_F(Vector3Test, OperatorDiv) +{ + Vector3 out; + + out = v1 / 5.0; + EXPECT_EQ(1.0/5.0, out.x); + EXPECT_EQ(3.0/5.0, out.y); + EXPECT_EQ(5.0/5.0, out.z); + + out = v1 / -7.0; + EXPECT_EQ(1.0/-7.0, out.x); + EXPECT_EQ(3.0/-7.0, out.y); + EXPECT_EQ(5.0/-7.0, out.z); + + out = v1; + out /= 5.0; + EXPECT_EQ(1.0/5.0, out.x); + EXPECT_EQ(3.0/5.0, out.y); + EXPECT_EQ(5.0/5.0, out.z); + + out = v1; + out /= -7.0; + EXPECT_EQ(1.0/-7.0, out.x); + EXPECT_EQ(3.0/-7.0, out.y); + EXPECT_EQ(5.0/-7.0, out.z); +} +#endif + + +TEST_F(Vector3Test, OperatorAdd) +{ + Vector3 out; + + out = v1 + v2; + EXPECT_EQ(8, out.x); + EXPECT_EQ(16, out.y); + EXPECT_EQ(22, out.z); + + out = v1; + out += v2; + EXPECT_EQ(8, out.x); + EXPECT_EQ(16, out.y); + EXPECT_EQ(22, out.z); +} + + +TEST_F(Vector3Test, OperatorSub) +{ + Vector3 out; + + out = v1 - v2; + EXPECT_EQ(-6, out.x); + EXPECT_EQ(-10, out.y); + EXPECT_EQ(-12, out.z); + + v1 -= v2; + EXPECT_EQ(-6, v1.x); + EXPECT_EQ(-10, v1.y); + EXPECT_EQ(-12, v1.z); +} + + +TEST_F(Vector3Test, OperatorBoolEq) +{ + EXPECT_EQ(v1, v1); + EXPECT_EQ(v2, v2); +} + + +TEST_F(Vector3Test, OperatorBoolNe) +{ + EXPECT_NE(v1, v2); + EXPECT_NE(v2, v1); +} + + +TEST_F(Vector3Test, Length2) +{ + EXPECT_EQ(35.0, v1.length2()); + EXPECT_EQ(507.0, v2.length2()); +} + + +// TODO: Test length() + + +TEST_F(Vector3Test, DotProduct) +{ + EXPECT_EQ(131.0, v1.dot(v2)); }