tesseract_urdf_cone_unit.cpp
Go to the documentation of this file.
3 #include <gtest/gtest.h>
4 #include <Eigen/Geometry>
6 
7 #include <tesseract_urdf/cone.h>
10 
11 TEST(TesseractURDFUnit, parse_cone) // NOLINT
12 {
13  {
14  std::string str = R"(<tesseract:cone radius="1" length="2" extra="0 0 0"/>)";
16  EXPECT_TRUE(runTest<tesseract_geometry::Cone::Ptr>(
18  EXPECT_NEAR(geom->getRadius(), 1, 1e-8);
19  EXPECT_NEAR(geom->getLength(), 2, 1e-8);
20  }
21 
22  { // https://github.com/ros-industrial-consortium/tesseract_ros/issues/67
23  std::string str = R"(<tesseract:cone radius="0.25" length="0.5" extra="0 0 0"/>)";
25  EXPECT_TRUE(runTest<tesseract_geometry::Cone::Ptr>(
27  EXPECT_NEAR(geom->getRadius(), 0.25, 1e-8);
28  EXPECT_NEAR(geom->getLength(), 0.5, 1e-8);
29  }
30 
31  {
32  std::string str = R"(<tesseract:cone radius="-1" length="2" extra="0 0 0"/>)";
34  EXPECT_FALSE(runTest<tesseract_geometry::Cone::Ptr>(
36  }
37 
38  {
39  std::string str = R"(<tesseract:cone radius="1" length="-2" extra="0 0 0"/>)";
41  EXPECT_FALSE(runTest<tesseract_geometry::Cone::Ptr>(
43  }
44 
45  {
46  std::string str = R"(<tesseract:cone radius="a" length="2"/>)";
48  EXPECT_FALSE(runTest<tesseract_geometry::Cone::Ptr>(
50  }
51 
52  {
53  std::string str = R"(<tesseract:cone radius="1" length="a"/>)";
55  EXPECT_FALSE(runTest<tesseract_geometry::Cone::Ptr>(
57  }
58 
59  // TODO: I would expect this to fail but tinyxml2 still parses it so need to create an issue.
60  // {
61  // std::string str = R"(<tesseract:cone radius="1 2" length="2 3"/>)";
62  // tesseract_geometry::Cone::Ptr geom;
63  // auto status = runTest<tesseract_geometry::Cone::Ptr>(geom, str, tesseract_urdf::CONE_ELEMENT_NAME.data());
64  // EXPECT_FALSE(*status);
65  // EXPECT_FALSE(status->message().empty());
66  // }
67 
68  {
69  std::string str = R"(<tesseract:cone radius="1"/>)";
71  EXPECT_FALSE(runTest<tesseract_geometry::Cone::Ptr>(
73  }
74 
75  {
76  std::string str = R"(<tesseract:cone length="2"/>)";
78  EXPECT_FALSE(runTest<tesseract_geometry::Cone::Ptr>(
80  }
81 
82  {
83  std::string str = "<tesseract:cone />";
85  EXPECT_FALSE(runTest<tesseract_geometry::Cone::Ptr>(
87  }
88 }
89 
90 TEST(TesseractURDFUnit, write_cone) // NOLINT
91 {
92  {
93  tesseract_geometry::Cone::Ptr cone = std::make_shared<tesseract_geometry::Cone>(0.5, 1.0);
94  std::string text;
95  EXPECT_EQ(0, writeTest<tesseract_geometry::Cone::Ptr>(cone, &tesseract_urdf::writeCone, text));
96  EXPECT_NE(text, "");
97  }
98 
99  {
100  tesseract_geometry::Cone::Ptr cone = nullptr;
101  std::string text;
102  EXPECT_EQ(1, writeTest<tesseract_geometry::Cone::Ptr>(cone, &tesseract_urdf::writeCone, text));
103  EXPECT_EQ(text, "");
104  }
105 }
cone.h
tesseract_urdf::writeCone
tinyxml2::XMLElement * writeCone(const std::shared_ptr< const tesseract_geometry::Cone > &cone, tinyxml2::XMLDocument &doc)
Definition: cone.cpp:52
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
EXPECT_TRUE
#define EXPECT_TRUE(args)
cone.h
Parse cone from xml string.
tesseract_urdf_common_unit.h
EXPECT_NEAR
#define EXPECT_NEAR(a, b, prec)
TEST
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH TESSERACT_COMMON_IGNORE_WARNINGS_POP TEST(TesseractURDFUnit, parse_cone)
Definition: tesseract_urdf_cone_unit.cpp:11
TESSERACT_COMMON_IGNORE_WARNINGS_POP
tesseract_urdf::parseCone
std::shared_ptr< tesseract_geometry::Cone > parseCone(const tinyxml2::XMLElement *xml_element)
Parse a xml cone element.
Definition: cone.cpp:40
tesseract_geometry::Cone::Ptr
std::shared_ptr< Cone > Ptr
macros.h
EXPECT_EQ
#define EXPECT_EQ(a, b)
EXPECT_FALSE
#define EXPECT_FALSE(args)
tesseract_urdf::CONE_ELEMENT_NAME
static constexpr std::string_view CONE_ELEMENT_NAME
Definition: cone.h:45


tesseract_urdf
Author(s): Levi Armstrong
autogenerated on Thu Apr 24 2025 03:10:44