diff --git a/.clang-format copy b/.clang-format copy
deleted file mode 100644
index bc951c7539c78c4fa00efde0030dcf12b126686a..0000000000000000000000000000000000000000
--- a/.clang-format copy	
+++ /dev/null
@@ -1,115 +0,0 @@
----
-Language: Cpp
-BasedOnStyle: Google
-IndentAccessModifiers: false
-AccessModifierOffset: -2
-AlignAfterOpenBracket: Align
-AlignConsecutiveAssignments: true
-AlignConsecutiveDeclarations: true
-AlignEscapedNewlines: Left
-AlignOperands: true
-AlignTrailingComments: true
-AllowAllParametersOfDeclarationOnNextLine: false
-AllowShortBlocksOnASingleLine: false
-AllowShortCaseLabelsOnASingleLine: false
-AllowShortFunctionsOnASingleLine: Empty
-AllowShortIfStatementsOnASingleLine: true
-AllowShortLoopsOnASingleLine: true
-AlwaysBreakAfterDefinitionReturnType: None
-AlwaysBreakAfterReturnType: None
-AlwaysBreakBeforeMultilineStrings: true
-AlwaysBreakTemplateDeclarations: true
-BinPackArguments: true
-BinPackParameters: false
-BreakBeforeBraces: Custom
-BraceWrapping:
-  AfterClass: true
-  AfterControlStatement: Always
-  AfterEnum: true
-  AfterFunction: true
-  AfterNamespace: true
-  AfterObjCDeclaration: true
-  AfterStruct: true
-  AfterUnion: true
-  AfterExternBlock: false
-  BeforeCatch: true
-  BeforeElse: true
-  IndentBraces: false
-  SplitEmptyFunction: true
-  SplitEmptyRecord: true
-  SplitEmptyNamespace: true
-BreakBeforeBinaryOperators: None
-BreakBeforeInheritanceComma: false
-BreakBeforeTernaryOperators: true
-BreakConstructorInitializersBeforeComma: false
-BreakConstructorInitializers: BeforeColon
-BreakAfterJavaFieldAnnotations: false
-BreakStringLiterals: true
-ColumnLimit: 119
-# CommentPragmas: "^ IWYU pragma: ^\\.+"
-CommentPragmas:  '^\\.+'
-CompactNamespaces: false
-ConstructorInitializerAllOnOneLineOrOnePerLine: true
-ConstructorInitializerIndentWidth: 4
-ContinuationIndentWidth: 4
-Cpp11BracedListStyle: true
-DerivePointerAlignment: true
-DisableFormat: false
-ExperimentalAutoDetectBinPacking: false
-FixNamespaceComments: true
-ForEachMacros:
-  - foreach
-  - Q_FOREACH
-  - BOOST_FOREACH
-IncludeBlocks: Preserve
-# IncludeCategories:
-#   - Regex: '^<pinocchio/fwd\.hpp>'
-#     Priority: 1
-#   - Regex: '^<ext/.*\.h>'
-#     Priority: 3
-#   - Regex: '^<.*\.h>'
-#     Priority: 2
-#   - Regex: "^<.*"
-#     Priority: 3
-#   - Regex: ".*"
-#     Priority: 4
-IncludeIsMainRegex: "([-_](test|unittest))?$"
-IndentCaseLabels: true
-IndentPPDirectives: None
-IndentWidth: 4
-IndentWrappedFunctionNames: false
-JavaScriptQuotes: Leave
-JavaScriptWrapImports: true
-KeepEmptyLinesAtTheStartOfBlocks: false
-MacroBlockBegin: ""
-MacroBlockEnd: ""
-MaxEmptyLinesToKeep: 1
-NamespaceIndentation: None
-ObjCBlockIndentWidth: 2
-ObjCSpaceAfterProperty: false
-ObjCSpaceBeforeProtocolList: true
-PenaltyBreakAssignment: 2
-PenaltyBreakBeforeFirstCallParameter: 1
-PenaltyBreakComment: 300
-PenaltyBreakFirstLessLess: 120
-PenaltyBreakString: 1000
-PenaltyExcessCharacter: 1000000
-PenaltyReturnTypeOnItsOwnLine: 200
-PointerAlignment: Left
-ReflowComments: true
-SortIncludes: false
-SortUsingDeclarations: true
-SpaceAfterCStyleCast: false
-SpaceAfterTemplateKeyword: true
-SpaceBeforeAssignmentOperators: true
-SpaceBeforeParens: ControlStatements
-SpaceInEmptyParentheses: false
-SpacesBeforeTrailingComments: 2
-SpacesInAngles: false
-SpacesInContainerLiterals: true
-SpacesInCStyleCastParentheses: false
-SpacesInParentheses: false
-SpacesInSquareBrackets: false
-Standard: Auto
-TabWidth: 4
-UseTab: Never
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 7ca4c35a861ceac10989f6c0b0c746b6f1888f3e..e2ad0bed4bde3a03cc06886a00cbe5c69986b143 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -31,6 +31,8 @@ wolf_add_gtest(gtest_force_torque_inertial_delta_tools gtest_force_torque_inerti
 # wolf_add_gtest(gtest_processor_inertial_kinematics gtest_processor_inertial_kinematics.cpp)
 # wolf_add_gtest(gtest_processor_force_torque_preint gtest_processor_force_torque_preint.cpp)
 
+wolf_add_gtest(gtest_processor_force_torque_inertial_preint_dynamics gtest_processor_force_torque_inertial_preint_dynamics.cpp)
+
 wolf_add_gtest(gtest_processor_point_feet_nomove gtest_processor_point_feet_nomove.cpp)
 
 wolf_add_gtest(gtest_sensor_force_torque gtest_sensor_force_torque.cpp)
diff --git a/test/gtest_factor_force_torque_inertial_dynamics.cpp b/test/gtest_factor_force_torque_inertial_dynamics.cpp
index af4888344ba6e6ca4312e03475020a226ba4129c..a0a659fa636a0337a570c93f57d819b22f5c9ce5 100644
--- a/test/gtest_factor_force_torque_inertial_dynamics.cpp
+++ b/test/gtest_factor_force_torque_inertial_dynamics.cpp
@@ -29,6 +29,7 @@
 
 #include <core/utils/utils_gtest.h>
 #include <core/utils/logging.h>
+#include <core/utils/params_server.h>
 #include <core/yaml/parser_yaml.h>
 #include <core/state_block/state_block_derived.h>
 #include <core/state_block/factory_state_block.h>
@@ -62,9 +63,6 @@ class Test_FactorForceTorqueInertialDynamics_yaml : public testing::Test
   protected:
     void SetUp() override
     {
-        data     = VectorXd::Zero(12);  // [ a, w, f, t ]
-        data_cov = MatrixXd::Identity(12, 12);
-
         std::string  wolf_root = _WOLF_BODYDYNAMICS_ROOT_DIR;
         ParserYaml   parser    = ParserYaml("problem_force_torque_inertial_dynamics.yaml", wolf_root + "/test/yaml/");
         ParamsServer server    = ParamsServer(parser.getParams());
@@ -73,13 +71,12 @@ class Test_FactorForceTorqueInertialDynamics_yaml : public testing::Test
         S = std::static_pointer_cast<SensorForceTorqueInertial>(P->getHardware()->getSensorList().front());
         p = std::static_pointer_cast<ProcessorForceTorqueInertialPreintDynamics>(S->getProcessorList().front());
 
-        //P->print(4, 1, 1, 1);
-
+        data     = VectorXd::Zero(12);  // [ a, w, f, t ]
+        data_cov = MatrixXd::Identity(12, 12);
         C = std::make_shared<CaptureMotion>("CaptureMotion", 0.0, S, data, data_cov, nullptr);
+        
         C->process();
 
-        P->print(4, 1, 1, 1);
-
         C0 = std::static_pointer_cast<CaptureMotion>(p->getOrigin());
         F0 = C0->getFrame();
 
@@ -91,6 +88,28 @@ class Test_FactorForceTorqueInertialDynamics_yaml : public testing::Test
 
         C1 = std::static_pointer_cast<CaptureMotion>(p->getLast());
         F1 = C1->getFrame();
+
+        F1->link(P);  // by the face
+
+        VectorXd delta_preint(VectorXd::Zero(19));
+        delta_preint.head<3>() = -0.5*gravity();
+        delta_preint.segment<3>(3) = -gravity();
+        delta_preint.segment<3>(6) = -0.5*gravity();
+        delta_preint.segment<3>(9) = -gravity();
+        delta_preint(18) = 1;
+        MatrixXd delta_preint_cov(MatrixXd::Identity(18, 18));
+        VectorXd calib_preint(VectorXd::Zero(13));
+        MatrixXd jacobian_calib(MatrixXd::Zero(18, 13));
+        f1 = FeatureBase::emplace<FeatureMotion>(C1, "FeatureMotion", delta_preint, delta_preint_cov, calib_preint,
+                                                 jacobian_calib);
+
+        c1 = FactorBase::emplace<FactorForceTorqueInertialDynamics>(f1, f1, C0, p, false);
+
+        F1->getStateBlock('P')->setState(Vector3d(0,0,0));
+        F1->getStateBlock('V')->setState(Vector3d(0,0,0));
+        F1->getStateBlock('O')->setState(Vector4d(0,0,0,1));
+        F1->getStateBlock('L')->setState(Vector3d(0,0,0));
+        
     }
 
 };
