From cee64e385393f09738f45d23bf14da5df7042ae8 Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 1 Mar 2015 14:28:31 +0100 Subject: [PATCH] Made sure all refer to the same information matrix --- gtsam/slam/tests/testSmartProjectionPoseFactor.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gtsam/slam/tests/testSmartProjectionPoseFactor.cpp b/gtsam/slam/tests/testSmartProjectionPoseFactor.cpp index 0e1c3ff46..b0c310a36 100644 --- a/gtsam/slam/tests/testSmartProjectionPoseFactor.cpp +++ b/gtsam/slam/tests/testSmartProjectionPoseFactor.cpp @@ -301,6 +301,7 @@ TEST( SmartProjectionPoseFactor, Factors ) { Matrix16 A1, A2; A1 << -1000, 0, 0, 0, 100, 0; A2 << 1000, 0, 100, 0, -100, 0; + Matrix expectedInformation; // filled below { // createHessianFactor Matrix66 G11 = 0.5 * A1.transpose() * A1; @@ -315,10 +316,11 @@ TEST( SmartProjectionPoseFactor, Factors ) { double f = 0; RegularHessianFactor<6> expected(x1, x2, G11, G12, g1, G22, g2, f); + expectedInformation = expected.information(); boost::shared_ptr > actual = smartFactor1->createHessianFactor(cameras, 0.0); - EXPECT(assert_equal(expected.information(), actual->information(), 1e-8)); + EXPECT(assert_equal(expectedInformation, actual->information(), 1e-8)); EXPECT(assert_equal(expected, *actual, 1e-8)); } @@ -356,16 +358,19 @@ TEST( SmartProjectionPoseFactor, Factors ) { boost::shared_ptr > actual = smartFactor1->createRegularImplicitSchurFactor(cameras, 0.0); CHECK(actual); + EXPECT(assert_equal(expectedInformation, expected.information(), 1e-8)); + EXPECT(assert_equal(expectedInformation, actual->information(), 1e-8)); EXPECT(assert_equal(expected, *actual)); // createJacobianQFactor SharedIsotropic n = noiseModel::Isotropic::Sigma(4, sigma); JacobianFactorQ<6, 2> expectedQ(Fblocks, E, P, b, n); + EXPECT(assert_equal(expectedInformation, expectedQ.information(), 1e-8)); boost::shared_ptr > actualQ = smartFactor1->createJacobianQFactor(cameras, 0.0); CHECK(actual); - EXPECT(assert_equal(expectedQ.information(), actualQ->information(), 1e-8)); + EXPECT(assert_equal(expectedInformation, actualQ->information(), 1e-8)); EXPECT(assert_equal(expectedQ, *actualQ)); } @@ -375,11 +380,12 @@ TEST( SmartProjectionPoseFactor, Factors ) { b.setZero(); double s = sin(M_PI_4); JacobianFactor expected(x1, s * A1, x2, s * A2, b); + EXPECT(assert_equal(expectedInformation, expected.information(), 1e-8)); boost::shared_ptr actual = smartFactor1->createJacobianSVDFactor(cameras, 0.0); CHECK(actual); - EXPECT(assert_equal(expected.information(), actual->information(), 1e-8)); + EXPECT(assert_equal(expectedInformation, actual->information(), 1e-8)); EXPECT(assert_equal(expected, *actual)); } }