TEST(NamespaceRemappingTest, qualified_remaps) { ros::M_string local_remappings; local_remappings.insert(std::make_pair("/a", "/Ra")); PRINT(ros::NodeHandle a("a", local_remappings)); // local_remappings don't apply to this nodehandle's name PRINT(ros::NodeHandle sub_a(a, "a")); // remapping were fully qualified, so don't apply to /a/a EXPECT_STREQ( a.getNamespace().c_str(), "/a"); EXPECT_STREQ(sub_a.getNamespace().c_str(), "/a/a"); }
bool traverse(const std::vector<int>& a) { // depth-first search with conditional branching bool res = true; if(a.size() == 2) { return check(a); // leaf reached } if(!check(a)) { // generate & traverse subsets for(int i=0; i<a.size(); ++i) { std::vector<int> sub_a(a); sub_a.erase(sub_a.begin() + i); res &= traverse(sub_a); } return res; // return from lower layer } else return true; // return on success }