diff --git a/test/dummy/processor_tracker_feature_dummy.h b/test/dummy/processor_tracker_feature_dummy.h
index 8a1c6e72cb733460655c31ee9f1705024d79c14a..3adda695e214671e4e8f1e1c6193ff48c642b516 100644
--- a/test/dummy/processor_tracker_feature_dummy.h
+++ b/test/dummy/processor_tracker_feature_dummy.h
@@ -32,6 +32,7 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature
 {
   protected:
     unsigned int n_tracks_lost_;  ///< number of tracks lost each time track is called (the first ones)
+    unsigned int dim_;            ///< dimension of the problem
 
   public:
     ProcessorTrackerFeatureDummy(const YAML::Node& _params);
@@ -40,7 +41,7 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature
     // Factory method for high level API
     WOLF_PROCESSOR_CREATE(ProcessorTrackerFeatureDummy);
 
-    void configure(SensorBasePtr _sensor) override{};
+    void configure(SensorBasePtr _sensor) override {};
 
     /** \brief Track provided features in \b _capture
      * \param _features_in input list of features in \b last to track
@@ -166,8 +167,12 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature
 };
 
 inline ProcessorTrackerFeatureDummy::ProcessorTrackerFeatureDummy(const YAML::Node& _params)
-    : ProcessorTrackerFeature("ProcessorTrackerFeatureDummy", {{'P', "StatePoint2d"}, {'O', "StateAngle"}}, _params),
-      n_tracks_lost_(_params["n_tracks_lost"].as<unsigned int>())
+    : ProcessorTrackerFeature("ProcessorTrackerFeatureDummy",
+                              {{'P', _params["dimension"].as<unsigned int>() == 2 ? "StatePoint2d" : "StatePoint3d"},
+                               {'O', _params["dimension"].as<unsigned int>() == 2 ? "StateAngle" : "StateQuaternion"}},
+                              _params),
+      n_tracks_lost_(_params["n_tracks_lost"].as<unsigned int>()),
+      dim_(_params["dimension"].as<unsigned int>())
 {
     //
 }
diff --git a/test/dummy/schema/ProcessorTrackerFeatureDummy.schema b/test/dummy/schema/ProcessorTrackerFeatureDummy.schema
index 9d0cc884ff0cc94e76adee4ea6bbee56718056e2..66510885bf4ff646bea2364b1755cc8edccc81b0 100644
--- a/test/dummy/schema/ProcessorTrackerFeatureDummy.schema
+++ b/test/dummy/schema/ProcessorTrackerFeatureDummy.schema
@@ -2,4 +2,9 @@ follow: ProcessorTrackerFeature.schema
 n_tracks_lost:
   _mandatory: true
   _type: unsigned int
-  _doc: dummy parameter.
\ No newline at end of file
+  _doc: dummy parameter.
+dimension:
+  _mandatory: true
+  _type: unsigned int
+  _doc: dimension of the problem representation.
+  _options: [2, 3]
\ No newline at end of file
diff --git a/test/gtest_problem.cpp b/test/gtest_problem.cpp
index 407ed00f982bc232a3a8570834aa31ed8f5cc08a..8e728971610bac32e950bf4b2614994ad1d9501c 100644
--- a/test/gtest_problem.cpp
+++ b/test/gtest_problem.cpp
@@ -69,7 +69,7 @@ TEST(Problem, Installers)
     SensorBasePtr S = P->installSensor(wolf_dir + "/test/yaml/sensor_odom_3d.yaml", {wolf_dir});
 
     // install processor tracker (dummy installation under an Odometry sensor -- it's OK for this test)
-    auto pt = P->installProcessor(S, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir});
+    auto pt = P->installProcessor(S, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_3d.yaml", {wolf_dir});
 
     // check motion processor IS NOT set
     ASSERT_TRUE(P->getMotionProviderMap().empty());
@@ -252,7 +252,7 @@ TEST(Problem, StateBlocks)
     SensorBasePtr Sm = P->installSensor(wolf_dir + "/test/yaml/sensor_odom_3d.yaml", {wolf_dir});
     ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd)2);
 
-    auto pt = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir});
+    auto pt = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_3d.yaml", {wolf_dir});
     auto pm = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_odom_3d.yaml", {wolf_dir});
 
     // 2 state blocks, estimated
@@ -310,7 +310,7 @@ TEST(Problem, Covariances)
     SensorBasePtr Sm = P->installSensor(wolf_dir + "/test/yaml/sensor_odom_3d.yaml", {wolf_dir});
     SensorBasePtr St = P->installSensor(wolf_dir + "/test/yaml/sensor_odom_3d_other.yaml", {wolf_dir});
 
-    auto pt = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir});
+    auto pt = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_3d.yaml", {wolf_dir});
     auto pm = P->installProcessor(St, wolf_dir + "/test/yaml/processor_odom_3d.yaml", {wolf_dir});
 
     // 4 state blocks, estimated
@@ -758,6 +758,6 @@ TEST(Problem, transform)
 int main(int argc, char **argv)
 {
     testing::InitGoogleTest(&argc, argv);
-    // testing::GTEST_FLAG(filter) = "Problem.autoSetupNoMap";
+    // testing::GTEST_FLAG(filter) = "Problem.Installers";
     return RUN_ALL_TESTS();
 }
diff --git a/test/gtest_processor_base.cpp b/test/gtest_processor_base.cpp
index 94786ce69179e1c459ba664047353229aec565b5..867f3af2f67fba0dc72351029d5c86666634d956 100644
--- a/test/gtest_processor_base.cpp
+++ b/test/gtest_processor_base.cpp
@@ -47,7 +47,7 @@ TEST(ProcessorBase, MotionProvider)
     // Install tracker (sensor and processor)
     auto sens_trk = problem->installSensor(wolf_dir + "/test/yaml/sensor_dummy_2d.yaml", {wolf_dir});
     auto proc_trk =
-        problem->installProcessor(sens_trk, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir});
+        problem->installProcessor(sens_trk, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_2d.yaml", {wolf_dir});
 
     // Install odometer (sensor and processor)
     auto sens_odo = problem->installSensor(wolf_dir + "/test/yaml/sensor_odom_2d.yaml", {wolf_dir});
@@ -67,7 +67,7 @@ TEST(ProcessorBase, KeyFrameCallback)
     // Install tracker (sensor and processor)
     auto sens_trk = problem->installSensor(wolf_dir + "/test/yaml/sensor_dummy_2d.yaml", {wolf_dir});
     auto proc_trk =
-        problem->installProcessor(sens_trk, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir});
+        problem->installProcessor(sens_trk, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_2d.yaml", {wolf_dir});
     proc_trk->setVotingActive(false);
 
     // Install odometer (sensor and processor)
diff --git a/test/gtest_processor_tracker_feature_dummy.cpp b/test/gtest_processor_tracker_feature_dummy.cpp
index bf68d7ffaf11352a7899482a7a6ca2e622732557..c378efea8c132f08768df6501a07b2879d1baa0c 100644
--- a/test/gtest_processor_tracker_feature_dummy.cpp
+++ b/test/gtest_processor_tracker_feature_dummy.cpp
@@ -48,7 +48,7 @@ class ProcessorTrackerFeatureDummyTest : public testing::Test
 
         // Install processor
         processor = std::static_pointer_cast<ProcessorTrackerFeatureDummy>(problem->installProcessor(
-            sensor, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir}));
+            sensor, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_2d.yaml", {wolf_dir}));
     }
 };
 
diff --git a/test/yaml/processor_tracker_feature_dummy.yaml b/test/yaml/processor_tracker_feature_dummy_2d.yaml
similarity index 95%
rename from test/yaml/processor_tracker_feature_dummy.yaml
rename to test/yaml/processor_tracker_feature_dummy_2d.yaml
index 4139a42cd48cac30a4c8fd981a09ca925cb3508f..0ed4af7d16e1be033a0afe3c479b83b4f4a78490 100644
--- a/test/yaml/processor_tracker_feature_dummy.yaml
+++ b/test/yaml/processor_tracker_feature_dummy_2d.yaml
@@ -3,6 +3,7 @@ type: ProcessorTrackerFeatureDummy
 plugin: core
 sensor_name: whatever
 
+dimension: 2
 time_tolerance: 0.25
 keyframe_vote:
   voting_active: true
diff --git a/test/yaml/processor_tracker_feature_dummy_3d.yaml b/test/yaml/processor_tracker_feature_dummy_3d.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2cbdfdee3d1c613ce1441c3f020c947ec7bb4fcd
--- /dev/null
+++ b/test/yaml/processor_tracker_feature_dummy_3d.yaml
@@ -0,0 +1,13 @@
+name: cool dummy processor
+type: ProcessorTrackerFeatureDummy
+plugin: core
+sensor_name: whatever
+
+dimension: 3
+time_tolerance: 0.25
+keyframe_vote:
+  voting_active: true
+  min_features_for_keyframe: 7
+apply_loss_function: false
+max_new_features: 10
+n_tracks_lost: 1
\ No newline at end of file
diff --git a/test/yaml/processor_tracker_two_processors_1.yaml b/test/yaml/processor_tracker_two_processors_1.yaml
index 20b3c02571eefd1032d0d4e86019f4150d3927eb..0620d88d7729e7d6eee98e2b6f8f26b4cdd0e5f9 100644
--- a/test/yaml/processor_tracker_two_processors_1.yaml
+++ b/test/yaml/processor_tracker_two_processors_1.yaml
@@ -3,6 +3,7 @@ type: ProcessorTrackerFeatureDummy
 plugin: core
 sensor_name: whatever
 
+dimension: 2
 time_tolerance: 0.5
 keyframe_vote:
   voting_active: true
diff --git a/test/yaml/processor_tracker_two_processors_2.yaml b/test/yaml/processor_tracker_two_processors_2.yaml
index b2ad07b9cd52362a0010b04135498f96ea21733d..4f1a075084346ce0355dbe7b9483cfb72aa1fb33 100644
--- a/test/yaml/processor_tracker_two_processors_2.yaml
+++ b/test/yaml/processor_tracker_two_processors_2.yaml
@@ -3,6 +3,7 @@ type: ProcessorTrackerFeatureDummy
 plugin: core
 sensor_name: whatever
 
+dimension: 2
 time_tolerance: 0.5
 keyframe_vote:
   voting_active: true