@@ -153,11 +172,11 @@ class Test_FactorForceTorqueInertialDynamics : public testing::Test
 
         // crear un feature
         VectorXd delta_preint(VectorXd::Zero(19));
-        delta_preint.head<3>() = 0.5*gravity();
-        delta_preint.segment<3>(3) = gravity();
-        delta_preint(15) = 1;
-        delta_preint.segment<3>(6) = 0.5*gravity();
-        delta_preint.segment<3>(9) = gravity();
+        delta_preint.head<3>() = -0.5*gravity();
+        delta_preint.segment<3>(3) = -gravity();
+        delta_preint.segment<3>(6) = -0.5*gravity();
+        delta_preint.segment<3>(9) = -gravity();
+        delta_preint(18) = 1;
         MatrixXd delta_preint_cov(MatrixXd::Identity(18, 18));
         VectorXd calib_preint(VectorXd::Zero(13));
         MatrixXd jacobian_calib(MatrixXd::Zero(18, 13));
@@ -169,87 +188,170 @@ class Test_FactorForceTorqueInertialDynamics : public testing::Test
     }
 };
 
+// TEST(FactorForceTorqueInertialDynamics_yaml, force_registraion)
+// {
+//     FactorySensor::registerCreator("SensorForceTorqueInertial", SensorForceTorqueInertial::create);
+// }
+
+//Test to see if the constructor works (not yaml files)
+TEST_F(Test_FactorForceTorqueInertialDynamics, constructor)
+{
+    ASSERT_EQ(c1->getCapture(), C1);
+    ASSERT_EQ(c1->getCalibPreint().size(), 13);
+}
+
+//Test to see if the constructor works (yaml files)
 TEST_F(Test_FactorForceTorqueInertialDynamics_yaml, constructor)
 {
-    //FactorySensor::registerCreator("SensorForceTorqueInertial", SensorForceTorqueInertial::create);
     ASSERT_EQ(c1->getCapture(), C1);
     ASSERT_EQ(c1->getCalibPreint().size(), 13);
 }
 
