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();