From 9caa0d14cf99fc48b46bbf61da9224d5e7056e1f Mon Sep 17 00:00:00 2001 From: jingnanshi Date: Mon, 7 Dec 2020 16:16:21 -0500 Subject: [PATCH] mu update test Separated GM & TLS case make sure the mu set size is explicitly stated (does not depend on default values) --- tests/testGncOptimizer.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) 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 !