Skip to content

Commit 9740be5

Browse files
committed
Unit test for doTransform(QuaternionStamped)
1 parent 57318bf commit 9740be5

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

tf2_geometry_msgs/test/test_tf2_geometry_msgs.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,39 @@ TEST(TfGeometry, Point)
276276
EXPECT_NEAR(v_advanced.point.z, 27, EPS);
277277
}
278278

279+
TEST(TfGeometry, Quaternion)
280+
{
281+
// rotated by -90° around y
282+
// 0, 0, -1
283+
// 0, 1, 0,
284+
// 1, 0, 0
285+
geometry_msgs::msg::QuaternionStamped q1, res;
286+
q1.quaternion.x = 0;
287+
q1.quaternion.y = -0.707107;
288+
q1.quaternion.z = 0;
289+
q1.quaternion.w = 0.707107;
290+
q1.header.stamp = tf2_ros::toMsg(tf2::timeFromSec(2));
291+
q1.header.frame_id = "A";
292+
293+
// simple api
294+
const geometry_msgs::msg::QuaternionStamped q_simple = tf_buffer->transform(
295+
q1, "B", tf2::durationFromSec(
296+
2.0));
297+
EXPECT_NEAR(q_simple.quaternion.x, 0.707107, EPS);
298+
EXPECT_NEAR(q_simple.quaternion.y, 0, EPS);
299+
EXPECT_NEAR(q_simple.quaternion.z, -0.707107, EPS);
300+
EXPECT_NEAR(q_simple.quaternion.w, 0, EPS);
301+
302+
// advanced api
303+
const geometry_msgs::msg::QuaternionStamped q_advanced = tf_buffer->transform(
304+
q1, "B", tf2::timeFromSec(2.0),
305+
"A", tf2::durationFromSec(3.0));
306+
EXPECT_NEAR(q_advanced.quaternion.x, 0.707107, EPS);
307+
EXPECT_NEAR(q_advanced.quaternion.y, 0, EPS);
308+
EXPECT_NEAR(q_advanced.quaternion.z, -0.707107, EPS);
309+
EXPECT_NEAR(q_advanced.quaternion.w, 0, EPS);
310+
}
311+
279312

280313
int main(int argc, char **argv){
281314
testing::InitGoogleTest(&argc, argv);

0 commit comments

Comments
 (0)