Răsfoiți Sursa

Update mathMatrixTest.cpp

more tests that match between template and matrixf
marauder2k7 1 an în urmă
părinte
comite
409f523dc3
1 a modificat fișierele cu 98 adăugiri și 0 ștergeri
  1. 98 0
      Engine/source/testing/mathMatrixTest.cpp

+ 98 - 0
Engine/source/testing/mathMatrixTest.cpp

@@ -106,3 +106,101 @@ TEST(MatrixTest, TestSetTensorProduct)
    EXPECT_NEAR(test(3, 0), 0.0f, 0.001f);  EXPECT_NEAR(test(3, 1), 0.0f, 0.001f);   EXPECT_NEAR(test(3, 2), 0.0f, 0.001f);  EXPECT_NEAR(test(3, 3), 1.0f, 0.001f);
 }
 
+TEST(MatrixTest, TestMulFunction)
+{
+   MatrixF test(true);
+
+   test(0, 0) = 1.0f; test(0, 1) = 2.0f; test(0, 2) = 3.0f; test(0, 3) = 4.0f;
+   test(1, 0) = 4.0f; test(1, 1) = 1.0f; test(1, 2) = 2.0f; test(1, 3) = 3.0f;
+   test(2, 0) = 3.0f; test(2, 1) = 4.0f; test(2, 2) = 1.0f; test(2, 3) = 2.0f;
+   test(3, 0) = 2.0f; test(3, 1) = 3.0f; test(3, 2) = 4.0f; test(3, 3) = 1.0f;
+
+   MatrixF test2(true);
+
+   test2(0, 0) = 4.0f; test2(0, 1) = 3.0f; test2(0, 2) = 2.0f; test2(0, 3) = 1.0f;
+   test2(1, 0) = 1.0f; test2(1, 1) = 4.0f; test2(1, 2) = 3.0f; test2(1, 3) = 2.0f;
+   test2(2, 0) = 2.0f; test2(2, 1) = 1.0f; test2(2, 2) = 4.0f; test2(2, 3) = 3.0f;
+   test2(3, 0) = 3.0f; test2(3, 1) = 2.0f; test2(3, 2) = 1.0f; test2(3, 3) = 4.0f;
+
+   test.mul(test2);
+
+   EXPECT_NEAR(test(0, 0), 24.0f, 0.001f);  EXPECT_NEAR(test(0, 1), 22.0f, 0.001f);  EXPECT_NEAR(test(0, 2), 24.0f, 0.001f);  EXPECT_NEAR(test(0, 3), 30.0f, 0.001f);
+   EXPECT_NEAR(test(1, 0), 30.0f, 0.001f);  EXPECT_NEAR(test(1, 1), 24.0f, 0.001f);  EXPECT_NEAR(test(1, 2), 22.0f, 0.001f);  EXPECT_NEAR(test(1, 3), 24.0f, 0.001f);
+   EXPECT_NEAR(test(2, 0), 24.0f, 0.001f);  EXPECT_NEAR(test(2, 1), 30.0f, 0.001f);  EXPECT_NEAR(test(2, 2), 24.0f, 0.001f);  EXPECT_NEAR(test(2, 3), 22.0f, 0.001f);
+   EXPECT_NEAR(test(3, 0), 22.0f, 0.001f);  EXPECT_NEAR(test(3, 1), 24.0f, 0.001f);  EXPECT_NEAR(test(3, 2), 30.0f, 0.001f);  EXPECT_NEAR(test(3, 3), 24.0f, 0.001f);
+}
+
+TEST(MatrixTest, TestMulOperator)
+{
+   MatrixF test(true);
+
+   test(0, 0) = 1.0f; test(0, 1) = 2.0f; test(0, 2) = 3.0f; test(0, 3) = 4.0f;
+   test(1, 0) = 4.0f; test(1, 1) = 1.0f; test(1, 2) = 2.0f; test(1, 3) = 3.0f;
+   test(2, 0) = 3.0f; test(2, 1) = 4.0f; test(2, 2) = 1.0f; test(2, 3) = 2.0f;
+   test(3, 0) = 2.0f; test(3, 1) = 3.0f; test(3, 2) = 4.0f; test(3, 3) = 1.0f;
+
+   MatrixF test2(true);
+
+   test2(0, 0) = 4.0f; test2(0, 1) = 3.0f; test2(0, 2) = 2.0f; test2(0, 3) = 1.0f;
+   test2(1, 0) = 1.0f; test2(1, 1) = 4.0f; test2(1, 2) = 3.0f; test2(1, 3) = 2.0f;
+   test2(2, 0) = 2.0f; test2(2, 1) = 1.0f; test2(2, 2) = 4.0f; test2(2, 3) = 3.0f;
+   test2(3, 0) = 3.0f; test2(3, 1) = 2.0f; test2(3, 2) = 1.0f; test2(3, 3) = 4.0f;
+
+   test = test * test2;
+
+   EXPECT_NEAR(test(0, 0), 24.0f, 0.001f);  EXPECT_NEAR(test(0, 1), 22.0f, 0.001f);  EXPECT_NEAR(test(0, 2), 24.0f, 0.001f);  EXPECT_NEAR(test(0, 3), 30.0f, 0.001f);
+   EXPECT_NEAR(test(1, 0), 30.0f, 0.001f);  EXPECT_NEAR(test(1, 1), 24.0f, 0.001f);  EXPECT_NEAR(test(1, 2), 22.0f, 0.001f);  EXPECT_NEAR(test(1, 3), 24.0f, 0.001f);
+   EXPECT_NEAR(test(2, 0), 24.0f, 0.001f);  EXPECT_NEAR(test(2, 1), 30.0f, 0.001f);  EXPECT_NEAR(test(2, 2), 24.0f, 0.001f);  EXPECT_NEAR(test(2, 3), 22.0f, 0.001f);
+   EXPECT_NEAR(test(3, 0), 22.0f, 0.001f);  EXPECT_NEAR(test(3, 1), 24.0f, 0.001f);  EXPECT_NEAR(test(3, 2), 30.0f, 0.001f);  EXPECT_NEAR(test(3, 3), 24.0f, 0.001f);
+}
+
+TEST(MatrixTest, TestMulLFunction)
+{
+   MatrixF test(true);
+
+   test(0, 0) = 1.0f; test(0, 1) = 2.0f; test(0, 2) = 3.0f; test(0, 3) = 4.0f;
+   test(1, 0) = 4.0f; test(1, 1) = 1.0f; test(1, 2) = 2.0f; test(1, 3) = 3.0f;
+   test(2, 0) = 3.0f; test(2, 1) = 4.0f; test(2, 2) = 1.0f; test(2, 3) = 2.0f;
+   test(3, 0) = 2.0f; test(3, 1) = 3.0f; test(3, 2) = 4.0f; test(3, 3) = 1.0f;
+
+   MatrixF test2(true);
+
+   test2(0, 0) = 4.0f; test2(0, 1) = 3.0f; test2(0, 2) = 2.0f; test2(0, 3) = 1.0f;
+   test2(1, 0) = 1.0f; test2(1, 1) = 4.0f; test2(1, 2) = 3.0f; test2(1, 3) = 2.0f;
+   test2(2, 0) = 2.0f; test2(2, 1) = 1.0f; test2(2, 2) = 4.0f; test2(2, 3) = 3.0f;
+   test2(3, 0) = 3.0f; test2(3, 1) = 2.0f; test2(3, 2) = 1.0f; test2(3, 3) = 4.0f;
+
+   test.mulL(test2);
+
+   EXPECT_NEAR(test(0, 0), 24.0f, 0.001f);  EXPECT_NEAR(test(0, 1), 22.0f, 0.001f);  EXPECT_NEAR(test(0, 2), 24.0f, 0.001f);  EXPECT_NEAR(test(0, 3), 30.0f, 0.001f);
+   EXPECT_NEAR(test(1, 0), 30.0f, 0.001f);  EXPECT_NEAR(test(1, 1), 24.0f, 0.001f);  EXPECT_NEAR(test(1, 2), 22.0f, 0.001f);  EXPECT_NEAR(test(1, 3), 24.0f, 0.001f);
+   EXPECT_NEAR(test(2, 0), 24.0f, 0.001f);  EXPECT_NEAR(test(2, 1), 30.0f, 0.001f);  EXPECT_NEAR(test(2, 2), 24.0f, 0.001f);  EXPECT_NEAR(test(2, 3), 22.0f, 0.001f);
+   EXPECT_NEAR(test(3, 0), 22.0f, 0.001f);  EXPECT_NEAR(test(3, 1), 24.0f, 0.001f);  EXPECT_NEAR(test(3, 2), 30.0f, 0.001f);  EXPECT_NEAR(test(3, 3), 24.0f, 0.001f);
+}
+
+TEST(MatrixTest, TestMulArgMatrixFunction)
+{
+   MatrixF testResult(true);
+
+   MatrixF test(true);
+
+   test(0, 0) = 1.0f; test(0, 1) = 2.0f; test(0, 2) = 3.0f; test(0, 3) = 4.0f;
+   test(1, 0) = 4.0f; test(1, 1) = 1.0f; test(1, 2) = 2.0f; test(1, 3) = 3.0f;
+   test(2, 0) = 3.0f; test(2, 1) = 4.0f; test(2, 2) = 1.0f; test(2, 3) = 2.0f;
+   test(3, 0) = 2.0f; test(3, 1) = 3.0f; test(3, 2) = 4.0f; test(3, 3) = 1.0f;
+
+   MatrixF test2(true);
+
+   test2(0, 0) = 4.0f; test2(0, 1) = 3.0f; test2(0, 2) = 2.0f; test2(0, 3) = 1.0f;
+   test2(1, 0) = 1.0f; test2(1, 1) = 4.0f; test2(1, 2) = 3.0f; test2(1, 3) = 2.0f;
+   test2(2, 0) = 2.0f; test2(2, 1) = 1.0f; test2(2, 2) = 4.0f; test2(2, 3) = 3.0f;
+   test2(3, 0) = 3.0f; test2(3, 1) = 2.0f; test2(3, 2) = 1.0f; test2(3, 3) = 4.0f;
+
+   testResult.mul(test2, test);
+
+   EXPECT_NEAR(testResult(0, 0), 24.0f, 0.001f);  EXPECT_NEAR(testResult(0, 1), 22.0f, 0.001f);  EXPECT_NEAR(testResult(0, 2), 24.0f, 0.001f);  EXPECT_NEAR(testResult(0, 3), 30.0f, 0.001f);
+   EXPECT_NEAR(testResult(1, 0), 30.0f, 0.001f);  EXPECT_NEAR(testResult(1, 1), 24.0f, 0.001f);  EXPECT_NEAR(testResult(1, 2), 22.0f, 0.001f);  EXPECT_NEAR(testResult(1, 3), 24.0f, 0.001f);
+   EXPECT_NEAR(testResult(2, 0), 24.0f, 0.001f);  EXPECT_NEAR(testResult(2, 1), 30.0f, 0.001f);  EXPECT_NEAR(testResult(2, 2), 24.0f, 0.001f);  EXPECT_NEAR(testResult(2, 3), 22.0f, 0.001f);
+   EXPECT_NEAR(testResult(3, 0), 22.0f, 0.001f);  EXPECT_NEAR(testResult(3, 1), 24.0f, 0.001f);  EXPECT_NEAR(testResult(3, 2), 30.0f, 0.001f);  EXPECT_NEAR(testResult(3, 3), 24.0f, 0.001f);
+}
+