| 65 | } |
| 66 | |
| 67 | TEST_F(EigenUtilsTest, batch_2x2) { |
| 68 | const size_t n = 2; |
| 69 | VectorF Ms = VectorF::Zero(n * 3); |
| 70 | Ms[0] = 1.0; |
| 71 | Ms[1] = 1.0; |
| 72 | Ms[3] = 1.0; |
| 73 | Ms[4] = 1.0; |
| 74 | m_solver.compute_batch_symmetric(2, Ms); |
| 75 | VectorF e_values = m_solver.get_eigen_values(); |
| 76 | MatrixF e_vectors = m_solver.get_eigen_vectors(); |
| 77 | ASSERT_EQ(4, e_values.size()); |
| 78 | ASSERT_FLOAT_EQ(1.0, e_values.minCoeff()); |
| 79 | ASSERT_FLOAT_EQ(1.0, e_values.maxCoeff()); |
| 80 | |
| 81 | MatrixF true_eigen_vectors(4, 2); |
| 82 | true_eigen_vectors << 1.0, 0.0, |
| 83 | 0.0, 1.0, |
| 84 | 1.0, 0.0, |
| 85 | 0.0, 1.0; |
| 86 | ASSERT_MATRIX_EQ(true_eigen_vectors, e_vectors); |
| 87 | } |
| 88 | |
| 89 | TEST_F(EigenUtilsTest, batch_3x3) { |
| 90 | const size_t n = 2; |
no test coverage detected