matrix_helper_test.cpp 795 B

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // matrix_helper_test.cpp
  3. // matrix
  4. //
  5. // Created by Sam Jaffe on 6/3/18.
  6. //
  7. #include <gmock/gmock.h>
  8. #include "matrix_helpers.hpp"
  9. template <std::size_t N> using vec = math::vector::vector<double, N>;
  10. TEST(MatrixHelper, IdentityFunctionProducesOnes) {
  11. auto iden = math::matrix::identity<double, 4>();
  12. VECTOR_FOR_EACH_RANGE(i, 4) {
  13. EXPECT_THAT(iden.at(i, i), 1.0);
  14. }
  15. MATRIX_FOR_EACH_RANGE(i, 4, j, 4) {
  16. EXPECT_TRUE(i == j || iden.at(i, j) == 0);
  17. }
  18. }
  19. TEST(MatrixHelper, DiagonalWillFillWithAllZeros) {
  20. vec<4> const vector({1.5, 0.5, -1.0, 2.2});
  21. auto diag = math::matrix::diagonal(vector);
  22. VECTOR_FOR_EACH_RANGE(i, 4) {
  23. EXPECT_THAT(diag.at(i, i), vector.at(i));
  24. }
  25. MATRIX_FOR_EACH_RANGE(i, 4, j, 4) {
  26. EXPECT_TRUE(i == j || diag.at(i, j) == 0);
  27. }
  28. }