Skip to content

Commit b2fe32b

Browse files
committed
normalization logic reverted to original
1 parent ea74c8f commit b2fe32b

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

control_toolbox/include/control_toolbox/tf_utils.hpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,19 @@ inline std::string apply_tf_prefix(
5151
{
5252
std::string nprefix = prefix.empty() ? node_ns : prefix;
5353

54-
// normalize: remove leading '/' and ensure trailing '/'
54+
// Normalize the prefix
5555
if (!nprefix.empty())
5656
{
57-
if (nprefix.front() == '/')
58-
{
59-
nprefix.erase(0, 1);
60-
}
57+
// ensure trailing '/'
6158
if (nprefix.back() != '/')
6259
{
6360
nprefix.push_back('/');
6461
}
62+
// remove leading '/'
63+
if (nprefix.front() == '/')
64+
{
65+
nprefix.erase(0, 1);
66+
}
6567
}
6668
return nprefix + frame;
6769
}

control_toolbox/test/tf_utils_tests.cpp

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,34 +33,37 @@
3333
#include <gmock/gmock.h>
3434
#include "control_toolbox/tf_utils.hpp"
3535

36-
TEST(ApplyTFPrefixTest, EmptyExplicitUsesNamespace)
36+
TEST(ApplyTFPrefixTest, UsesNamespaceWhenPrefixEmpty)
3737
{
38-
EXPECT_EQ(control_toolbox::apply_tf_prefix("", "/my_ns", "odom"), "my_ns/odom");
38+
EXPECT_EQ(control_toolbox::apply_tf_prefix("", "/ns", "odom"), "ns/odom");
3939
}
4040

41-
TEST(ApplyTFPrefixTest, ExplicitPrefixUsed)
41+
TEST(ApplyTFPrefixTest, UsesExplicitPrefix)
4242
{
43-
EXPECT_EQ(control_toolbox::apply_tf_prefix("robot1", "/ns", "base"), "robot1/base");
43+
EXPECT_EQ(control_toolbox::apply_tf_prefix("robot", "/ns", "base"), "robot/base");
4444
}
4545

46-
TEST(ApplyTFPrefixTest, LeadingSlashRemoved)
46+
TEST(ApplyTFPrefixTest, NormalizesPrefixSlashes)
4747
{
48-
EXPECT_EQ(control_toolbox::apply_tf_prefix("/robot2", "/ns", "link"), "robot2/link");
48+
EXPECT_EQ(control_toolbox::apply_tf_prefix("/robot1", "/ns", "link"), "robot1/link");
49+
EXPECT_EQ(control_toolbox::apply_tf_prefix("robot2//", "/ns", "odom"), "robot2//odom");
50+
EXPECT_EQ(control_toolbox::apply_tf_prefix("/robot3/", "/ns", "base_link"), "robot3/base_link");
51+
EXPECT_EQ(control_toolbox::apply_tf_prefix("/", "/ns", "odom"), "odom");
4952
}
5053

51-
TEST(ApplyTFPrefixTest, TrailingSlashAdded)
54+
TEST(ApplyTFPrefixTest, EmptyPrefixAndNamespace)
5255
{
53-
EXPECT_EQ(control_toolbox::apply_tf_prefix("robot3", "/ns", "odom"), "robot3/odom");
56+
EXPECT_EQ(control_toolbox::apply_tf_prefix("", "", "odom"), "odom");
5457
}
5558

56-
TEST(ApplyTFPrefixTest, BothSlashesNormalized)
59+
TEST(ApplyTFPrefixTest, FrameHasLeadingSlash)
5760
{
58-
EXPECT_EQ(control_toolbox::apply_tf_prefix("/robot4/", "/ns", "base_link"), "robot4/base_link");
61+
EXPECT_EQ(control_toolbox::apply_tf_prefix("robot", "/ns", "/odom"), "robot//odom");
5962
}
6063

61-
TEST(ApplyTFPrefixTest, NodeNamespaceWithSlash)
64+
TEST(ApplyTFPrefixTest, ComplexPrefixAndNamespace)
6265
{
63-
EXPECT_EQ(control_toolbox::apply_tf_prefix("", "/robot_ns/", "odom"), "robot_ns/odom");
66+
EXPECT_EQ(control_toolbox::apply_tf_prefix("/robot/", "/my_ns/", "odom"), "robot/odom");
6467
}
6568

6669
int main(int argc, char ** argv)

0 commit comments

Comments
 (0)