From 43d35d0acbb3484b48e7893f8951e8a01ab1df50 Mon Sep 17 00:00:00 2001 From: Vladyslav Baranovskyi Date: Tue, 8 Oct 2024 12:41:16 +0300 Subject: [PATCH] tests file for DenseVector3i, fixed typo in hpp file --- openVulkanoCpp/Math/DenseVector3i.hpp | 2 +- tests/Math/DenseVector3i.cpp | 80 +++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 tests/Math/DenseVector3i.cpp diff --git a/openVulkanoCpp/Math/DenseVector3i.hpp b/openVulkanoCpp/Math/DenseVector3i.hpp index 3673596..2f2aa0c 100644 --- a/openVulkanoCpp/Math/DenseVector3i.hpp +++ b/openVulkanoCpp/Math/DenseVector3i.hpp @@ -149,7 +149,7 @@ namespace OpenVulkano::Math [[nodiscard]] constexpr bool operator !=(DenseVec3 rhs) const { - return data == rhs.data; + return data != rhs.data; } [[nodiscard]] explicit constexpr operator Math::Vector3i() const diff --git a/tests/Math/DenseVector3i.cpp b/tests/Math/DenseVector3i.cpp new file mode 100644 index 0000000..c9094c1 --- /dev/null +++ b/tests/Math/DenseVector3i.cpp @@ -0,0 +1,80 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +#include + +#include "Math/DenseVector3i.hpp" + +using namespace OpenVulkano::Math; + +TEST_CASE("Constructor and Accessors", "[DenseVector3i]") +{ + Vector3i vec3 { 10, 20, 30 }; + DenseVector3i denseVec(vec3); + + REQUIRE(denseVec.X() == 10); + REQUIRE(denseVec.Y() == 20); + REQUIRE(denseVec.Z() == 30); + + auto data = denseVec.Data(); + REQUIRE(data != 0); +} + +TEST_CASE("Setters", "[DenseVector3i]") +{ + DenseVector3i denseVec(10, 20, 30); + + denseVec.SetX(40); + REQUIRE(denseVec.X() == 40); + + denseVec.SetY(50); + REQUIRE(denseVec.Y() == 50); + + denseVec.SetZ(60); + REQUIRE(denseVec.Z() == 60); +} + +TEST_CASE("Comparison Operators", "[DenseVector3i]") +{ + DenseVector3i denseVec1(10, 20, 30); + DenseVector3i denseVec2(10, 20, 30); + DenseVector3i denseVec3(40, 50, 60); + + REQUIRE(denseVec1 == denseVec2); + REQUIRE(denseVec1 != denseVec3); + + REQUIRE(denseVec1 < denseVec3); + + REQUIRE(denseVec3 > denseVec1); + + REQUIRE(denseVec1 <= denseVec2); + REQUIRE(denseVec1 <= denseVec3); + + REQUIRE(denseVec1 >= denseVec2); + REQUIRE(denseVec3 >= denseVec1); +} + +TEST_CASE("ToString method", "[DenseVector3i]") +{ + DenseVector3i denseVec(10, 20, 30); + REQUIRE(denseVec.ToString() == fmt::format("{},{},{}", 10, 20, 30)); + REQUIRE(denseVec.ToString(" ") == "10 20 30"); +} + +TEST_CASE("Type Conversion", "[DenseVector3i]") +{ + DenseVector3i denseVec(10, 20, 30); + + Vector3i vec3 = static_cast(denseVec); + REQUIRE(vec3.x == 10); + REQUIRE(vec3.y == 20); + REQUIRE(vec3.z == 30); + + Vector3i_SIMD vec3_simd = static_cast(denseVec); + REQUIRE(vec3_simd.x == 10); + REQUIRE(vec3_simd.y == 20); + REQUIRE(vec3_simd.z == 30); +} \ No newline at end of file