From 91bb6dedfb65b12b7e35ac3fbf88a8accc048b6d Mon Sep 17 00:00:00 2001
From: joanvallve <jvallve@iri.upc.edu>
Date: Wed, 30 Apr 2025 10:44:16 +0200
Subject: [PATCH] fixed tests

---
 test/dummy/processor_tracker_feature_dummy.h        | 11 ++++++++---
 .../schema/ProcessorTrackerFeatureDummy.schema      |  7 ++++++-
 test/gtest_problem.cpp                              |  8 ++++----
 test/gtest_processor_base.cpp                       |  4 ++--
 test/gtest_processor_tracker_feature_dummy.cpp      |  2 +-
 ...yaml => processor_tracker_feature_dummy_2d.yaml} |  1 +
 test/yaml/processor_tracker_feature_dummy_3d.yaml   | 13 +++++++++++++
 test/yaml/processor_tracker_two_processors_1.yaml   |  1 +
 test/yaml/processor_tracker_two_processors_2.yaml   |  1 +
 9 files changed, 37 insertions(+), 11 deletions(-)
 rename test/yaml/{processor_tracker_feature_dummy.yaml => processor_tracker_feature_dummy_2d.yaml} (95%)
 create mode 100644 test/yaml/processor_tracker_feature_dummy_3d.yaml

diff --git a/test/dummy/processor_tracker_feature_dummy.h b/test/dummy/processor_tracker_feature_dummy.h
index 8a1c6e72c..3adda695e 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 9d0cc884f..66510885b 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 407ed00f9..8e7289716 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 94786ce69..867f3af2f 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 bf68d7ffa..c378efea8 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 4139a42cd..0ed4af7d1 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 000000000..2cbdfdee3
--- /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 20b3c0257..0620d88d7 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 b2ad07b9c..4f1a07508 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
-- 
GitLab