From 1755db0b6902308ce06e799e9bd94660dc94f6b5 Mon Sep 17 00:00:00 2001 From: laemmerzahlkr91200 Date: Sat, 29 Nov 2025 15:43:46 +0100 Subject: [PATCH] update from test --- src/tests.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/tests.cpp diff --git a/src/tests.cpp b/src/tests.cpp new file mode 100644 index 0000000..4a62360 --- /dev/null +++ b/src/tests.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +#include +#include "gamematrix.h" + +// Matrix-Vektor Multiplikation (4x4 Matrix auf 4D Vektor anwenden) +std::array matVecMul(const std::array, 4>& mat, const std::array& vec) { + std::array result = {0, 0, 0, 0}; + for (size_t i = 0; i < 4; ++i) { + for (size_t j = 0; j < 4; ++j) { + result[i] += mat[i][j] * vec[j]; + } + } + return result; +} + +void test_rotateZ() { + std::array v = {1, 0, 0, 1}; // Der Vektor (1, 0, 0) wird zu (1, 0, 0, 1) + + // Rotationsmatrix um 90° um die Z-Achse + auto R = gameMatrix::rot3D(90, 'Z'); + + // Vektor mit der Matrix multiplizieren + std::array result = matVecMul(R, v); + + // Erwartetes Ergebnis + std::array expected_result = {0, 1, 0, 1}; + + // Vergleich der Ergebnisse + for (size_t i = 0; i < 4; ++i) { + assert(std::abs(result[i] - expected_result[i]) < 1e-6); + } + + std::cout << "Test erfolgreich! Rotation um Z-Achse funktioniert." << std::endl; +} + +int main() { + test_rotateZ(); + return 0; +}