32 #include <nav_msgs/OccupancyGrid.h> 33 #include <nav_msgs/Path.h> 34 #include <neonavigation_metrics_msgs/Metrics.h> 35 #include <planner_cspace_msgs/PlannerStatus.h> 36 #include <sensor_msgs/PointCloud.h> 38 #include <gtest/gtest.h> 81 void showMap(
const nav_msgs::OccupancyGrid::ConstPtr& msg)
83 std::cerr << std::hex;
84 for (
size_t y = 0; y < msg->info.height; ++y)
86 for (
size_t x = 0; x < msg->info.width; ++x)
88 std::cerr << (msg->data[x + y * msg->info.width] / 11);
90 std::cerr << std::endl;
92 std::cerr << std::dec;
94 std::streamsize ss = std::cerr.precision();
95 std::cerr <<
"path:" << std::endl
96 << std::setprecision(3);
97 for (
const auto& p :
path_->poses)
98 std::cerr << p.pose.position.x <<
", " << p.pose.position.y <<
", " << std::endl;
100 std::cerr << std::setprecision(ss);
114 void cbDistance(
const sensor_msgs::PointCloud::ConstPtr& msg)
119 void cbStatus(
const planner_cspace_msgs::PlannerStatus::ConstPtr& msg)
121 if (msg->error == planner_cspace_msgs::PlannerStatus::GOING_WELL &&
122 msg->status == planner_cspace_msgs::PlannerStatus::DOING)
125 void cbMetrics(
const neonavigation_metrics_msgs::Metrics::ConstPtr& msg)
129 void cbPath(
const nav_msgs::Path::ConstPtr& msg)
131 if (msg->poses.size() > 0)
143 neonavigation_metrics_msgs::Metrics::ConstPtr
metrics_;
184 for (
auto data : data_set)
189 if (::testing::Test::HasFailure())
211 for (
auto data : data_set)
216 if (::testing::Test::HasFailure())
232 if (std::abs(y - 0.5) < 0.05)
234 const float dist_from_goal = std::abs(x - 1.0);
235 ASSERT_NEAR(dist_from_goal, d, 0.15);
246 ASSERT_NE(0u,
metrics_->data.size());
249 int main(
int argc,
char** argv)
251 testing::InitGoogleTest(&argc, argv);
252 ros::init(argc, argv,
"test_debug_outputs");
254 return RUN_ALL_TESTS();
ros::Subscriber sub_metrics_
nav_msgs::Path::ConstPtr path_
ros::Subscriber sub_remembered_
neonavigation_metrics_msgs::Metrics::ConstPtr metrics_
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
void cbPath(const nav_msgs::Path::ConstPtr &msg)
nav_msgs::OccupancyGrid::ConstPtr map_remembered_
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
void cbHysteresis(const nav_msgs::OccupancyGrid::ConstPtr &msg)
void cbStatus(const planner_cspace_msgs::PlannerStatus::ConstPtr &msg)
void cbDistance(const sensor_msgs::PointCloud::ConstPtr &msg)
TEST_F(DebugOutputsTest, Hysteresis)
ros::Subscriber sub_status_
nav_msgs::OccupancyGrid::ConstPtr map_hysteresis_
void cbMetrics(const neonavigation_metrics_msgs::Metrics::ConstPtr &msg)
sensor_msgs::PointCloud::ConstPtr map_distance_
void showMap(const nav_msgs::OccupancyGrid::ConstPtr &msg)
void cbRemembered(const nav_msgs::OccupancyGrid::ConstPtr &msg)
ros::Subscriber sub_distance_
int main(int argc, char **argv)
ROSCPP_DECL void spinOnce()
ros::Subscriber sub_path_
ros::Subscriber sub_hysteresis_