2
0

VectorTests.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #include "UnitTestFramework.h"
  5. #include <Jolt/Math/Vector.h>
  6. TEST_SUITE("VectorTests")
  7. {
  8. TEST_CASE("TestVectorMultiplyFloat")
  9. {
  10. Vector<5> v;
  11. v[0] = 1;
  12. v[1] = 2;
  13. v[2] = 3;
  14. v[3] = 4;
  15. v[4] = 5;
  16. Vector<5> v2 = v * 2;
  17. CHECK(v2[0] == 2.0f);
  18. CHECK(v2[1] == 4.0f);
  19. CHECK(v2[2] == 6.0f);
  20. CHECK(v2[3] == 8.0f);
  21. CHECK(v2[4] == 10.0f);
  22. }
  23. TEST_CASE("TestVectorAdd")
  24. {
  25. Vector<5> v1 = Vector<5>::sZero();
  26. Vector<5> v2 = Vector<5>::sZero();
  27. v1[0] = 1;
  28. v2[0] = 2;
  29. v1[4] = 5;
  30. Vector<5> v3 = v1 + v2;
  31. CHECK(v3[0] == 3.0f);
  32. CHECK(v3[1] == 0.0f);
  33. CHECK(v3[2] == 0.0f);
  34. CHECK(v3[3] == 0.0f);
  35. CHECK(v3[4] == 5.0f);
  36. }
  37. TEST_CASE("TestVectorNegate")
  38. {
  39. Vector<5> v;
  40. v[0] = 1;
  41. v[1] = 2;
  42. v[2] = 3;
  43. v[3] = 4;
  44. v[4] = 5;
  45. Vector<5> v2 = -v;
  46. CHECK(v2[0] == -1.0f);
  47. CHECK(v2[1] == -2.0f);
  48. CHECK(v2[2] == -3.0f);
  49. CHECK(v2[3] == -4.0f);
  50. CHECK(v2[4] == -5.0f);
  51. }
  52. TEST_CASE("TestVectorLength")
  53. {
  54. Vector<5> v;
  55. v[0] = 1;
  56. v[1] = 2;
  57. v[2] = 3;
  58. v[3] = 4;
  59. v[4] = 5;
  60. CHECK(v.LengthSq() == float(1 + 4 + 9 + 16 + 25));
  61. }
  62. }