VectorTest.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. 
  2. #include "../testTools.h"
  3. #include "../../DFPSR/math/UVector.h"
  4. #include "../../DFPSR/math/IVector.h"
  5. #include "../../DFPSR/math/LVector.h"
  6. #include "../../DFPSR/math/FVector.h"
  7. START_TEST(Vector)
  8. // Comparisons
  9. ASSERT_EQUAL(UVector2D(64u, 23u), UVector2D(64u, 23u));
  10. ASSERT_EQUAL(UVector3D(64u, 23u, 74u), UVector3D(64u, 23u, 74u));
  11. ASSERT_EQUAL(UVector4D(64u, 23u, 74u, 1483u), UVector4D(64u, 23u, 74u, 1483u));
  12. ASSERT_EQUAL(IVector2D(-34, 764), IVector2D(-34, 764));
  13. ASSERT_NOT_EQUAL(IVector2D(67, 34), IVector2D(57, 34));
  14. ASSERT_NOT_EQUAL(IVector2D(84, -26), IVector2D(84, 35));
  15. ASSERT_EQUAL(IVector3D(75, 25, -7), IVector3D(75, 25, -7));
  16. ASSERT_EQUAL(IVector4D(84, -2, 34, 245), IVector4D(84, -2, 34, 245));
  17. // Construct from single element
  18. ASSERT_EQUAL(IVector2D(58), IVector2D(58, 58));
  19. ASSERT_EQUAL(IVector3D(45), IVector3D(45, 45, 45));
  20. ASSERT_EQUAL(IVector4D(98), IVector4D(98, 98, 98, 98));
  21. // Access single element
  22. ASSERT_EQUAL(IVector2D(12, 34)[0], 12);
  23. ASSERT_EQUAL(IVector2D(12, 34)[1], 34);
  24. ASSERT_EQUAL(IVector3D(12, 34, 56)[0], 12);
  25. ASSERT_EQUAL(IVector3D(12, 34, 56)[1], 34);
  26. ASSERT_EQUAL(IVector3D(12, 34, 56)[2], 56);
  27. ASSERT_EQUAL(IVector4D(12, 34, 56, 78)[0], 12);
  28. ASSERT_EQUAL(IVector4D(12, 34, 56, 78)[1], 34);
  29. ASSERT_EQUAL(IVector4D(12, 34, 56, 78)[2], 56);
  30. ASSERT_EQUAL(IVector4D(12, 34, 56, 78)[3], 78);
  31. // Math
  32. ASSERT_EQUAL(IVector2D(12, 34) + IVector2D(8, 6), IVector2D(20, 40));
  33. ASSERT_EQUAL(IVector2D(12, 34) + 4, IVector2D(16, 38));
  34. ASSERT_EQUAL(100 + IVector2D(1, 2), IVector2D(101, 102));
  35. ASSERT_EQUAL(IVector2D(13, 64) - IVector2D(3, 4), IVector2D(10, 60));
  36. ASSERT_EQUAL(IVector2D(37, 38) - 30, IVector2D(7, 8));
  37. ASSERT_EQUAL(10 - IVector2D(4, 7), IVector2D(6, 3));
  38. ASSERT_EQUAL(IVector2D(3, -8) * IVector2D(2, -2), IVector2D(6, 16));
  39. ASSERT_EQUAL(IVector2D(2, 3) * 5, IVector2D(10, 15));
  40. ASSERT_EQUAL(7 * IVector2D(1, -1), IVector2D(7, -7));
  41. ASSERT_EQUAL(IVector2D(20, 40) / IVector2D(2, 4), IVector2D(10, 10));
  42. ASSERT_EQUAL(IVector2D(20, 40) / 10, IVector2D(2, 4));
  43. ASSERT_EQUAL(12 / IVector2D(3, 4), IVector2D(4, 3));
  44. END_TEST