2
0

DVec3Tests.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  2. // SPDX-License-Identifier: MIT
  3. #include "UnitTestFramework.h"
  4. #include <Jolt/Math/DVec3.h>
  5. #ifdef JPH_USE_AVX2
  6. TEST_SUITE("DVec3Tests")
  7. {
  8. TEST_CASE("TestDVec3Dot")
  9. {
  10. CHECK(DVec3(2, 3, 4).Dot(DVec3(5, 6, 7)) == double(2 * 5 + 3 * 6 + 4 * 7));
  11. }
  12. TEST_CASE("TestDVec3Length")
  13. {
  14. CHECK(DVec3(2, 3, 4).LengthSq() == double(4 + 9 + 16));
  15. CHECK(DVec3(2, 3, 4).Length() == sqrt(double(4 + 9 + 16)));
  16. }
  17. TEST_CASE("TestDVec3Sqrt")
  18. {
  19. CHECK(DVec3(13, 15, 17).Sqrt() == DVec3(sqrt(13.0), sqrt(15.0), sqrt(17.0)));
  20. }
  21. TEST_CASE("TestDVec3Equals")
  22. {
  23. CHECK_FALSE(DVec3(13, 15, 17) == DVec3(13, 15, 19));
  24. CHECK(DVec3(13, 15, 17) == DVec3(13, 15, 17));
  25. CHECK(DVec3(13, 15, 17) != DVec3(13, 15, 19));
  26. }
  27. TEST_CASE("TestDVec3LoadDouble3Unsafe")
  28. {
  29. double test[4] = { 1, 2, 3, 4 };
  30. DVec3 v = DVec3::sLoadDouble3Unsafe(test);
  31. DVec3 v2(1, 2, 3);
  32. CHECK(v == v2);
  33. }
  34. TEST_CASE("TestDVec3Cross")
  35. {
  36. CHECK(DVec3(1, 0, 0).Cross(DVec3(0, 1, 0)) == DVec3(0, 0, 1));
  37. CHECK(DVec3(0, 1, 0).Cross(DVec3(1, 0, 0)) == DVec3(0, 0, -1));
  38. CHECK(DVec3(0, 1, 0).Cross(DVec3(0, 0, 1)) == DVec3(1, 0, 0));
  39. CHECK(DVec3(0, 0, 1).Cross(DVec3(0, 1, 0)) == DVec3(-1, 0, 0));
  40. CHECK(DVec3(0, 0, 1).Cross(DVec3(1, 0, 0)) == DVec3(0, 1, 0));
  41. CHECK(DVec3(1, 0, 0).Cross(DVec3(0, 0, 1)) == DVec3(0, -1, 0));
  42. }
  43. }
  44. #endif // JPH_USE_AVX2