1 #include <gtest/gtest.h> 
   12     TestLRF(
double angle_min_=-M_PI, 
double angle_max_=M_PI, 
double range_min_=0.2, 
double range_max_=60., uint n_beams_=9) :
 
   70     lrf.renderLine(p1, p2, ranges);
 
   71     ASSERT_EQ(lrf.getAngleUpperIndex(0.0) -1, 4);
 
   72     ASSERT_EQ(ranges[lrf.getAngleUpperIndex(0.0) -1], 1);
 
   80     lrf.renderLine(p1, p2, ranges);
 
   81     ASSERT_EQ(ranges[lrf.getAngleUpperIndex(M_PI_2) -1], 1.0);
 
   89     lrf.renderLine(p1, p2, ranges);
 
   90     ASSERT_EQ(ranges[lrf.getAngleUpperIndex(-M_PI_2) -1], 1.0);
 
   98     lrf.renderLine(p1, p2, ranges);
 
   99     ASSERT_EQ(ranges[lrf.getAngleUpperIndex(-M_PI) -1], 1.0);
 
  100     ASSERT_EQ(ranges[lrf.getAngleUpperIndex(M_PI) - 1], 1.0);
 
  105     double a1 = angle_max - 0.1; 
 
  106     double a2 = angle_min - 1.0; 
 
  113     lrf.renderLine(p1, p2, ranges);
 
  115     uint upper_index_a1 = lrf.getAngleUpperIndex(a1);
 
  117     for (uint i = 0; i<upper_index_a1-1; ++i)
 
  119         ASSERT_EQ(ranges[i], range_max) << 
"Range at index [" << i << 
"] should not be rendered. Instead is rendered to " << ranges[i];
 
  122     for (uint i = upper_index_a1; i<n_beams; ++i)
 
  124         ASSERT_LE(ranges[i], 1.) << 
"Range at index [" << i << 
"] should be rendered to <=1. Instead its value is " << ranges[i];
 
  133     lrf.renderLine(p1, p2, ranges);
 
  135     uint upper_index_p2 = lrf.getAngleUpperIndex(p2.
x, p2.
y);
 
  137     for (uint i = 0; i<upper_index_p2-1; ++i)
 
  139         ASSERT_LE(ranges[i], sqrt(2)) << 
"Range at index [" << i << 
"] should be rendered to <=" << sqrt(2) << 
". Instead its value is " << ranges[i];
 
  141     for (uint i = upper_index_p2; i<n_beams; ++i)
 
  143         ASSERT_EQ(ranges[i], range_max) << 
"Range at index [" << i << 
"] should not be rendered. Instead is rendered to " << ranges[i];
 
  149     ASSERT_EQ(lrf.getAngleUpperIndex(1.5*angle_min), 0);
 
  150     ASSERT_EQ(lrf.getAngleUpperIndex(angle_min), 1);
 
  151     ASSERT_EQ(lrf.getAngleUpperIndex(0.5*angle_min + 0.5*angle_max), 
std::floor(0.5*n_beams-0.5)+1);
 
  152     ASSERT_EQ(lrf.getAngleUpperIndex(angle_max), n_beams);
 
  153     ASSERT_EQ(lrf.getAngleUpperIndex(1.5*angle_max), n_beams);
 
  158     ASSERT_EQ(lrf.getAngleUpperIndex(cos(1.5*angle_min), sin(1.5*angle_min)), 0);
 
  159     ASSERT_EQ(lrf.getAngleUpperIndex(cos(angle_min), sin(angle_min)), 1);
 
  160     ASSERT_EQ(lrf.getAngleUpperIndex(cos(0.5*angle_min + 0.5*angle_max), sin(0.5*angle_min + 0.5*angle_max)), 
std::floor(0.5*n_beams - 0.5) + 1);
 
  161     ASSERT_EQ(lrf.getAngleUpperIndex(cos(angle_max), sin(angle_max)), n_beams);
 
  162     ASSERT_EQ(lrf.getAngleUpperIndex(cos(1.5*angle_max), sin(1.5*angle_max)), n_beams);
 
  167     ASSERT_EQ(lrf.getAngleUpperIndex(-1.0, 0.0)-1, 8);
 
  168     ASSERT_EQ(lrf.getAngleUpperIndex(-1.0, -1.0)-1, 1);
 
  169     ASSERT_EQ(lrf.getAngleUpperIndex(0.0, -1.0)-1, 2);
 
  170     ASSERT_EQ(lrf.getAngleUpperIndex(1.0, -1.0)-1, 3);
 
  171     ASSERT_EQ(lrf.getAngleUpperIndex(1.0, 0.0)-1, 4);
 
  172     ASSERT_EQ(lrf.getAngleUpperIndex(1.0, 1.0)-1, 5);
 
  173     ASSERT_EQ(lrf.getAngleUpperIndex(0.0, 1.0)-1, 6);
 
  174     ASSERT_EQ(lrf.getAngleUpperIndex(-1.0, 1.0)-1, 7);
 
  175     ASSERT_EQ(lrf.getAngleUpperIndex(0.0, 0.0), 5);
 
  178 int main(
int argc, 
char **argv)
 
  180    testing::InitGoogleTest(&argc, argv);
 
  181    return RUN_ALL_TESTS();