-//Test en el que no hi ha moviment
-// TEST_F(Test_FactorForceTorqueInertialDynamics, residual)
-// {
-//     VectorXd              res_exp = VectorXd::Zero(18);
-//     Matrix<double, 18, 1> res;
-//     VectorXd              bias = VectorXd::Zero(6);
-
-//     c1->residual(F0->getStateBlock('P')->getState(),                      // p0
-//                  Quaterniond(F0->getStateBlock('O')->getState().data()),  // q0
-//                  F0->getStateBlock('V')->getState(),                      // v0
-//                  F0->getStateBlock('L')->getState(),                      // L0
-//                  bias,                                                    // I
-//                  F1->getStateBlock('P')->getState(),                      // p1
-//                  Quaterniond(F1->getStateBlock('O')->getState().data()),  // q1
-//                  F1->getStateBlock('V')->getState(),                      // v1
-//                  F1->getStateBlock('L')->getState(),                      // L1
-//                  S->getCom(),                                             // C
-//                  S->getInertia(),                                         // i
-//                  S->getMass(),                                            // m
-//                  res);
-
-//     ASSERT_MATRIX_APPROX(res_exp, res, 1e-8);
-// }
+//Test en el que no hi ha moviment (not yaml files)
+TEST_F(Test_FactorForceTorqueInertialDynamics, residual)
+{
+    VectorXd              res_exp = VectorXd::Zero(18);
+    Matrix<double, 18, 1> res;
+    VectorXd              bias = VectorXd::Zero(6);
+
+    P->print(4,1,1,1);
+
+    c1->residual(F0->getStateBlock('P')->getState(),                      // p0
+                 Quaterniond(F0->getStateBlock('O')->getState().data()),  // q0
+                 F0->getStateBlock('V')->getState(),                      // v0
+                 F0->getStateBlock('L')->getState(),                      // L0
+                 bias,                                                    // I
+                 F1->getStateBlock('P')->getState(),                      // p1
+                 Quaterniond(F1->getStateBlock('O')->getState().data()),  // q1
+                 F1->getStateBlock('V')->getState(),                      // v1
+                 F1->getStateBlock('L')->getState(),                      // L1
+                 S->getCom(),                                             // C
+                 S->getInertia(),                                         // i
+                 S->getMass(),                                            // m
+                 res);
+
+    ASSERT_MATRIX_APPROX(res_exp, res, 1e-8);
+}
 
