diff --git a/gtsam_unstable/nonlinear/tests/testBasisDecompositions.cpp b/gtsam_unstable/nonlinear/tests/testBasisDecompositions.cpp index eaaae04de..75d3b07e1 100644 --- a/gtsam_unstable/nonlinear/tests/testBasisDecompositions.cpp +++ b/gtsam_unstable/nonlinear/tests/testBasisDecompositions.cpp @@ -147,7 +147,7 @@ TEST(BasisDecompositions, ManualFourier) { Key key(1); Expression c(key); Values values; - values.insert(key, Vector3()); // does not matter + values.insert(key, Vector3::Zero()); // does not matter for (size_t i = 0; i < 16; i++) { double x = i * M_PI / 8, y = exp(sin(x) + cos(x)); @@ -162,12 +162,38 @@ TEST(BasisDecompositions, ManualFourier) { // With ExpressionFactor Expression expression(Fourier<3>(x), c); EXPECT_CORRECT_EXPRESSION_JACOBIANS(expression, values, 1e-5, 1e-9); - - ExpressionFactor f2(model, y, expression); - boost::shared_ptr gf = f2.linearize(values); - boost::shared_ptr jf = // - boost::dynamic_pointer_cast(gf); - EXPECT( assert_equal(f1, *jf, 1e-9)); + { + ExpressionFactor f2(model, y, expression); + boost::shared_ptr gf = f2.linearize(values); + boost::shared_ptr jf = // + boost::dynamic_pointer_cast(gf); + CHECK(jf); + EXPECT( assert_equal(f1, *jf, 1e-9)); + } + { + ExpressionFactor f2(model, y, expression); + boost::shared_ptr gf = f2.linearize(values); + boost::shared_ptr jf = // + boost::dynamic_pointer_cast(gf); + CHECK(jf); + EXPECT( assert_equal(f1, *jf, 1e-9)); + } + { + ExpressionFactor f2(model, y, expression); + boost::shared_ptr gf = f2.linearize(values); + boost::shared_ptr jf = // + boost::dynamic_pointer_cast(gf); + CHECK(jf); + EXPECT( assert_equal(f1, *jf, 1e-9)); + } + { + ExpressionFactor f2(model, y, expression); + boost::shared_ptr gf = f2.linearize(values); + boost::shared_ptr jf = // + boost::dynamic_pointer_cast(gf); + CHECK(jf); + EXPECT( assert_equal(f1, *jf, 1e-9)); + } } // Solve