diff --git a/tests/testGncOptimizer.cpp b/tests/testGncOptimizer.cpp index ca40231c9..a1c6fe526 100644 --- a/tests/testGncOptimizer.cpp +++ b/tests/testGncOptimizer.cpp @@ -139,7 +139,7 @@ TEST(GncOptimizer, initializeMu) { } /* ************************************************************************* */ -TEST(GncOptimizer, updateMu) { +TEST(GncOptimizer, updateMuGM) { // has to have Gaussian noise models ! auto fg = example::createReallyNonlinearFactorGraph(); @@ -151,6 +151,7 @@ TEST(GncOptimizer, updateMu) { GncParams gncParams(lmParams); gncParams.setLossType( GncParams::RobustLossType::GM); + gncParams.setMuStep(1.4); auto gnc = GncOptimizer>(fg, initial, gncParams); @@ -162,6 +163,27 @@ TEST(GncOptimizer, updateMu) { EXPECT_DOUBLES_EQUAL(gnc.updateMu(mu), 1.0, tol); } +/* ************************************************************************* */ +TEST(GncOptimizer, updateMuTLS) { + // has to have Gaussian noise models ! + auto fg = example::createReallyNonlinearFactorGraph(); + + Point2 p0(3, 3); + Values initial; + initial.insert(X(1), p0); + + LevenbergMarquardtParams lmParams; + GncParams gncParams(lmParams); + gncParams.setMuStep(1.4); + gncParams.setLossType( + GncParams::RobustLossType::TLS); + auto gnc = + GncOptimizer>(fg, initial, gncParams); + + double mu = 5.0; + EXPECT_DOUBLES_EQUAL(gnc.updateMu(mu), mu * 1.4, tol); +} + /* ************************************************************************* */ TEST(GncOptimizer, checkMuConvergence) { // has to have Gaussian noise models !