ScriptCanvasUnitTest_Matrix4x4.cpp 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <Tests/Framework/ScriptCanvasUnitTestFixture.h>
  9. #include <Libraries/Math/Matrix4x4.h>
  10. namespace ScriptCanvasUnitTest
  11. {
  12. using namespace ScriptCanvas;
  13. using ScriptCanvasUnitTestMatrix4x4Functions = ScriptCanvasUnitTestFixture;
  14. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromColumns_Call_GetExpectedResult)
  15. {
  16. AZ::Vector4 col1 = AZ::Vector4(1, 0, 0, 0);
  17. AZ::Vector4 col2 = AZ::Vector4(0, 1, 0, 0);
  18. AZ::Vector4 col3 = AZ::Vector4(0, 0, 1, 0);
  19. AZ::Vector4 col4 = AZ::Vector4(0, 0, 0, 1);
  20. auto actualResult = Matrix4x4Functions::FromColumns(col1, col2, col3, col4);
  21. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  22. }
  23. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromDiagonal_Call_GetExpectedResult)
  24. {
  25. auto actualResult = Matrix4x4Functions::FromDiagonal(AZ::Vector4(1, 1, 1, 1));
  26. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  27. }
  28. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromMatrix3x3_Call_GetExpectedResult)
  29. {
  30. auto actualResult = Matrix4x4Functions::FromMatrix3x3(AZ::Matrix3x3::CreateIdentity());
  31. EXPECT_EQ(actualResult.GetColumn(0), AZ::Vector4(1, 0, 0, 0));
  32. EXPECT_EQ(actualResult.GetColumn(1), AZ::Vector4(0, 1, 0, 0));
  33. EXPECT_EQ(actualResult.GetColumn(2), AZ::Vector4(0, 0, 1, 0));
  34. EXPECT_EQ(actualResult.GetColumn(3), AZ::Vector4::CreateOne());
  35. }
  36. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromQuaternion_Call_GetExpectedResult)
  37. {
  38. auto actualResult = Matrix4x4Functions::FromQuaternion(AZ::Quaternion::CreateIdentity());
  39. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  40. }
  41. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromQuaternionAndTranslation_Call_GetExpectedResult)
  42. {
  43. auto actualResult = Matrix4x4Functions::FromQuaternionAndTranslation(AZ::Quaternion::CreateIdentity(), AZ::Vector3::CreateZero());
  44. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  45. }
  46. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromRotationXDegrees_Call_GetExpectedResult)
  47. {
  48. auto actualResult = Matrix4x4Functions::FromRotationXDegrees(0);
  49. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  50. }
  51. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromRotationYDegrees_Call_GetExpectedResult)
  52. {
  53. auto actualResult = Matrix4x4Functions::FromRotationYDegrees(0);
  54. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  55. }
  56. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromRotationZDegrees_Call_GetExpectedResult)
  57. {
  58. auto actualResult = Matrix4x4Functions::FromRotationZDegrees(0);
  59. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  60. }
  61. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromRows_Call_GetExpectedResult)
  62. {
  63. AZ::Vector4 row1 = AZ::Vector4(1, 0, 0, 0);
  64. AZ::Vector4 row2 = AZ::Vector4(0, 1, 0, 0);
  65. AZ::Vector4 row3 = AZ::Vector4(0, 0, 1, 0);
  66. AZ::Vector4 row4 = AZ::Vector4(0, 0, 0, 1);
  67. auto actualResult = Matrix4x4Functions::FromRows(row1, row2, row3, row4);
  68. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  69. }
  70. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromScale_Call_GetExpectedResult)
  71. {
  72. auto actualResult = Matrix4x4Functions::FromScale(AZ::Vector3(1, 1, 1));
  73. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  74. }
  75. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromTranslation_Call_GetExpectedResult)
  76. {
  77. auto actualResult = Matrix4x4Functions::FromTranslation(AZ::Vector3(1, 1, 1));
  78. EXPECT_EQ(actualResult.GetColumn(0), AZ::Vector4(1, 0, 0, 0));
  79. EXPECT_EQ(actualResult.GetColumn(1), AZ::Vector4(0, 1, 0, 0));
  80. EXPECT_EQ(actualResult.GetColumn(2), AZ::Vector4(0, 0, 1, 0));
  81. EXPECT_EQ(actualResult.GetColumn(3), AZ::Vector4::CreateOne());
  82. }
  83. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, FromTransform_Call_GetExpectedResult)
  84. {
  85. auto actualResult = Matrix4x4Functions::FromTransform(AZ::Transform::CreateIdentity());
  86. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  87. }
  88. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, GetColumn_Call_GetExpectedResult)
  89. {
  90. auto actualResult = Matrix4x4Functions::GetColumn(AZ::Matrix4x4::CreateIdentity(), 0);
  91. EXPECT_EQ(actualResult, AZ::Vector4(1, 0, 0, 0));
  92. }
  93. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, GetColumns_Call_GetExpectedResult)
  94. {
  95. auto actualResult = Matrix4x4Functions::GetColumns(AZ::Matrix4x4::CreateIdentity());
  96. EXPECT_EQ(AZStd::get<0>(actualResult), AZ::Vector4(1, 0, 0, 0));
  97. EXPECT_EQ(AZStd::get<1>(actualResult), AZ::Vector4(0, 1, 0, 0));
  98. EXPECT_EQ(AZStd::get<2>(actualResult), AZ::Vector4(0, 0, 1, 0));
  99. EXPECT_EQ(AZStd::get<3>(actualResult), AZ::Vector4(0, 0, 0, 1));
  100. }
  101. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, GetDiagonal_Call_GetExpectedResult)
  102. {
  103. auto actualResult = Matrix4x4Functions::GetDiagonal(AZ::Matrix4x4::CreateIdentity());
  104. EXPECT_EQ(actualResult, AZ::Vector4(1, 1, 1, 1));
  105. }
  106. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, GetElement_Call_GetExpectedResult)
  107. {
  108. auto actualResult = Matrix4x4Functions::GetElement(AZ::Matrix4x4::CreateIdentity(), 0, 0);
  109. EXPECT_EQ(actualResult, 1);
  110. }
  111. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, GetRow_Call_GetExpectedResult)
  112. {
  113. auto actualResult = Matrix4x4Functions::GetRow(AZ::Matrix4x4::CreateIdentity(), 0);
  114. EXPECT_EQ(actualResult, AZ::Vector4(1, 0, 0, 0));
  115. }
  116. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, GetTranslation_Call_GetExpectedResult)
  117. {
  118. auto actualResult = Matrix4x4Functions::GetTranslation(AZ::Matrix4x4::CreateIdentity());
  119. EXPECT_EQ(actualResult, AZ::Vector3::CreateZero());
  120. }
  121. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, GetRows_Call_GetExpectedResult)
  122. {
  123. auto actualResult = Matrix4x4Functions::GetRows(AZ::Matrix4x4::CreateIdentity());
  124. EXPECT_EQ(AZStd::get<0>(actualResult), AZ::Vector4(1, 0, 0, 0));
  125. EXPECT_EQ(AZStd::get<1>(actualResult), AZ::Vector4(0, 1, 0, 0));
  126. EXPECT_EQ(AZStd::get<2>(actualResult), AZ::Vector4(0, 0, 1, 0));
  127. EXPECT_EQ(AZStd::get<3>(actualResult), AZ::Vector4(0, 0, 0, 1));
  128. }
  129. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, Invert_Call_GetExpectedResult)
  130. {
  131. auto actualResult = Matrix4x4Functions::Invert(AZ::Matrix4x4::CreateIdentity());
  132. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  133. }
  134. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, IsClose_Call_GetExpectedResult)
  135. {
  136. auto actualResult = Matrix4x4Functions::IsClose(AZ::Matrix4x4::CreateIdentity(), AZ::Matrix4x4::CreateIdentity(), 0.0001);
  137. EXPECT_TRUE(actualResult);
  138. }
  139. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, IsFinite_Call_GetExpectedResult)
  140. {
  141. auto actualResult = Matrix4x4Functions::IsFinite(AZ::Matrix4x4::CreateIdentity());
  142. EXPECT_TRUE(actualResult);
  143. }
  144. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, MultiplyByVector_Call_GetExpectedResult)
  145. {
  146. auto actualResult = Matrix4x4Functions::MultiplyByVector(AZ::Matrix4x4::CreateIdentity(), AZ::Vector4(2, 2, 2, 2));
  147. EXPECT_EQ(actualResult, AZ::Vector4(2, 2, 2, 2));
  148. }
  149. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, ToScale_Call_GetExpectedResult)
  150. {
  151. auto actualResult = Matrix4x4Functions::ToScale(AZ::Matrix4x4::CreateIdentity());
  152. EXPECT_EQ(actualResult, AZ::Vector3(1, 1, 1));
  153. }
  154. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, Transpose_Call_GetExpectedResult)
  155. {
  156. auto actualResult = Matrix4x4Functions::Transpose(AZ::Matrix4x4::CreateIdentity());
  157. EXPECT_EQ(actualResult, AZ::Matrix4x4::CreateIdentity());
  158. }
  159. TEST_F(ScriptCanvasUnitTestMatrix4x4Functions, Zero_Call_GetExpectedResult)
  160. {
  161. auto actualResult = Matrix4x4Functions::Zero();
  162. EXPECT_EQ(actualResult.RetrieveScale(), AZ::Vector3::CreateZero());
  163. }
  164. } // namespace ScriptCanvasUnitTest