3 #include <gtest/gtest.h>
13 TEST(TesseractSceneGraphUnit, TesseractSceneGraphJointDynamicsUnit)
18 EXPECT_NEAR(j.
damping, 0, 1e-6);
25 EXPECT_NEAR(j.
damping, 0, 1e-6);
29 TEST(TesseractSceneGraphUnit, TesseractSceneGraphJointLimitsUnit)
34 EXPECT_NEAR(j.
lower, 0, 1e-6);
35 EXPECT_NEAR(j.
upper, 0, 1e-6);
36 EXPECT_NEAR(j.
effort, 0, 1e-6);
47 EXPECT_NEAR(j.
lower, 0, 1e-6);
48 EXPECT_NEAR(j.
upper, 0, 1e-6);
49 EXPECT_NEAR(j.
effort, 0, 1e-6);
55 EXPECT_FALSE(s.str().empty());
58 TEST(TesseractSceneGraphUnit, TesseractSceneGraphJointSafetyUnit)
81 EXPECT_FALSE(s.str().empty());
84 TEST(TesseractSceneGraphUnit, TesseractSceneGraphJointCalibrationUnit)
90 EXPECT_NEAR(j.
rising, 0, 1e-6);
91 EXPECT_NEAR(j.
falling, 0, 1e-6);
99 EXPECT_NEAR(j.
rising, 0, 1e-6);
100 EXPECT_NEAR(j.
falling, 0, 1e-6);
102 std::ostringstream s;
104 EXPECT_FALSE(s.str().empty());
107 TEST(TesseractSceneGraphUnit, TesseractSceneGraphJointMimicUnit)
112 EXPECT_NEAR(j.
offset, 0, 1e-6);
121 EXPECT_NEAR(j.
offset, 0, 1e-6);
125 std::ostringstream s;
127 EXPECT_FALSE(s.str().empty());
130 TEST(TesseractSceneGraphUnit, TesseractSceneGraphJointUnit)
134 Joint joint_1(
"joint_n1");
139 EXPECT_TRUE(joint_1.
dynamics ==
nullptr);
140 EXPECT_TRUE(joint_1.
limits ==
nullptr);
141 EXPECT_TRUE(joint_1.
safety ==
nullptr);
143 EXPECT_TRUE(joint_1.
mimic ==
nullptr);
149 joint_1.
axis = Eigen::Vector3d::UnitZ();
151 joint_1.
dynamics = std::make_shared<JointDynamics>();
154 joint_1.
limits = std::make_shared<JointLimits>();
155 joint_1.
limits->lower = -5;
156 joint_1.
limits->upper = 5;
157 joint_1.
limits->effort = 0.5;
158 joint_1.
limits->velocity = 2;
159 joint_1.
calibration = std::make_shared<JointCalibration>();
162 joint_1.
mimic = std::make_shared<JointMimic>();
163 joint_1.
mimic->offset = 0.5;
164 joint_1.
mimic->joint_name =
"joint_0";
165 joint_1.
mimic->multiplier = 1.5;
166 joint_1.
safety = std::make_shared<JointSafety>();
167 joint_1.
safety->soft_lower_limit = -0.5;
168 joint_1.
safety->soft_upper_limit = 0.5;
169 joint_1.
safety->k_position = 1.1;
170 joint_1.
safety->k_velocity = 2.5;
172 EXPECT_EQ(joint_1.
getName(),
"joint_n1");
175 EXPECT_EQ(joint_1_clone.
getName(),
"joint_n1");
179 EXPECT_TRUE(joint_1_clone.
axis.isApprox(Eigen::Vector3d::UnitZ()));
182 EXPECT_NEAR(joint_1_clone.
dynamics->damping, 0.1, 1e-6);
183 EXPECT_NEAR(joint_1_clone.
dynamics->friction, 0.25, 1e-6);
185 EXPECT_NEAR(joint_1_clone.
limits->lower, -5, 1e-6);
186 EXPECT_NEAR(joint_1_clone.
limits->upper, 5, 1e-6);
187 EXPECT_NEAR(joint_1_clone.
limits->effort, 0.5, 1e-6);
188 EXPECT_NEAR(joint_1_clone.
limits->velocity, 2, 1e-6);
190 EXPECT_NEAR(joint_1_clone.
calibration->rising, 0.1, 1e-6);
191 EXPECT_NEAR(joint_1_clone.
calibration->falling, 0.1, 1e-6);
192 EXPECT_TRUE(joint_1_clone.
mimic != joint_1.
mimic);
193 EXPECT_NEAR(joint_1_clone.
mimic->offset, 0.5, 1e-6);
194 EXPECT_EQ(joint_1_clone.
mimic->joint_name,
"joint_0");
195 EXPECT_NEAR(joint_1_clone.
mimic->multiplier, 1.5, 1e-6);
196 EXPECT_NEAR(joint_1_clone.
safety->soft_lower_limit, -0.5, 1e-6);
197 EXPECT_NEAR(joint_1_clone.
safety->soft_upper_limit, 0.5, 1e-6);
198 EXPECT_NEAR(joint_1_clone.
safety->k_position, 1.1, 1e-6);
199 EXPECT_NEAR(joint_1_clone.
safety->k_velocity, 2.5, 1e-6);
201 std::ostringstream s1;
203 EXPECT_EQ(s1.str(),
"Fixed");
204 std::ostringstream s2;
206 EXPECT_EQ(s2.str(),
"Planar");
207 std::ostringstream s3;
209 EXPECT_EQ(s3.str(),
"Floating");
210 std::ostringstream s4;
212 EXPECT_EQ(s4.str(),
"Revolute");
213 std::ostringstream s5;
215 EXPECT_EQ(s5.str(),
"Prismatic");
216 std::ostringstream s6;
218 EXPECT_EQ(s6.str(),
"Continuous");
219 std::ostringstream s7;
221 EXPECT_EQ(s7.str(),
"Unknown");
224 EXPECT_EQ(joint_1.
getName(),
"joint_n1");
229 EXPECT_TRUE(joint_1.
dynamics ==
nullptr);
230 EXPECT_TRUE(joint_1.
limits ==
nullptr);
231 EXPECT_TRUE(joint_1.
safety ==
nullptr);
233 EXPECT_TRUE(joint_1.
mimic ==
nullptr);
237 int main(
int argc,
char** argv)
239 testing::InitGoogleTest(&argc, argv);
241 return RUN_ALL_TESTS();