diff --git a/test/gtest_processor_tracker_landmark_dummy.cpp b/test/gtest_processor_tracker_landmark_dummy.cpp
index 4f9128c6f5f9a8d4b3b50fa8d41e3bb5f1f54c8c..870963ae2be05f2792df96dbb5fc8fa36c232b24 100644
--- a/test/gtest_processor_tracker_landmark_dummy.cpp
+++ b/test/gtest_processor_tracker_landmark_dummy.cpp
@@ -62,6 +62,27 @@ class ProcessorTrackerLandmarkDummyDummy : public ProcessorTrackerLandmarkDummy
         };
 };
 
+bool isFeatureLinked(FeatureBasePtr ftr, CaptureBasePtr cap)
+{
+    return ftr->getCapture() == cap &&
+           std::find(cap->getFeatureList().begin(), cap->getFeatureList().end(), ftr) != cap->getFeatureList().end();
+
+}
+
+bool isFactorLinked(FactorBasePtr fac, FeatureBasePtr ftr)
+{
+    return fac->getFeature() == ftr &&
+           std::find(ftr->getFactorList().begin(), ftr->getFactorList().end(), fac) != ftr->getFactorList().end();
+
+}
+
+bool isLandmarkLinked(LandmarkBasePtr lmk, MapBasePtr map)
+{
+    return lmk->getMap() == map &&
+           std::find(map->getLandmarkList().begin(), map->getLandmarkList().end(), lmk) != map->getLandmarkList().end();
+
+}
+
 // Use the following in case you want to initialize tests with predefines variables or methods.
 class ProcessorTrackerLandmarkDummyTest : public testing::Test
 {
@@ -93,93 +114,103 @@ class ProcessorTrackerLandmarkDummyTest : public testing::Test
         }
 };
 
