| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- //
- // matrix_helper_test.cpp
- // matrix
- //
- // Created by Sam Jaffe on 6/3/18.
- //
- #include <gmock/gmock.h>
- #include "matrix_helpers.hpp"
- template <std::size_t N> using vec = math::vector::vector<double, N>;
- TEST(MatrixHelper, IdentityFunctionProducesOnes) {
- auto iden = math::matrix::identity<double, 4>();
- VECTOR_FOR_EACH_RANGE(i, 4) {
- EXPECT_THAT(iden.at(i, i), 1.0);
- }
- MATRIX_FOR_EACH_RANGE(i, 4, j, 4) {
- EXPECT_TRUE(i == j || iden.at(i, j) == 0);
- }
- }
- TEST(MatrixHelper, DiagonalWillFillWithAllZeros) {
- vec<4> const vector({1.5, 0.5, -1.0, 2.2});
- auto diag = math::matrix::diagonal(vector);
- VECTOR_FOR_EACH_RANGE(i, 4) {
- EXPECT_THAT(diag.at(i, i), vector.at(i));
- }
- MATRIX_FOR_EACH_RANGE(i, 4, j, 4) {
- EXPECT_TRUE(i == j || diag.at(i, j) == 0);
- }
- }
- TEST(MatrixHelper, ScalarMatrixPiecewiseStretchesVector) {
- vec<3> const vector({1.5, 0.5, -1.0});
- vec<3> const x({2.0, 3.8, 11.0});
- auto const A = math::matrix::scalar(vector);
- EXPECT_THAT(A*x, vec<3>({3.0, 1.9, -11.0}));
- }
|