From c5cf1c0061f3826a2c7971d4dca5a6d06ffb7c0c Mon Sep 17 00:00:00 2001 From: Leonetienne Date: Fri, 11 Feb 2022 15:20:00 +0100 Subject: [PATCH] Translated tests for Vector/VectorConversion --- Test/CMakeLists.txt | 1 + Test/Vector4.cpp | 1 - Test/VectorConversion.cpp | 411 ++++++++++++++++++-------------------- 3 files changed, 199 insertions(+), 214 deletions(-) diff --git a/Test/CMakeLists.txt b/Test/CMakeLists.txt index fb224ea..8c0d5e2 100644 --- a/Test/CMakeLists.txt +++ b/Test/CMakeLists.txt @@ -25,6 +25,7 @@ add_executable(Tests Vector4.cpp Quaternion.cpp Random__RandomFloat.cpp + VectorConversion.cpp ) target_link_libraries(Tests Eule) diff --git a/Test/Vector4.cpp b/Test/Vector4.cpp index 01a42ac..7727a0e 100644 --- a/Test/Vector4.cpp +++ b/Test/Vector4.cpp @@ -4,7 +4,6 @@ #include #include <_TestingUtilities/HandyMacros.h> #include -#include using namespace Eule; diff --git a/Test/VectorConversion.cpp b/Test/VectorConversion.cpp index 27c6517..c383d7b 100644 --- a/Test/VectorConversion.cpp +++ b/Test/VectorConversion.cpp @@ -1,220 +1,205 @@ -#include "CppUnitTest.h" -#include "../Eule/Vector2.h" -#include "../Eule/Vector3.h" -#include "../Eule/Vector4.h" +#include "Catch2.h" +#include +#include +#include #include "../_TestingUtilities/HandyMacros.h" #include #include -using namespace Microsoft::VisualStudio::CppUnitTestFramework; using namespace Eule; -namespace Vectors -{ - TEST_CLASS(_VectorConversion) - { - private: - std::mt19937 rng; - - public: - // Constructor - _VectorConversion() - { - rng = std::mt19937((std::random_device())()); - return; - - } - - // Tests that conversion vector2 -> vector3 works - TEST_METHOD(Convert_Vector2_To_Vector3) - { - // Run test 100 times - for (std::size_t i = 0; i < 100; i++) - { - Vector2d v2(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); - Vector3d v3 = v2; - - Assert::AreEqual(v2.x, v3.x); - Assert::AreEqual(v2.y, v3.y); - Assert::AreEqual(0.0, v3.z); - } - - return; - } - - // Tests that conversion vector2 -> vector4 works - TEST_METHOD(Convert_Vector2_To_Vector4) - { - // Run test 100 times - for (std::size_t i = 0; i < 100; i++) - { - Vector2d v2(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); - Vector4d v4 = v2; - - Assert::AreEqual(v2.x, v4.x); - Assert::AreEqual(v2.y, v4.y); - Assert::AreEqual(0.0, v4.z); - Assert::AreEqual(0.0, v4.w); - } - - return; - } - - // Tests that conversion vector3 -> vector2 works - TEST_METHOD(Convert_Vector3_To_Vector2) - { - // Run test 100 times - for (std::size_t i = 0; i < 100; i++) - { - Vector3d v3(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); - Vector2d v2 = v3; - - Assert::AreEqual(v3.x, v2.x); - Assert::AreEqual(v3.y, v2.y); - } - - return; - } - - // Tests that conversion vector3 -> vector4 works - TEST_METHOD(Convert_Vector3_To_Vector4) - { - // Run test 100 times - for (std::size_t i = 0; i < 100; i++) - { - Vector3d v3(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); - Vector4d v4 = v3; - - Assert::AreEqual(v3.x, v4.x); - Assert::AreEqual(v3.y, v4.y); - Assert::AreEqual(v3.z, v4.z); - Assert::AreEqual(0.0, v4.w); - } - - return; - } - - // Tests that conversion vector4 -> vector42 works - TEST_METHOD(Convert_Vector4_To_Vector2) - { - // Run tests 100 times - for (std::size_t i = 0; i < 100; i++) - { - Vector4d v4(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); - Vector2d v2 = v4; - - Assert::AreEqual(v4.x, v2.x); - Assert::AreEqual(v4.y, v2.y); - } - - return; - } - - // Tests that conversion vector4 -> vector3 works - TEST_METHOD(Convert_Vector4_To_Vector3) - { - // Run tests 100 times - for (std::size_t i = 0; i < 100; i++) - { - Vector4d v4(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); - Vector3d v3 = v4; - - Assert::AreEqual(v4.x, v3.x); - Assert::AreEqual(v4.y, v3.y); - Assert::AreEqual(v4.z, v3.z); - } - - return; - } - - // Tests Vector2i -> Vector2d - TEST_METHOD(Convert_Vector2i_To_Vector2d) - { - // Setup - Vector2i vi(69, 70); - - // Exercise - Vector2d vd = vi.ToDouble(); - - // Verify - Assert::IsTrue(Vector2d(69, 70) == vd); - - return; - } - - // Tests Vector2d -> Vector2i - TEST_METHOD(Convert_Vector2d_To_Vector2i) - { - // Setup - Vector2d vd(69.2, 70.8); - - // Exercise - Vector2i vi = vd.ToInt(); - - // Verify - Assert::IsTrue(Vector2i(69, 70) == vi); - - return; - } - - // Tests Vector3i -> Vector3d - TEST_METHOD(Convert_Vector3i_To_Vector3d) - { - // Setup - Vector3i vi(69, 70, 122); - - // Exercise - Vector3d vd = vi.ToDouble(); - - // Verify - Assert::IsTrue(Vector3d(69, 70, 122) == vd); - - return; - } - - // Tests Vector3d -> Vector3i - TEST_METHOD(Convert_Vector3d_To_Vector3i) - { - // Setup - Vector3d vd(69.2, 70.8, 122); - - // Exercise - Vector3i vi = vd.ToInt(); - - // Verify - Assert::IsTrue(Vector3i(69, 70, 122) == vi); - - return; - } - - // Tests Vector4i -> Vector4d - TEST_METHOD(Convert_Vector4i_To_Vector4d) - { - // Setup - Vector4i vi(69, 70, 122, 199); - - // Exercise - Vector4d vd = vi.ToDouble(); - - // Verify - Assert::IsTrue(Vector4d(69, 70, 122, 199) == vd); - - return; - } - - // Tests Vector4d -> Vector4i - TEST_METHOD(Convert_Vector4d_To_Vector4i) - { - // Setup - Vector4d vd(69.2, 70.8, 122, 199.501); - - // Exercise - Vector4i vi = vd.ToInt(); - - // Verify - Assert::IsTrue(Vector4i(69, 70, 122, 199) == vi); - - return; - } - }; +namespace { + static std::mt19937 rng = std::mt19937((std::random_device())()); +} + +// Tests that conversion vector2 -> vector3 works +TEST_CASE(__FILE__"/Convert_Vector2_To_Vector3", "[Vector][VectorConversion]") +{ + // Run test 100 times + for (std::size_t i = 0; i < 100; i++) + { + const Vector2d v2(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); + const Vector3d v3 = v2; + + REQUIRE(v2.x == v3.x); + REQUIRE(v2.y == v3.y); + REQUIRE(0.0 == v3.z); + } + + return; +} + +// Tests that conversion vector2 -> vector4 works +TEST_CASE(__FILE__"/Convert_Vector2_To_Vector4", "[Vector][VectorConversion]") +{ + // Run test 100 times + for (std::size_t i = 0; i < 100; i++) + { + const Vector2d v2(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); + const Vector4d v4 = v2; + + REQUIRE(v2.x == v4.x); + REQUIRE(v2.y == v4.y); + REQUIRE(0.0 == v4.z); + REQUIRE(0.0 == v4.w); + } + + return; +} + +// Tests that conversion vector3 -> vector2 works +TEST_CASE(__FILE__"/Convert_Vector3_To_Vector2", "[Vector][VectorConversion]") +{ + // Run test 100 times + for (std::size_t i = 0; i < 100; i++) + { + const Vector3d v3(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); + const Vector2d v2 = v3; + + REQUIRE(v3.x == v2.x); + REQUIRE(v3.y == v2.y); + } + + return; +} + +// Tests that conversion vector3 -> vector4 works +TEST_CASE(__FILE__"/Convert_Vector3_To_Vector4", "[Vector][VectorConversion]") +{ + // Run test 100 times + for (std::size_t i = 0; i < 100; i++) + { + const Vector3d v3(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); + const Vector4d v4 = v3; + + REQUIRE(v3.x == v4.x); + REQUIRE(v3.y == v4.y); + REQUIRE(v3.z == v4.z); + REQUIRE(0.0 == v4.w); + } + + return; +} + +// Tests that conversion vector4 -> vector42 works +TEST_CASE(__FILE__"/Convert_Vector4_To_Vector2", "[Vector][VectorConversion]") +{ + // Run tests 100 times + for (std::size_t i = 0; i < 100; i++) + { + const Vector4d v4(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); + const Vector2d v2 = v4; + + REQUIRE(v4.x == v2.x); + REQUIRE(v4.y == v2.y); + } + + return; +} + +// Tests that conversion vector4 -> vector3 works +TEST_CASE(__FILE__"/Convert_Vector4_To_Vector3", "[Vector][VectorConversion]") +{ + // Run tests 100 times + for (std::size_t i = 0; i < 100; i++) + { + const Vector4d v4(LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE, LARGE_RAND_DOUBLE); + const Vector3d v3 = v4; + + REQUIRE(v4.x == v3.x); + REQUIRE(v4.y == v3.y); + REQUIRE(v4.z == v3.z); + } + + return; +} + +// Tests Vector2i -> Vector2d +TEST_CASE(__FILE__"/Convert_Vector2i_To_Vector2d", "[Vector][VectorConversion]") +{ + // Setup + const Vector2i vi(69, 70); + + // Exercise + const Vector2d vd = vi.ToDouble(); + + // Verify + REQUIRE(Vector2d(69, 70) == vd); + + return; +} + +// Tests Vector2d -> Vector2i +TEST_CASE(__FILE__"/Convert_Vector2d_To_Vector2i", "[Vector][VectorConversion]") +{ + // Setup + const Vector2d vd(69.2, 70.8); + + // Exercise + const Vector2i vi = vd.ToInt(); + + // Verify + REQUIRE(Vector2i(69, 70) == vi); + + return; +} + +// Tests Vector3i -> Vector3d +TEST_CASE(__FILE__"/Convert_Vector3i_To_Vector3d", "[Vector][VectorConversion]") +{ + // Setup + const Vector3i vi(69, 70, 122); + + // Exercise + const Vector3d vd = vi.ToDouble(); + + // Verify + REQUIRE(Vector3d(69, 70, 122) == vd); + + return; +} + +// Tests Vector3d -> Vector3i +TEST_CASE(__FILE__"/Convert_Vector3d_To_Vector3i", "[Vector][VectorConversion]") +{ + // Setup + const Vector3d vd(69.2, 70.8, 122); + + // Exercise + const Vector3i vi = vd.ToInt(); + + // Verify + REQUIRE(Vector3i(69, 70, 122) == vi); + + return; +} + +// Tests Vector4i -> Vector4d +TEST_CASE(__FILE__"/Convert_Vector4i_To_Vector4d", "[Vector][VectorConversion]") +{ + // Setup + const Vector4i vi(69, 70, 122, 199); + + // Exercise + const Vector4d vd = vi.ToDouble(); + + // Verify + REQUIRE(Vector4d(69, 70, 122, 199) == vd); + + return; +} + +// Tests Vector4d -> Vector4i +TEST_CASE(__FILE__"/Convert_Vector4d_To_Vector4i", "[Vector][VectorConversion]") +{ + // Setup + const Vector4d vd(69.2, 70.8, 122, 199.501); + + // Exercise + const Vector4i vi = vd.ToInt(); + + // Verify + REQUIRE(Vector4i(69, 70, 122, 199) == vi); + + return; }