mu update test
Separated GM & TLS case make sure the mu set size is explicitly stated (does not depend on default values)release/4.3a0
parent
d0a81f8441
commit
9caa0d14cf
|
@ -139,7 +139,7 @@ TEST(GncOptimizer, initializeMu) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST(GncOptimizer, updateMu) {
|
TEST(GncOptimizer, updateMuGM) {
|
||||||
// has to have Gaussian noise models !
|
// has to have Gaussian noise models !
|
||||||
auto fg = example::createReallyNonlinearFactorGraph();
|
auto fg = example::createReallyNonlinearFactorGraph();
|
||||||
|
|
||||||
|
@ -151,6 +151,7 @@ TEST(GncOptimizer, updateMu) {
|
||||||
GncParams<LevenbergMarquardtParams> gncParams(lmParams);
|
GncParams<LevenbergMarquardtParams> gncParams(lmParams);
|
||||||
gncParams.setLossType(
|
gncParams.setLossType(
|
||||||
GncParams<LevenbergMarquardtParams>::RobustLossType::GM);
|
GncParams<LevenbergMarquardtParams>::RobustLossType::GM);
|
||||||
|
gncParams.setMuStep(1.4);
|
||||||
auto gnc =
|
auto gnc =
|
||||||
GncOptimizer<GncParams<LevenbergMarquardtParams>>(fg, initial, gncParams);
|
GncOptimizer<GncParams<LevenbergMarquardtParams>>(fg, initial, gncParams);
|
||||||
|
|
||||||
|
@ -162,6 +163,27 @@ TEST(GncOptimizer, updateMu) {
|
||||||
EXPECT_DOUBLES_EQUAL(gnc.updateMu(mu), 1.0, tol);
|
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<LevenbergMarquardtParams> gncParams(lmParams);
|
||||||
|
gncParams.setMuStep(1.4);
|
||||||
|
gncParams.setLossType(
|
||||||
|
GncParams<LevenbergMarquardtParams>::RobustLossType::TLS);
|
||||||
|
auto gnc =
|
||||||
|
GncOptimizer<GncParams<LevenbergMarquardtParams>>(fg, initial, gncParams);
|
||||||
|
|
||||||
|
double mu = 5.0;
|
||||||
|
EXPECT_DOUBLES_EQUAL(gnc.updateMu(mu), mu * 1.4, tol);
|
||||||
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST(GncOptimizer, checkMuConvergence) {
|
TEST(GncOptimizer, checkMuConvergence) {
|
||||||
// has to have Gaussian noise models !
|
// has to have Gaussian noise models !
|
||||||
|
|
Loading…
Reference in New Issue