-//TEST_F(ProcessorTrackerLandmarkDummyTest, installProcessor)
-//{
-//    ASSERT_EQ(processor->getProblem(), problem);
-//    ASSERT_TRUE(problem->check(0));
-//}
-//
-//TEST_F(ProcessorTrackerLandmarkDummyTest, detectNewFeatures)
-//{
-//    // Put a capture on last_ptr_
-//    CaptureBasePtr last_cap = std::make_shared<CaptureVoid>(0, sensor);
-//    processor->setLast(last_cap);
-//
-//    FeatureBasePtrList feat_list;
-//
-//    // demo callDetectNewFeatures
-//    unsigned int n_feat = processor->callDetectNewFeatures(params->max_new_features, feat_list);
-//    ASSERT_EQ(n_feat, feat_list.size()); // detected 10 features
-//    ASSERT_EQ(n_feat, params->max_new_features); // detected 10 features
-//}
-//
-//TEST_F(ProcessorTrackerLandmarkDummyTest, createLandmark)
-//{
-//    // Put a capture on last_ptr_
-//    CaptureBasePtr last_cap = std::make_shared<CaptureVoid>(0, sensor);
-//    processor->setLast(last_cap);
-//
-//    FeatureBasePtrList feat_list;
-//
-//    // demo callDetectNewFeatures
-//    unsigned int n_feat = processor->callDetectNewFeatures(params->max_new_features, feat_list);
-//    ASSERT_EQ(n_feat, feat_list.size()); // detected 10 features
-//    ASSERT_EQ(n_feat, params->max_new_features); // detected 10 features
-//
-//    for (auto ftr : feat_list)
-//    {
-//        auto lmk = processor->callEmplaceLandmark(ftr);
-//        lmk->link(problem->getMap());
-//    }
-//    ASSERT_EQ(problem->getMap()->getLandmarkList().size(),n_feat); // created 10 landmarks
-//}
-//
-//TEST_F(ProcessorTrackerLandmarkDummyTest, createNewLandmarks)
-//{
-//    // Put a capture on last_ptr_
-//    CaptureBasePtr last_cap = std::make_shared<CaptureVoid>(0, sensor);
-//    processor->setLast(last_cap);
-//
-//    FeatureBasePtrList feat_list;
-//
-//    // test detectNewFeatures
-//    unsigned int n_feat = processor->callDetectNewFeatures(params->max_new_features, feat_list);
-//    ASSERT_EQ(n_feat, feat_list.size()); // detected 10 features
-//    ASSERT_EQ(n_feat, params->max_new_features); // detected 10 features
-//
-//    // test createNewLandmarks
-//    processor->setNewFeaturesLast(feat_list);
-//    processor->callEmplaceNewLandmarks();
-//    ASSERT_EQ(processor->getNewLandmarks().size(),n_feat); // created 10 landmarks
-//}
-//
-//TEST_F(ProcessorTrackerLandmarkDummyTest, findLandmarks)
-//{
-//    // Put a capture on last_ptr_
-//    CaptureBasePtr last_cap = std::make_shared<CaptureVoid>(0, sensor);
-//    processor->setLast(last_cap);
-//
-//    FeatureBasePtrList feat_list;
-//
-//    // test detectNewFeatures
-//    unsigned int n_feat = processor->callDetectNewFeatures(params->max_new_features, feat_list);
-//    ASSERT_EQ(n_feat, feat_list.size()); // detected 10 features
-//    ASSERT_EQ(n_feat, params->max_new_features); // detected 10 features
-//
-//    // test createNewLandmarks
-//    processor->setNewFeaturesLast(feat_list);
-//    processor->callEmplaceNewLandmarks();
-//    LandmarkBasePtrList new_landmarks = processor->getNewLandmarks();
-//    ASSERT_EQ(new_landmarks.size(),n_feat); // created 10 landmarks
-//
-//    //test findLandmarks
-//    LandmarkMatchMap feature_landmark_correspondences;
-//    FeatureBasePtrList feat_found;
-//    processor->callFindLandmarks(new_landmarks, feat_found, feature_landmark_correspondences);
-//    ASSERT_EQ(feature_landmark_correspondences.size(), feat_found.size());
-//    ASSERT_EQ(feat_list.size(), feat_found.size()+1); // one of each 10 tracks is lost
-//}
-//
+TEST_F(ProcessorTrackerLandmarkDummyTest, installProcessor)
+{
+    ASSERT_EQ(processor->getProblem(), problem);
+    ASSERT_TRUE(problem->check(0));
+}
+
+TEST_F(ProcessorTrackerLandmarkDummyTest, detectNewFeatures)
+{
+    // Put a capture on last_ptr_
+    CaptureBasePtr last_cap = std::make_shared<CaptureVoid>(0, sensor);
+    processor->setLast(last_cap);
+
+    FeatureBasePtrList feat_list;
+
+    // demo callDetectNewFeatures
+    unsigned int n_feat = processor->callDetectNewFeatures(params->max_new_features, last_cap, feat_list);
+    ASSERT_EQ(n_feat, feat_list.size()); // detected 10 features
+    ASSERT_EQ(n_feat, params->max_new_features); // detected 10 features
+
+    // check the features are emplaced
+    ASSERT_EQ(n_feat, last_cap->getFeatureList().size());
+    for (auto feat : feat_list)
+        ASSERT_TRUE(isFeatureLinked(feat, last_cap));
+}
+
+TEST_F(ProcessorTrackerLandmarkDummyTest, createLandmark)
+{
+    // Put a capture on last_ptr_
+    CaptureBasePtr last_cap = std::make_shared<CaptureVoid>(0, sensor);
+    processor->setLast(last_cap);
+
+    FeatureBasePtrList feat_list;
+
+    // demo callDetectNewFeatures
+    unsigned int n_feat = processor->callDetectNewFeatures(params->max_new_features, last_cap, feat_list);
+
+    for (auto ftr : feat_list)
+    {
+        auto lmk = processor->callEmplaceLandmark(ftr);
+        // check that it is correctly emplaced
+        ASSERT_TRUE(isLandmarkLinked(lmk,problem->getMap()));
+    }
+    ASSERT_EQ(problem->getMap()->getLandmarkList().size(),n_feat); // emplaced 10 landmarks
+}
+
+TEST_F(ProcessorTrackerLandmarkDummyTest, createNewLandmarks)
+{
+    // Put a capture on last_ptr_
+    CaptureBasePtr last_cap = std::make_shared<CaptureVoid>(0, sensor);
+    processor->setLast(last_cap);
+
+    FeatureBasePtrList feat_list;
+
+    // test detectNewFeatures
+    unsigned int n_feat = processor->callDetectNewFeatures(params->max_new_features, last_cap, feat_list);
+
+    // test createNewLandmarks
+    processor->setNewFeaturesLast(feat_list);
+    processor->callEmplaceNewLandmarks();
+    ASSERT_EQ(processor->getNewLandmarks().size(),n_feat); // emplaced 10 landmarks
+
+    // check that it is correctly emplaced
+    for (auto lmk : processor->getNewLandmarks())
+        ASSERT_TRUE(isLandmarkLinked(lmk,problem->getMap()));
+}
+
+TEST_F(ProcessorTrackerLandmarkDummyTest, findLandmarks)
+{
+    // Put a capture on last_ptr_
+    CaptureBasePtr last_cap = std::make_shared<CaptureVoid>(0, sensor);
+    processor->setLast(last_cap);
+
+    FeatureBasePtrList feat_list;
+
+    // test detectNewFeatures
+    processor->callDetectNewFeatures(params->max_new_features, last_cap, feat_list);
+
+    // test createNewLandmarks
+    processor->setNewFeaturesLast(feat_list);
+    processor->callEmplaceNewLandmarks();
+    LandmarkBasePtrList new_landmarks = processor->getNewLandmarks();
+
+    //test findLandmarks
+    LandmarkMatchMap feature_landmark_correspondences;
+    FeatureBasePtrList feat_found;
+
+    CaptureBasePtr inc_cap = std::make_shared<CaptureVoid>(0, sensor);
+    processor->setInc(inc_cap);
+
+    processor->callFindLandmarks(new_landmarks, inc_cap, feat_found, feature_landmark_correspondences);
+    ASSERT_EQ(feature_landmark_correspondences.size(), feat_found.size());
+    ASSERT_EQ(feat_list.size(), feat_found.size()+1); // one of each 10 tracks is lost
+
+    for (auto feat : feat_found)
+        ASSERT_TRUE(isFeatureLinked(feat, inc_cap));
+}
+
 //TEST_F(ProcessorTrackerLandmarkDummyTest, processNew)
 //{
 //    // Put a capture on last_ptr_