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