35 #include <gtest/gtest.h> 
   37 #define _GLIBCXX_DEBUG  // Enable assertions in STL 
   44     sensor_msgs::PointCloud2 cloud_msg;
 
   52   }, ::testing::ExitedWithCode(0), 
"");
 
   59   sensor_msgs::PointCloud2 cloud_msg_1, cloud_msg_2;
 
   60   cloud_msg_1.height = n_points;
 
   61   cloud_msg_1.width = 1;
 
   64   cloud_msg_2 = cloud_msg_1;
 
   67   float point_data_raw[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0};
 
   68   std::vector<float> point_data(point_data_raw, point_data_raw + 3*n_points);
 
   70   uint8_t color_data_raw[] = {40, 80, 120, 160, 200, 240, 20, 40, 60, 80, 100, 120};
 
   71   std::vector<uint8_t> color_data(color_data_raw, color_data_raw + 3*n_points);
 
   73   float *data = 
reinterpret_cast<float*
>(&cloud_msg_1.data.front());
 
   74   for(
size_t n=0, i=0; n<n_points; ++n) {
 
   76       *(data++) = point_data[i];
 
   79     uint8_t *bgr = 
reinterpret_cast<uint8_t*
>(data++);
 
   82     for(
size_t j = 0; j <= j_max; ++j)
 
   83       *(bgr++) = color_data[3*n+(j_max - j)];
 
   93   for(
size_t i=0; i<n_points; ++i, ++iter_x, ++iter_r, ++iter_g, ++iter_b) {
 
   94     for(
size_t j=0; j<3; ++j)
 
   95       iter_x[j] = point_data[j+3*i];
 
   96     *iter_r = color_data[3*i];
 
   97     *iter_g = color_data[3*i+1];
 
   98     *iter_b = color_data[3*i+2];
 
  111   for(; iter_const_1_x != iter_const_1_x.end(); ++i, ++iter_const_1_x, ++iter_const_2_x, ++iter_const_1_y, ++iter_const_2_y,
 
  112                                ++iter_const_1_z, ++iter_const_2_z, ++iter_const_1_r, ++iter_const_1_g, ++iter_const_1_b) {
 
  113     EXPECT_EQ(*iter_const_1_x, *iter_const_2_x);
 
  114     EXPECT_EQ(*iter_const_1_x, point_data[0+3*i]);
 
  115     EXPECT_EQ(*iter_const_1_y, *iter_const_2_y);
 
  116     EXPECT_EQ(*iter_const_1_y, point_data[1+3*i]);
 
  117     EXPECT_EQ(*iter_const_1_z, *iter_const_2_z);
 
  118     EXPECT_EQ(*iter_const_1_z, point_data[2+3*i]);
 
  119     EXPECT_EQ(*iter_const_1_r, *iter_const_2_r);
 
  120     EXPECT_EQ(*iter_const_1_r, color_data[3*i+0]);
 
  121     EXPECT_EQ(*iter_const_1_g, *iter_const_2_g);
 
  122     EXPECT_EQ(*iter_const_1_g, color_data[3*i+1]);
 
  123     EXPECT_EQ(*iter_const_1_b, *iter_const_2_b);
 
  124     EXPECT_EQ(*iter_const_1_b, color_data[3*i+2]);
 
  128     iter_const_2_b = iter_const_2_b + 1;
 
  130   EXPECT_FALSE(iter_const_1_y != iter_const_1_y.end());
 
  131   EXPECT_FALSE(iter_const_1_z != iter_const_1_z.end());
 
  132   EXPECT_FALSE(iter_const_1_r != iter_const_1_r.end());
 
  133   EXPECT_FALSE(iter_const_1_g != iter_const_1_g.end());
 
  134   EXPECT_FALSE(iter_const_1_b != iter_const_1_b.end());
 
  135   EXPECT_FALSE(iter_const_2_x != iter_const_2_x.end());
 
  136   EXPECT_FALSE(iter_const_2_y != iter_const_2_y.end());
 
  137   EXPECT_FALSE(iter_const_2_z != iter_const_2_z.end());
 
  138   EXPECT_FALSE(iter_const_2_r != iter_const_2_r.
end());
 
  139   EXPECT_FALSE(iter_const_2_g != iter_const_2_g.
end());
 
  140   EXPECT_FALSE(iter_const_2_b != iter_const_2_b.
end());
 
  141   EXPECT_EQ(i, n_points);
 
  144 int main(
int argc, 
char** argv)
 
  146   ::testing::InitGoogleTest(&argc, argv);
 
  147     return RUN_ALL_TESTS();