|
9 | 9 | using TEST_##manifold##_TESTER = CommonTester<manifold>; \
|
10 | 10 | TEST_F(TEST_##manifold##_TESTER, TEST_##manifold##_COPY_CONSTRUCTOR) \
|
11 | 11 | { evalCopyConstructor(); } \
|
| 12 | + TEST_F(TEST_##manifold##_TESTER, TEST_##manifold##_UNNORMALIZE_DATA) \ |
| 13 | + { evalConstructorUnnormalizedData(); } \ |
12 | 14 | TEST_F(TEST_##manifold##_TESTER, TEST_##manifold##_ASSIGNMENT) \
|
13 | 15 | { evalAssignment(); } \
|
14 | 16 | TEST_F(TEST_##manifold##_TESTER, TEST_##manifold##_DATA_PTR_VALID) \
|
|
64 | 66 | TEST_F(TEST_##manifold##_TESTER, TEST_##manifold##_INNER) \
|
65 | 67 | { evalInner(); } \
|
66 | 68 | TEST_F(TEST_##manifold##_TESTER, TEST_##manifold##_NUMERICAL_STABILITY) \
|
67 |
| - { evalNumericalStability(); } |
| 69 | + { evalNumericalStability(); } \ |
| 70 | + TEST_F(TEST_##manifold##_TESTER, TEST_##manifold##_NORMALIZE) \ |
| 71 | + { evalNormalize(); } |
68 | 72 |
|
69 | 73 | #define MANIF_TEST_JACOBIANS(manifold) \
|
70 | 74 | using TEST_##manifold##_JACOBIANS_TESTER = JacobianTester<manifold>; \
|
@@ -136,6 +140,14 @@ class CommonTester : public ::testing::Test
|
136 | 140 | EXPECT_MANIF_NEAR(state, state_copy, tol_);
|
137 | 141 | }
|
138 | 142 |
|
| 143 | + void evalConstructorUnnormalizedData() |
| 144 | + { |
| 145 | + using DataType = typename LieGroup::DataType; |
| 146 | + EXPECT_THROW( |
| 147 | + LieGroup(DataType::Random()*10.), manif::invalid_argument |
| 148 | + ); |
| 149 | + } |
| 150 | + |
139 | 151 | void evalAssignment()
|
140 | 152 | {
|
141 | 153 | LieGroup state_copy;
|
@@ -509,6 +521,22 @@ class CommonTester : public ::testing::Test
|
509 | 521 | ) << "+= failed at iteration " << i ;
|
510 | 522 | }
|
511 | 523 |
|
| 524 | + void evalNormalize() |
| 525 | + { |
| 526 | + typename LieGroup::DataType data = LieGroup::DataType::Random() * 100.; |
| 527 | + |
| 528 | + EXPECT_THROW( |
| 529 | + LieGroup a(data), manif::invalid_argument |
| 530 | + ); |
| 531 | + |
| 532 | + Eigen::Map<LieGroup> map(data.data()); |
| 533 | + map.normalize(); |
| 534 | + |
| 535 | + EXPECT_NO_THROW( |
| 536 | + LieGroup b = map |
| 537 | + ); |
| 538 | + } |
| 539 | + |
512 | 540 | protected:
|
513 | 541 |
|
514 | 542 | Scalar tol_ = Constants<Scalar>::eps;
|
|
0 commit comments