ScriptCanvasUnitTest_Vector3.cpp 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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/Vector3.h>
  10. namespace ScriptCanvasUnitTest
  11. {
  12. using namespace ScriptCanvas;
  13. using ScriptCanvasUnitTestVector3Functions = ScriptCanvasUnitTestFixture;
  14. TEST_F(ScriptCanvasUnitTestVector3Functions, Absolute_Call_GetExpectedResult)
  15. {
  16. auto actualResult = Vector3Functions::Absolute(AZ::Vector3(-1, -1, -1));
  17. EXPECT_EQ(actualResult, AZ::Vector3::CreateOne());
  18. }
  19. TEST_F(ScriptCanvasUnitTestVector3Functions, BuildTangentBasis_Call_GetExpectedResult)
  20. {
  21. auto actualResult = Vector3Functions::BuildTangentBasis(AZ::Vector3(1, 0, 0));
  22. EXPECT_EQ(AZStd::get<0>(actualResult), AZ::Vector3(0, 0, 1));
  23. EXPECT_EQ(AZStd::get<1>(actualResult), AZ::Vector3(0, -1, 0));
  24. }
  25. TEST_F(ScriptCanvasUnitTestVector3Functions, Clamp_Call_GetExpectedResult)
  26. {
  27. auto actualResult = Vector3Functions::Clamp(AZ::Vector3(-2, 2, 0), AZ::Vector3(-1, -1, -1), AZ::Vector3(1, 1, 1));
  28. EXPECT_EQ(actualResult, AZ::Vector3(-1, 1, 0));
  29. }
  30. TEST_F(ScriptCanvasUnitTestVector3Functions, Cross_Call_GetExpectedResult)
  31. {
  32. auto actualResult = Vector3Functions::Cross(AZ::Vector3::CreateOne(), AZ::Vector3::CreateOne());
  33. EXPECT_EQ(actualResult, AZ::Vector3::CreateZero());
  34. }
  35. TEST_F(ScriptCanvasUnitTestVector3Functions, Distance_Call_GetExpectedResult)
  36. {
  37. auto actualResult = Vector3Functions::Distance(AZ::Vector3(-1, 0, 0), AZ::Vector3(1, 0, 0));
  38. EXPECT_EQ(actualResult, 2);
  39. }
  40. TEST_F(ScriptCanvasUnitTestVector3Functions, DistanceSquared_Call_GetExpectedResult)
  41. {
  42. auto actualResult = Vector3Functions::DistanceSquared(AZ::Vector3(-1, 0, 0), AZ::Vector3(1, 0, 0));
  43. EXPECT_EQ(actualResult, 4);
  44. }
  45. TEST_F(ScriptCanvasUnitTestVector3Functions, Dot_Call_GetExpectedResult)
  46. {
  47. auto actualResult = Vector3Functions::Dot(AZ::Vector3::CreateOne(), AZ::Vector3::CreateOne());
  48. EXPECT_EQ(actualResult, 3);
  49. }
  50. TEST_F(ScriptCanvasUnitTestVector3Functions, FromValues_Call_GetExpectedResult)
  51. {
  52. auto actualResult = Vector3Functions::FromValues(1, 1, 1);
  53. EXPECT_EQ(actualResult, AZ::Vector3::CreateOne());
  54. }
  55. TEST_F(ScriptCanvasUnitTestVector3Functions, GetElement_Call_GetExpectedResult)
  56. {
  57. auto actualResult = Vector3Functions::GetElement(AZ::Vector3::CreateOne(), 0);
  58. EXPECT_EQ(actualResult, 1);
  59. }
  60. TEST_F(ScriptCanvasUnitTestVector3Functions, IsClose_Call_GetExpectedResult)
  61. {
  62. auto actualResult = Vector3Functions::IsClose(AZ::Vector3::CreateOne(), AZ::Vector3::CreateOne(), 0.001);
  63. EXPECT_TRUE(actualResult);
  64. }
  65. TEST_F(ScriptCanvasUnitTestVector3Functions, IsFinite_Call_GetExpectedResult)
  66. {
  67. auto actualResult = Vector3Functions::IsFinite(AZ::Vector3::CreateOne());
  68. EXPECT_TRUE(actualResult);
  69. }
  70. TEST_F(ScriptCanvasUnitTestVector3Functions, IsNormalized_Call_GetExpectedResult)
  71. {
  72. auto actualResult = Vector3Functions::IsNormalized(AZ::Vector3(1, 0, 0), 0.001);
  73. EXPECT_TRUE(actualResult);
  74. }
  75. TEST_F(ScriptCanvasUnitTestVector3Functions, IsPerpendicular_Call_GetExpectedResult)
  76. {
  77. auto actualResult = Vector3Functions::IsPerpendicular(AZ::Vector3(1, 0, 0), AZ::Vector3(0, 1, 0), 0.001);
  78. EXPECT_TRUE(actualResult);
  79. }
  80. TEST_F(ScriptCanvasUnitTestVector3Functions, IsZero_Call_GetExpectedResult)
  81. {
  82. auto actualResult = Vector3Functions::IsZero(AZ::Vector3::CreateZero(), 0.001);
  83. EXPECT_TRUE(actualResult);
  84. }
  85. TEST_F(ScriptCanvasUnitTestVector3Functions, Length_Call_GetExpectedResult)
  86. {
  87. auto actualResult = Vector3Functions::Length(AZ::Vector3(3, 4, 0));
  88. EXPECT_EQ(actualResult, 5);
  89. }
  90. TEST_F(ScriptCanvasUnitTestVector3Functions, LengthReciprocal_Call_GetExpectedResult)
  91. {
  92. auto actualResult = Vector3Functions::LengthReciprocal(AZ::Vector3(-3, 4, 0));
  93. EXPECT_TRUE(AZStd::abs(actualResult - 0.2) < 0.001);
  94. }
  95. TEST_F(ScriptCanvasUnitTestVector3Functions, LengthSquared_Call_GetExpectedResult)
  96. {
  97. auto actualResult = Vector3Functions::LengthSquared(AZ::Vector3(3, 4, 0));
  98. EXPECT_EQ(actualResult, 25);
  99. }
  100. TEST_F(ScriptCanvasUnitTestVector3Functions, Lerp_Call_GetExpectedResult)
  101. {
  102. auto actualResult = Vector3Functions::Lerp(AZ::Vector3(0, 0, 0), AZ::Vector3(1, 0, 0), 0.5);
  103. EXPECT_EQ(actualResult, AZ::Vector3(0.5, 0, 0));
  104. }
  105. TEST_F(ScriptCanvasUnitTestVector3Functions, Max_Call_GetExpectedResult)
  106. {
  107. auto actualResult = Vector3Functions::Max(AZ::Vector3(1, 0, 0), AZ::Vector3(0, 1, 1));
  108. EXPECT_EQ(actualResult, AZ::Vector3::CreateOne());
  109. }
  110. TEST_F(ScriptCanvasUnitTestVector3Functions, Min_Call_GetExpectedResult)
  111. {
  112. auto actualResult = Vector3Functions::Min(AZ::Vector3(1, 0, 0), AZ::Vector3(0, 1, 0));
  113. EXPECT_EQ(actualResult, AZ::Vector3::CreateZero());
  114. }
  115. TEST_F(ScriptCanvasUnitTestVector3Functions, SetX_Call_GetExpectedResult)
  116. {
  117. auto actualResult = Vector3Functions::SetX(AZ::Vector3(1, 0, 0), 0);
  118. EXPECT_EQ(actualResult, AZ::Vector3::CreateZero());
  119. }
  120. TEST_F(ScriptCanvasUnitTestVector3Functions, SetY_Call_GetExpectedResult)
  121. {
  122. auto actualResult = Vector3Functions::SetY(AZ::Vector3(0, 1, 0), 0);
  123. EXPECT_EQ(actualResult, AZ::Vector3::CreateZero());
  124. }
  125. TEST_F(ScriptCanvasUnitTestVector3Functions, SetZ_Call_GetExpectedResult)
  126. {
  127. auto actualResult = Vector3Functions::SetZ(AZ::Vector3(0, 0, 1), 0);
  128. EXPECT_EQ(actualResult, AZ::Vector3::CreateZero());
  129. }
  130. TEST_F(ScriptCanvasUnitTestVector3Functions, MultiplyByNumber_Call_GetExpectedResult)
  131. {
  132. auto actualResult = Vector3Functions::MultiplyByNumber(AZ::Vector3(1, 1, 1), 0);
  133. EXPECT_EQ(actualResult, AZ::Vector3::CreateZero());
  134. }
  135. TEST_F(ScriptCanvasUnitTestVector3Functions, Negate_Call_GetExpectedResult)
  136. {
  137. auto actualResult = Vector3Functions::Negate(AZ::Vector3(1, 1, 1));
  138. EXPECT_EQ(actualResult, AZ::Vector3(-1, -1, -1));
  139. }
  140. TEST_F(ScriptCanvasUnitTestVector3Functions, Normalize_Call_GetExpectedResult)
  141. {
  142. auto actualResult = Vector3Functions::Normalize(AZ::Vector3(1, 0, 0));
  143. EXPECT_EQ(actualResult, AZ::Vector3(1, 0, 0));
  144. }
  145. TEST_F(ScriptCanvasUnitTestVector3Functions, Project_Call_GetExpectedResult)
  146. {
  147. auto actualResult = Vector3Functions::Project(AZ::Vector3(1, 0, 0), AZ::Vector3(0, 1, 0));
  148. EXPECT_EQ(actualResult, AZ::Vector3::CreateZero());
  149. }
  150. TEST_F(ScriptCanvasUnitTestVector3Functions, Reciprocal_Call_GetExpectedResult)
  151. {
  152. auto actualResult = Vector3Functions::Reciprocal(AZ::Vector3::CreateOne());
  153. #if AZ_TRAIT_USE_PLATFORM_SIMD_NEON
  154. EXPECT_THAT(actualResult, IsClose(AZ::Vector3::CreateOne()));
  155. #else
  156. EXPECT_EQ(actualResult, AZ::Vector3::CreateOne());
  157. #endif // AZ_TRAIT_USE_PLATFORM_SIMD_NEON
  158. }
  159. TEST_F(ScriptCanvasUnitTestVector3Functions, Slerp_Call_GetExpectedResult)
  160. {
  161. auto actualResult = Vector3Functions::Slerp(AZ::Vector3::CreateOne(), AZ::Vector3::CreateOne(), 0.5);
  162. EXPECT_EQ(actualResult, AZ::Vector3::CreateOne());
  163. }
  164. TEST_F(ScriptCanvasUnitTestVector3Functions, DirectionTo_Call_GetExpectedResult)
  165. {
  166. auto actualResult = Vector3Functions::DirectionTo(AZ::Vector3::CreateZero(), AZ::Vector3(1, 0, 0), 1);
  167. #if AZ_TRAIT_USE_PLATFORM_SIMD_NEON
  168. EXPECT_THAT(AZStd::get<0>(actualResult), IsClose(AZ::Vector3(1, 0, 0)));
  169. #else
  170. EXPECT_EQ(AZStd::get<0>(actualResult), AZ::Vector3(1, 0, 0));
  171. #endif // AZ_TRAIT_USE_PLATFORM_SIMD_NEON
  172. EXPECT_EQ(AZStd::get<1>(actualResult), 1);
  173. }
  174. } // namespace ScriptCanvasUnitTest