-//Test en el que s'avança 1m en direcció x
+//Test en el que no hi ha moviment (yaml files)
+TEST_F(Test_FactorForceTorqueInertialDynamics_yaml, residual)
+{
+    VectorXd              res_exp = VectorXd::Zero(18);
+    Matrix<double, 18, 1> res;
+    VectorXd              bias = VectorXd::Zero(6);
+
+    c1->residual(F0->getStateBlock('P')->getState(),                      // p0
+                 Quaterniond(F0->getStateBlock('O')->getState().data()),  // q0
+                 F0->getStateBlock('V')->getState(),                      // v0
+                 F0->getStateBlock('L')->getState(),                      // L0
+                 bias,                                                    // I
+                 F1->getStateBlock('P')->getState(),                      // p1
+                 Quaterniond(F1->getStateBlock('O')->getState().data()),  // q1
+                 F1->getStateBlock('V')->getState(),                      // v1
+                 F1->getStateBlock('L')->getState(),                      // L1
+                 S->getCom(),                                             // C
+                 S->getInertia(),                                         // i
+                 S->getMass(),                                            // m
+                 res);
+
+    ASSERT_MATRIX_APPROX(res_exp, res, 1e-8);
+}
 
-// TEST_F(Test_FactorForceTorqueInertialDynamics_yaml, residual)
-// {
-//     VectorXd              res_exp = VectorXd::Zero(18);
-//     Matrix<double, 18, 1> res;
-//     VectorXd              bias = VectorXd::Zero(6);
-
-//     //provem el moviment de P=(0,0,0) a P=(1,0,0) i v, o i L queden igual
-//     F1->getStateBlock('P')->setState(Vector3d (1,0,0));
-
-//     //Hem de crear un nou feature i un nou factor ja que la delta preint canvia.
-//     VectorXd delta_preint(VectorXd::Zero(19));
-//     delta_preint.head<3>() = 0.5*gravity();
-//     delta_preint(0) = 1;
-//     delta_preint.segment<3>(3) = gravity();
-//     delta_preint(15) = 1;
-//     delta_preint.segment<3>(6) = 0.5*gravity();
-//     delta_preint(6) = 1;
-//     delta_preint.segment<3>(9) = gravity();
-//     MatrixXd delta_preint_cov(MatrixXd::Identity(18, 18));
-//     VectorXd calib_preint(VectorXd::Zero(13));
-//     MatrixXd jacobian_calib(MatrixXd::Zero(18, 13));
-//     FeatureMotionPtr f2 = FeatureBase::emplace<FeatureMotion>(C1, "FeatureMotion", delta_preint, delta_preint_cov, calib_preint,jacobian_calib);
-
-//     FactorForceTorqueInertialDynamicsPtr c2 = FactorBase::emplace<FactorForceTorqueInertialDynamics>(f2, f2, C0, p, false);
-
-
-//     c2->residual(F0->getStateBlock('P')->getState(),                      // p0
-//                  Quaterniond(F0->getStateBlock('O')->getState().data()),  // q0
-//                  F0->getStateBlock('V')->getState(),                      // v0
-//                  F0->getStateBlock('L')->getState(),                      // L0
-//                  bias,                                                    // I
-//                  F1->getStateBlock('P')->getState(),                      // p1
-//                  Quaterniond(F1->getStateBlock('O')->getState().data()),  // q1
-//                  F1->getStateBlock('V')->getState(),                      // v1
-//                  F1->getStateBlock('L')->getState(),                      // L1
-//                  S->getCom(),                                             // C
-//                  S->getInertia(),                                         // i
-//                  S->getMass(),                                            // m
-//                  res);
-
-//     ASSERT_MATRIX_APPROX(res_exp, res, 1e-8);
-// }
+
+//Test en el que s'avança 1m en direcció x (not yaml files) 
+TEST_F(Test_FactorForceTorqueInertialDynamics, residualx)
+{
+    VectorXd              res_exp = VectorXd::Zero(18);
+    Matrix<double, 18, 1> res;
+    VectorXd              bias = VectorXd::Zero(6);
+
+    //provem el moviment de P=(0,0,0) a P=(1,0,0) i v, o i L queden igual
+    F1->getStateBlock('P')->setState(Vector3d (1,0,0));
+
+    //Hem de crear un nou feature i un nou factor ja que la delta preint canvia.
+    VectorXd delta_preint(VectorXd::Zero(19));
+    delta_preint.head<3>() = -0.5*gravity();
+    delta_preint(0) = 1;
+    delta_preint.segment<3>(3) = -gravity();
+    delta_preint.segment<3>(6) = -0.5*gravity();
+    delta_preint(6) = 1;
+    delta_preint.segment<3>(9) = -gravity();
+    delta_preint(18) = 1;
+    MatrixXd delta_preint_cov(MatrixXd::Identity(18, 18));
+    VectorXd calib_preint(VectorXd::Zero(13));
+    MatrixXd jacobian_calib(MatrixXd::Zero(18, 13));
+    FeatureMotionPtr f2 = FeatureBase::emplace<FeatureMotion>(C1, "FeatureMotion", delta_preint, delta_preint_cov, calib_preint,jacobian_calib);
+
+    FactorForceTorqueInertialDynamicsPtr c2 = FactorBase::emplace<FactorForceTorqueInertialDynamics>(f2, f2, C0, p, false);
+
+
+    c2->residual(F0->getStateBlock('P')->getState(),                      // p0
+                 Quaterniond(F0->getStateBlock('O')->getState().data()),  // q0
+                 F0->getStateBlock('V')->getState(),                      // v0
+                 F0->getStateBlock('L')->getState(),                      // L0
+                 bias,                                                    // I
+                 F1->getStateBlock('P')->getState(),                      // p1
+                 Quaterniond(F1->getStateBlock('O')->getState().data()),  // q1
+                 F1->getStateBlock('V')->getState(),                      // v1
+                 F1->getStateBlock('L')->getState(),                      // L1
+                 S->getCom(),                                             // C
+                 S->getInertia(),                                         // i
+                 S->getMass(),                                            // m
+                 res);
+
+    ASSERT_MATRIX_APPROX(res_exp, res, 1e-8);
+}
+
+//Test en el que s'avança 1m en direcció x (fitxers yaml) 
+
+TEST_F(Test_FactorForceTorqueInertialDynamics_yaml, residualx)
+{
+    VectorXd              res_exp = VectorXd::Zero(18);
+    Matrix<double, 18, 1> res;
+    VectorXd              bias = VectorXd::Zero(6);
+
+    //provem el moviment de P=(0,0,0) a P=(1,0,0) i v, o i L queden igual
+    F1->getStateBlock('P')->setState(Vector3d (1,0,0));
+
+    //Hem de crear un nou feature i un nou factor ja que la delta preint canvia.
+    VectorXd delta_preint(VectorXd::Zero(19));
+    delta_preint.head<3>() = -0.5*gravity();
+    delta_preint(0) = 1;
+    delta_preint.segment<3>(3) = -gravity();
+    delta_preint.segment<3>(6) = -0.5*gravity();
+    delta_preint(6) = 1;
+    delta_preint.segment<3>(9) = -gravity();
+    delta_preint(18) = 1;
+    MatrixXd delta_preint_cov(MatrixXd::Identity(18, 18));
+    VectorXd calib_preint(VectorXd::Zero(13));
+    MatrixXd jacobian_calib(MatrixXd::Zero(18, 13));
+    FeatureMotionPtr f2 = FeatureBase::emplace<FeatureMotion>(C1, "FeatureMotion", delta_preint, delta_preint_cov, calib_preint,jacobian_calib);
+
+    FactorForceTorqueInertialDynamicsPtr c2 = FactorBase::emplace<FactorForceTorqueInertialDynamics>(f2, f2, C0, p, false);
+
+
+    c2->residual(F0->getStateBlock('P')->getState(),                      // p0
+                 Quaterniond(F0->getStateBlock('O')->getState().data()),  // q0
+                 F0->getStateBlock('V')->getState(),                      // v0
+                 F0->getStateBlock('L')->getState(),                      // L0
+                 bias,                                                    // I
+                 F1->getStateBlock('P')->getState(),                      // p1
+                 Quaterniond(F1->getStateBlock('O')->getState().data()),  // q1
+                 F1->getStateBlock('V')->getState(),                      // v1
+                 F1->getStateBlock('L')->getState(),                      // L1
+                 S->getCom(),                                             // C
+                 S->getInertia(),                                         // i
+                 S->getMass(),                                            // m
+                 res);
+
+    ASSERT_MATRIX_APPROX(res_exp, res, 1e-8);
+}
 
 
 
 int main(int argc, char **argv)
 {
     testing::InitGoogleTest(&argc, argv);
-
+    //::testing::GTEST_FLAG(filter) = "Test_FactorForceTorqueInertialDynamics_yaml.residual";
     return RUN_ALL_TESTS();
 }
\ No newline at end of file
diff --git a/test/yaml/processor_force_torque_inertial_preint_dynamics.yaml b/test/yaml/processor_force_torque_inertial_preint_dynamics.yaml
index beafed9ea44a627f2c5b2ea30490bfd11db7868b..a7160e79986f6252a1b8355adad7d8853fecb9c7 100644
--- a/test/yaml/processor_force_torque_inertial_preint_dynamics.yaml
+++ b/test/yaml/processor_force_torque_inertial_preint_dynamics.yaml
@@ -6,8 +6,8 @@
     n_propellers: 3
     keyframe_vote:
       voting_active:    false
-      max_time_span:    1
-      max_buff_length:  5   # motion deltas
-      dist_traveled:    1   # meters
-      angle_turned:     1   # radians (1 rad approx 57 deg, approx 60 deg)
+      max_time_span:    999
+      max_buff_length:  999   # motion deltas
+      dist_traveled:    999   # meters
+      angle_turned:     999   # radians (1 rad approx 57 deg, approx 60 deg)