28 #include <gtest/gtest.h>
44 YAML::Node plugin_config =
47 const YAML::Node& plugin_info = plugin_config[
"contact_manager_plugins"];
48 const YAML::Node& search_paths = plugin_info[
"search_paths"];
49 const YAML::Node& search_libraries = plugin_info[
"search_libraries"];
50 const YAML::Node& discrete_plugins = plugin_info[
"discrete_plugins"][
"plugins"];
51 const YAML::Node& continuous_plugins = plugin_info[
"continuous_plugins"][
"plugins"];
57 for (
auto it = search_paths.begin(); it != search_paths.end(); ++it)
59 EXPECT_TRUE(sp.find(it->as<std::string>()) != sp.end());
67 for (
auto it = search_libraries.begin(); it != search_libraries.end(); ++it)
69 EXPECT_TRUE(sl.find(it->as<std::string>()) != sl.end());
74 for (
auto cm_it = discrete_plugins.begin(); cm_it != discrete_plugins.end(); ++cm_it)
76 auto name = cm_it->first.as<std::string>();
83 for (
auto cm_it = continuous_plugins.begin(); cm_it != continuous_plugins.end(); ++cm_it)
85 auto name = cm_it->first.as<std::string>();
105 plugin_info.
class_name =
"DoesNotExistFactory";
111 plugin_info.
class_name =
"DoesNotExistFactory";
117 TEST(TesseractContactManagersFactoryUnit, LoadAndExportPluginTest)
119 std::filesystem::path file_path(__FILE__);
120 std::filesystem::path config_path = file_path.parent_path() /
"contact_manager_plugins.yaml";
134 TEST(TesseractContactManagersFactoryUnit, LoadStringPluginTest)
136 std::string config = R
"(contact_manager_plugins:
140 - tesseract_collision_bullet_factories
141 - tesseract_collision_fcl_factories
143 default: BulletDiscreteBVHManager
145 BulletDiscreteBVHManager:
146 class: BulletDiscreteBVHManagerFactory
147 BulletDiscreteSimpleManager:
148 class: BulletDiscreteSimpleManagerFactory
149 FCLDiscreteBVHManager:
150 class: FCLDiscreteBVHManagerFactory
152 default: BulletCastBVHManager
154 BulletCastBVHManager:
155 class: BulletCastBVHManagerFactory
156 BulletCastSimpleManager:
157 class: BulletCastSimpleManagerFactory)";
163 const YAML::Node& plugin_info = plugin_config[
"contact_manager_plugins"];
164 const YAML::Node& search_paths = plugin_info[
"search_paths"];
165 const YAML::Node& search_libraries = plugin_info[
"search_libraries"];
166 const YAML::Node& discrete_plugins = plugin_info[
"discrete_plugins"][
"plugins"];
167 const YAML::Node& continuous_plugins = plugin_info[
"continuous_plugins"][
"plugins"];
173 for (
auto it = search_paths.begin(); it != search_paths.end(); ++it)
175 EXPECT_TRUE(sp.find(it->as<std::string>()) != sp.end());
183 for (
auto it = search_libraries.begin(); it != search_libraries.end(); ++it)
185 EXPECT_TRUE(sl.find(it->as<std::string>()) != sl.end());
190 for (
auto cm_it = discrete_plugins.begin(); cm_it != discrete_plugins.end(); ++cm_it)
192 auto name = cm_it->first.as<std::string>();
199 for (
auto cm_it = continuous_plugins.begin(); cm_it != continuous_plugins.end(); ++cm_it)
201 auto name = cm_it->first.as<std::string>();
208 TEST(TesseractContactManagersFactoryUnit, PluginFactorAPIUnit)
241 EXPECT_TRUE(map.find(
"TestDiscreteManager") != map.end());
245 pi2.
class_name =
"Test2DiscreteManagerFactory";
251 EXPECT_TRUE(map.find(
"Test2DiscreteManager") != map.end());
258 EXPECT_TRUE(map.find(
"Test2DiscreteManager") != map.end());
273 pi.
class_name =
"TestContinuousManagerFactory";
279 EXPECT_TRUE(map.find(
"TestContinuousManager") != map.end());
283 pi2.
class_name =
"Test2ContinuousManagerFactory";
289 EXPECT_TRUE(map.find(
"Test2ContinuousManager") != map.end());
297 EXPECT_TRUE(map.find(
"Test2ContinuousManager") != map.end());
308 TEST(TesseractContactManagersFactoryUnit, LoadOnlyDiscretePluginTest)
310 std::string config = R
"(contact_manager_plugins:
314 - tesseract_collision_bullet_factories
315 - tesseract_collision_fcl_factories
317 default: BulletDiscreteBVHManager
319 BulletDiscreteBVHManager:
320 class: BulletDiscreteBVHManagerFactory
321 BulletDiscreteSimpleManager:
322 class: BulletDiscreteSimpleManagerFactory
323 FCLDiscreteBVHManager:
324 class: FCLDiscreteBVHManagerFactory)";
330 const YAML::Node& plugin_info = plugin_config[
"contact_manager_plugins"];
331 const YAML::Node& search_paths = plugin_info[
"search_paths"];
332 const YAML::Node& search_libraries = plugin_info[
"search_libraries"];
333 const YAML::Node& discrete_plugins = plugin_info[
"discrete_plugins"][
"plugins"];
339 for (
auto it = search_paths.begin(); it != search_paths.end(); ++it)
341 EXPECT_TRUE(sp.find(it->as<std::string>()) != sp.end());
349 for (
auto it = search_libraries.begin(); it != search_libraries.end(); ++it)
351 EXPECT_TRUE(sl.find(it->as<std::string>()) != sl.end());
356 for (
auto cm_it = discrete_plugins.begin(); cm_it != discrete_plugins.end(); ++cm_it)
358 auto name = cm_it->first.as<std::string>();
365 TEST(TesseractContactManagersFactoryUnit, LoadOnlyContinuousPluginTest)
367 std::string config = R
"(contact_manager_plugins:
371 - tesseract_collision_bullet_factories
372 - tesseract_collision_fcl_factories
374 default: BulletCastBVHManager
376 BulletCastBVHManager:
377 class: BulletCastBVHManagerFactory
378 BulletCastSimpleManager:
379 class: BulletCastSimpleManagerFactory)";
385 const YAML::Node& plugin_info = plugin_config[
"contact_manager_plugins"];
386 const YAML::Node& search_paths = plugin_info[
"search_paths"];
387 const YAML::Node& search_libraries = plugin_info[
"search_libraries"];
388 const YAML::Node& continuous_plugins = plugin_info[
"continuous_plugins"][
"plugins"];
394 for (
auto it = search_paths.begin(); it != search_paths.end(); ++it)
396 EXPECT_TRUE(sp.find(it->as<std::string>()) != sp.end());
404 for (
auto it = search_libraries.begin(); it != search_libraries.end(); ++it)
406 EXPECT_TRUE(sl.find(it->as<std::string>()) != sl.end());
411 for (
auto cm_it = continuous_plugins.begin(); cm_it != continuous_plugins.end(); ++cm_it)
413 auto name = cm_it->first.as<std::string>();
420 int main(
int argc,
char** argv)
422 testing::InitGoogleTest(&argc, argv);
424 return RUN_ALL_TESTS();