From 43078903567fb4bcaff75110b8a67a5ba0d367f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A8=D0=B8=D1=88=D0=BE=D0=B2=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC=20=D0=94=D0=B5=D0=BD=D0=B8=D1=81=D0=BE=D0=B2=D0=B8?= =?UTF-8?q?=D1=87?= Date: Thu, 10 Sep 2020 15:27:09 +0300 Subject: [PATCH] testing another operations --- tests/math/testpimathmatrix.cpp | 80 ++++++++++++++++++++++++++++++++ tests/math/testpimathmatrixt.cpp | 73 +++++++++-------------------- 2 files changed, 101 insertions(+), 52 deletions(-) diff --git a/tests/math/testpimathmatrix.cpp b/tests/math/testpimathmatrix.cpp index deeca9ca..ae3b46f3 100644 --- a/tests/math/testpimathmatrix.cpp +++ b/tests/math/testpimathmatrix.cpp @@ -35,6 +35,26 @@ TEST(PIMathMatrix_Test, identity) ASSERT_TRUE(true); } +TEST(PIMathMatrixT_Test, element) +{ + auto matrix = PIMathMatrix::identity(3, 3); + for(uint i = 0; i < 3; i++) { + if(matrix.element(i,i) != 1.0) { + ASSERT_TRUE(false); + } + } + for(int i = 0; i < 3; i++){ + for(int j = 0; j < 3; j++){ + if(i != j){ + if(matrix[i][j] != 0.0){ + ASSERT_TRUE(false); + } + } + } + } + ASSERT_TRUE(true); +} + TEST(PIMathMatrix_Test, matrixRow) { PIMathVector vector; @@ -560,3 +580,63 @@ TEST(PIMathMatrix_Test, transposed) } ASSERT_TRUE(b); } + +TEST(PIMathMatrixT_Test, matrixMultiplication) +{ + PIMathMatrix matrix1(2, 2, 1.5); + PIMathMatrix matrix2(2, 2, 2.5); + ASSERT_TRUE(cmpSquareMatrixWithValue(matrix1 * matrix2, 7.5, 2)); +} + +TEST(PIMathMatrixT_Test, matrixAndVectorMultiplication) +{ + PIMathMatrix matrix1(2, 2, 1.5); + PIMathVector vector; + vector.resize(2, 2.5); + for(uint i = 0; i < 2; i++) { + if((matrix1 * vector)[i] != 7.5) { + ASSERT_TRUE(false); + } + } + ASSERT_TRUE(true); +} + +TEST(PIMathMatrixT_Test, vectorAndMatrixMultiplication) +{ + PIMathMatrix matrix1(2, 2, 1.5); + PIMathVector vector; + vector.resize(2, 2.5); + for(uint i = 0; i < 2; i++) { + if((vector * matrix1)[i] != 7.5) { + ASSERT_TRUE(false); + } + } + ASSERT_TRUE(true); +} + +TEST(PIMathMatrixT_Test, valAndMatrixMultiplication) +{ + PIMathMatrix matrix1(3, 3, 1.5); + ASSERT_TRUE(cmpSquareMatrixWithValue(25.0*matrix1, 37.5, 3)); +} + +TEST(PIMathMatrixT_Test, hermitian) +{ + complex val; + complex res; + val.imag(1.0); + val.real(1.0); + PIMathMatrix> matrix(3, 3, val); + res.imag(-1.0); + res.real(1.0); + auto matr = hermitian(matrix); + for(uint i = 0; i < 3; i++) { + for(uint j = 0; j < 3; j++) { + if(matr.element(i, j) != res) { + ASSERT_TRUE(false); + } + } + } + ASSERT_TRUE(true); +} + diff --git a/tests/math/testpimathmatrixt.cpp b/tests/math/testpimathmatrixt.cpp index 0542332a..6e4e0a45 100644 --- a/tests/math/testpimathmatrixt.cpp +++ b/tests/math/testpimathmatrixt.cpp @@ -4,38 +4,20 @@ const uint rows = 3; const uint cols = 3; -bool cmpMatrixWithValue(PIMathMatrixT matrix, double val) +template +bool cmpSquareMatrixWithValue(PIMathMatrixT matrix, Type val, int num) { - int i = 0; - int j = 0; - int k = 0; - bool b; - while(i < 9) - { - if(k < 3) - { - if(matrix.at(j,k) == val) - { - b = true; - } - else - { + bool b = true; + for(int i = 0; i < num; i++) { + for(int j = 0; j < num; j++) { + if(matrix.at(i, j) != val) { b = false; - break; - } - k++; - if(k == 3) - { - j++; - k = 0; } } - i++; } return b; } - TEST(PIMathMatrixT_Test, identity) { auto matrix = PIMathMatrixT::identity(); @@ -58,26 +40,13 @@ TEST(PIMathMatrixT_Test, identity) TEST(PIMathMatrixT_Test, at) { - uint i; - bool b; - PIMathMatrixT matr; - PIMathMatrixT matrix1; - PIMathMatrixT matrix2; - matrix1 = matr.identity(); - matrix2 = matr.identity(); - for(i = 0; i < rows; i++) - { - if(matrix1.at(i,i) == 1.0) - { - b = true; - } - else - { - b = false; - break; + auto matrix1 = PIMathMatrixT::identity(); + for(uint i = 0; i < rows; i++) { + if(matrix1.at(i,i) != 1.0) { + ASSERT_TRUE(false); } } - ASSERT_TRUE(b); + ASSERT_TRUE(true); } TEST(PIMathMatrixT_Test, filled) { @@ -374,7 +343,7 @@ TEST(PIMathMatrixT_Test, operator_Assignment) bool b; matrix2.fill(6.72); matrix1 = matrix2; - b = cmpMatrixWithValue(matrix1, 6.72); + b = cmpSquareMatrixWithValue(matrix1, 6.72, rows); ASSERT_TRUE(b); } @@ -444,7 +413,7 @@ TEST(PIMathMatrixT_Test, operator_Addition_Aassignment) matrix2.fill(6.72); matrix1.fill(1.0); matrix1 += matrix2; - b = cmpMatrixWithValue(matrix1, 7.72); + b = cmpSquareMatrixWithValue(matrix1, 7.72, rows); ASSERT_TRUE(b); } @@ -456,7 +425,7 @@ TEST(PIMathMatrixT_Test, operator_Subtraction_Assignment) matrix2.fill(6.72); matrix1.fill(1.0); matrix1 -= matrix2; - b = cmpMatrixWithValue(matrix1, -5.72); + b = cmpSquareMatrixWithValue(matrix1, -5.72, rows); ASSERT_TRUE(b); } @@ -466,7 +435,7 @@ TEST(PIMathMatrixT_Test, operator_Multiplication_Assignment) bool b; matrix1.fill(6.72); matrix1 *= 2.0; - b = cmpMatrixWithValue(matrix1, 13.44); + b = cmpSquareMatrixWithValue(matrix1, 13.44, rows); ASSERT_TRUE(b); } @@ -476,7 +445,7 @@ TEST(PIMathMatrixT_Test, operator_Division_Assignment) bool b; matrix1.fill(6.72); matrix1 /= 2.0; - b = cmpMatrixWithValue(matrix1, 3.36); + b = cmpSquareMatrixWithValue(matrix1, 3.36, rows); ASSERT_TRUE(b); } @@ -487,7 +456,7 @@ TEST(PIMathMatrixT_Test, operator_Addition) bool b; matrix1.fill(6.72); matrix2.fill(8.28); - b = cmpMatrixWithValue(matrix1 + matrix2, 15.0); + b = cmpSquareMatrixWithValue(matrix1 + matrix2, 15.0, rows); ASSERT_TRUE(b); } @@ -498,7 +467,7 @@ TEST(PIMathMatrixT_Test, operator_Subtraction) bool b; matrix1.fill(6.0); matrix2.fill(5.0); - b = cmpMatrixWithValue(matrix1 - matrix2, 1.0); + b = cmpSquareMatrixWithValue(matrix1 - matrix2, 1.0, rows); ASSERT_TRUE(b); } @@ -509,7 +478,7 @@ TEST(PIMathMatrixT_Test, operator_Multiplication) bool b; matrix1.fill(6.72); matrix2 = matrix1*4.0; - b = cmpMatrixWithValue(matrix2, 26.88); + b = cmpSquareMatrixWithValue(matrix2, 26.88, rows); ASSERT_TRUE(b); } TEST(PIMathMatrixT_Test, operator_Division) @@ -519,7 +488,7 @@ TEST(PIMathMatrixT_Test, operator_Division) bool b; matrix1.fill(6.72); matrix2 = matrix1/4.0; - b = cmpMatrixWithValue(matrix2, 1.68); + b = cmpSquareMatrixWithValue(matrix2, 1.68, rows); ASSERT_TRUE(b); } @@ -721,7 +690,7 @@ TEST(PIMathMatrixT_Test, rotation_3x3) { double angle = 1.0; PIMathMatrixT<3u, 3u, double> matrix = PIMathMatrixT<3u, 3u, double>::rotation(angle); - ASSERT_TRUE(cmpMatrixWithValue(matrix, 0.0)); + ASSERT_TRUE(cmpSquareMatrixWithValue(matrix, 0.0, rows)); } TEST(PIMathMatrixT_Test, rotationX)