3 #include <gtest/gtest.h>
4 #include <Eigen/Geometry>
10 TEST(TesseractURDFUnit, parse_inertial)
13 std::string str = R
"(<inertial extra="0 0 0">
14 <origin xyz="0 0 0" rpy="0 0 0"/>
15 <mass value="1.0" extra="0 0 0"/>
16 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0" extra="0 0 0"/>
19 EXPECT_TRUE(runTest<tesseract_scene_graph::Inertial::Ptr>(
31 std::string str = R"(<inertial>
33 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0"/>
36 EXPECT_TRUE(runTest<tesseract_scene_graph::Inertial::Ptr>(
48 std::string str = R"(<inertial extra="0 0 0">
49 <origin xyz="0 0 0 4" rpy="0 0 0"/>
50 <mass value="1.0" extra="0 0 0"/>
51 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0" extra="0 0 0"/>
54 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
59 std::string str = R"(<inertial>
60 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0"/>
63 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
68 std::string str = R"(<inertial>
72 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
77 std::string str = R"(<inertial>
79 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0"/>
82 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
87 std::string str = R"(<inertial>
89 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0"/>
92 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
97 std::string str = R"(<inertial>
99 <inertia ixx="a" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0"/>
102 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
107 std::string str = R"(<inertial>
109 <inertia ixx="1.0" ixy="a" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0"/>
112 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
117 std::string str = R"(<inertial>
119 <inertia ixx="1.0" ixy="2.0" ixz="a" iyy="4.0" iyz="5.0" izz="6.0"/>
122 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
127 std::string str = R"(<inertial>
129 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="a" iyz="5.0" izz="6.0"/>
132 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
137 std::string str = R"(<inertial>
139 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="a" izz="6.0"/>
142 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
147 std::string str = R"(<inertial>
149 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="a"/>
152 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
157 std::string str = R"(<inertial>
159 <inertia ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0"/>
162 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
167 std::string str = R"(<inertial>
169 <inertia ixx="1.0" ixz="3.0" iyy="4.0" iyz="5.0" izz="6.0"/>
172 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
177 std::string str = R"(<inertial>
179 <inertia ixx="1.0" ixy="2.0" iyy="4.0" iyz="5.0" izz="6.0"/>
182 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
187 std::string str = R"(<inertial>
189 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyz="5.0" izz="6.0"/>
192 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
197 std::string str = R"(<inertial>
199 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" izz="6.0"/>
202 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
207 std::string str = R"(<inertial>
209 <inertia ixx="1.0" ixy="2.0" ixz="3.0" iyy="4.0" iyz="5.0"/>
212 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
217 std::string str = R"(<inertial>
222 EXPECT_FALSE(runTest<tesseract_scene_graph::Inertial::Ptr>(
227 TEST(TesseractURDFUnit, write_inertial)
231 inertial->origin = Eigen::Isometry3d::Identity();
245 inertial->origin = Eigen::Isometry3d::Identity();
246 inertial->origin.translation() = Eigen::Vector3d(1.0, 2.0, 3.0);