diff --git a/test/gtest_solve_problem_force_torque_inertial_dynamics.cpp b/test/gtest_solve_problem_force_torque_inertial_dynamics.cpp
index f152da894d0e67cf3f6ba18da5289859b7263e72..9805d12369c86e519679a70c986e7dab9810e22f 100644
--- a/test/gtest_solve_problem_force_torque_inertial_dynamics.cpp
+++ b/test/gtest_solve_problem_force_torque_inertial_dynamics.cpp
@@ -135,6 +135,22 @@ TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, mass_only_hoveri
     WOLF_INFO("True mass     : ", mass_true, " Kg.");
     WOLF_INFO("Guess mass    : ", mass_guess, " Kg.");
     WOLF_INFO("Estimated mass: ", S->getStateBlock('m')->getState(), " Kg.");
+
+
+    CaptureMotionPtr C = std::make_shared<CaptureMotion>("CaptureMotion", 2.0, S, data, data_cov, nullptr);
+    for (TimeStamp t = p->getLast()->getTimeStamp() + 1.0 ; t <= 7.0 ; t += 1.0)
+    {
+        C->setTimeStamp(t);
+        C->process();
+        p->getOrigin()->getFrame()->fix();
+        report = solver_->solve(wolf::SolverManager::ReportVerbosity::FULL);
+        WOLF_INFO("Estimated mass: ", S->getStateBlock('m')->getState(), " Kg.");
+        WOLF_INFO("-----------------------------");
+    }
+
+
+
+    ASSERT_NEAR(S->getStateBlock('m')->getState()(0), mass_true, 1e-3);
 }
 
 TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, cdm_only_hovering)
@@ -175,6 +191,7 @@ TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, cdm_only_hoverin
     CaptureMotionPtr C_KF1 = std::static_pointer_cast<CaptureMotion>(p->getOrigin());
 
     C_KF0->getFrame()->fix();
+    C_KF1->getFrame()->getStateBlock('L')->setState(Vector3d::Zero()); // Make sure L is not moving due to torques
     C_KF1->getFrame()->fix();
 
     P->print(4, 1, 1, 1);
@@ -188,6 +205,23 @@ TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, cdm_only_hoverin
     WOLF_INFO("True cdm     : ", cdm_true.transpose(), " m.");
     WOLF_INFO("Guess cdm    : ", cdm_guess.transpose(), " m.");
     WOLF_INFO("Estimated cdm: ", S->getStateBlock('C')->getState().transpose(), " m.");
+
+
+
+    CaptureMotionPtr C = std::make_shared<CaptureMotion>("CaptureMotion", 2.0, S, data, data_cov, nullptr);
+    for (TimeStamp t = p->getLast()->getTimeStamp() + 1.0 ; t <= 11.0 ; t += 1.0)
+    {
+        C->setTimeStamp(t);
+        C->process();
+        p->getOrigin()->getFrame()->getStateBlock('L')->setState(Vector3d::Zero()); // Make sure L is not moving due to torques
+        p->getOrigin()->getFrame()->fix();
+        report = solver_->solve(wolf::SolverManager::ReportVerbosity::FULL);
+        WOLF_INFO("Estimated cdm : ", S->getStateBlock('C')->getState().transpose(), " m.");
+        WOLF_INFO("-----------------------------");
+    }
+
+
+    ASSERT_MATRIX_APPROX(S->getStateBlock('C')->getState().head(2), cdm_true.head(2), 1e-5); // cdm_z is not observable while hovering
 }
 
 TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, mass_and_cdm_hovering)
@@ -229,7 +263,7 @@ TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, mass_and_cdm_hov
     CaptureMotionPtr C_KF1 = std::static_pointer_cast<CaptureMotion>(p->getOrigin());
 
     C_KF0->getFrame()->fix();
-    C_KF1->getFrame()->getStateBlock('L')->setState(Vector3d::Zero());
+    C_KF1->getFrame()->getStateBlock('L')->setState(Vector3d::Zero()); // Make sure L is not moving due to torques
     C_KF1->getFrame()->fix();
 
     P->print(4, 1, 1, 1);
@@ -239,10 +273,10 @@ TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, mass_and_cdm_hov
     WOLF_INFO(report);  // should show a very low iteration number (possibly 1)
 
     WOLF_INFO("True mass     : ", mass_true, " Kg.");
-    WOLF_INFO("Guess mass    : ", mass_guess, " Kg.");
-    WOLF_INFO("Estimated mass: ", S->getStateBlock('m')->getState(), " Kg.");
     WOLF_INFO("True cdm      : ", cdm_true.transpose(), " m.");
+    WOLF_INFO("Guess mass    : ", mass_guess, " Kg.");
     WOLF_INFO("Guess cdm     : ", cdm_guess.transpose(), " m.");
+    WOLF_INFO("Estimated mass: ", S->getStateBlock('m')->getState(), " Kg.");
     WOLF_INFO("Estimated cdm : ", S->getStateBlock('C')->getState().transpose(), " m.");
     WOLF_INFO("-----------------------------");
 
@@ -258,7 +292,7 @@ TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, mass_and_cdm_hov
     {
         C->setTimeStamp(t);
         C->process();
-        p->getOrigin()->getFrame()->getStateBlock('L')->setState(Vector3d::Zero());
+        p->getOrigin()->getFrame()->getStateBlock('L')->setState(Vector3d::Zero()); // Make sure L is not moving due to torques
         p->getOrigin()->getFrame()->fix();
         report = solver_->solve(wolf::SolverManager::ReportVerbosity::FULL);
         WOLF_INFO("Estimated mass: ", S->getStateBlock('m')->getState(), " Kg.");
@@ -277,6 +311,6 @@ TEST_F(Test_SolveProblemForceTorqueInertialPreintDynamics_yaml, mass_and_cdm_hov
 int main(int argc, char **argv)
 {
     testing::InitGoogleTest(&argc, argv);
-    // ::testing::GTEST_FLAG(filter) = "Test_SolveProblemForceTorqueInertialPreintDynamics_yaml.mass_and_cdm_hovering";
+    // ::testing::GTEST_FLAG(filter) = "Test_SolveProblemForceTorqueInertialPreintDynamics_yaml.cdm_only_hovering";
     return RUN_ALL_TESTS();
 }