test/line_iterator.cpp
Go to the documentation of this file.
1 
4 /*****************************************************************************
5 ** Includes
6 *****************************************************************************/
7 
8 #include "../include/cost_map_core/iterators/line_iterator.hpp"
9 #include "../include/cost_map_core/cost_map.hpp"
10 
11 // gtest
12 #include <gtest/gtest.h>
13 
14 // Limits
15 #include <cfloat>
16 
17 /*****************************************************************************
18 ** Namespaces
19 *****************************************************************************/
20 
21 using namespace cost_map;
22 
23 /*****************************************************************************
24 ** Tests
25 *****************************************************************************/
26 
27 TEST(LineIterator, StartOutsideMap)
28 {
29  CostMap map( { "types" });
30  map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0));
31 
32  LineIterator iterator(map, Position(2.0, 2.0), Position(0.0, 0.0));
33 
34  EXPECT_FALSE(iterator.isPastEnd());
35  EXPECT_EQ(2, (*iterator)(0));
36  EXPECT_EQ(0, (*iterator)(1));
37 
38  ++iterator;
39  EXPECT_FALSE(iterator.isPastEnd());
40  EXPECT_EQ(3, (*iterator)(0));
41  EXPECT_EQ(1, (*iterator)(1));
42 
43  ++iterator;
44  EXPECT_FALSE(iterator.isPastEnd());
45  EXPECT_EQ(4, (*iterator)(0));
46  EXPECT_EQ(2, (*iterator)(1));
47 
48  ++iterator;
49  EXPECT_TRUE(iterator.isPastEnd());
50 }
51 
52 TEST(LineIterator, EndOutsideMap)
53 {
54  CostMap map( { "types" });
55  map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0));
56 
57  LineIterator iterator(map, Position(0.0, 0.0), Position(9.0, 6.0));
58 
59  EXPECT_FALSE(iterator.isPastEnd());
60  EXPECT_EQ(4, (*iterator)(0));
61  EXPECT_EQ(2, (*iterator)(1));
62 
63  ++iterator;
64  EXPECT_FALSE(iterator.isPastEnd());
65  EXPECT_EQ(3, (*iterator)(0));
66  EXPECT_EQ(1, (*iterator)(1));
67 
68  ++iterator;
69  EXPECT_FALSE(iterator.isPastEnd());
70  EXPECT_EQ(2, (*iterator)(0));
71  EXPECT_EQ(1, (*iterator)(1));
72 
73  ++iterator;
74  EXPECT_FALSE(iterator.isPastEnd());
75  ++iterator;
76  EXPECT_FALSE(iterator.isPastEnd());
77  ++iterator;
78  EXPECT_TRUE(iterator.isPastEnd());
79 }
80 
81 TEST(LineIterator, StartAndEndOutsideMap)
82 {
83  CostMap map( { "types" });
84  map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0));
85 
86  LineIterator iterator(map, Position(-7.0, -9.0), Position(8.0, 8.0));
87 
88  EXPECT_FALSE(iterator.isPastEnd());
89  EXPECT_EQ(5, (*iterator)(0));
90  EXPECT_EQ(4, (*iterator)(1));
91 
92  ++iterator;
93  EXPECT_FALSE(iterator.isPastEnd());
94  EXPECT_EQ(4, (*iterator)(0));
95  EXPECT_EQ(3, (*iterator)(1));
96 
97  ++iterator;
98  EXPECT_FALSE(iterator.isPastEnd());
99  EXPECT_EQ(3, (*iterator)(0));
100  EXPECT_EQ(2, (*iterator)(1));
101 
102  ++iterator;
103  ++iterator;
104  ++iterator;
105  EXPECT_TRUE(iterator.isPastEnd());
106 }
107 
108 TEST(LineIterator, StartAndEndOutsideMapWithoutIntersectingMap)
109 {
110  CostMap map( { "types" });
111  map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0));
112 
113  LineIterator iterator(map, Position(-8.0, 8.0), Position(8.0, 8.0));
114 
115  EXPECT_TRUE(iterator.isPastEnd());
116 }
117 
118 /*****************************************************************************
119 ** Main
120 *****************************************************************************/
121 
122 int main(int argc, char **argv)
123 {
124  testing::InitGoogleTest(&argc, argv);
125  srand((int)time(0));
126  return RUN_ALL_TESTS();
127 }
128 
void setGeometry(const Length &length, const double resolution, const Position &position=Position::Zero())
int main(int argc, char **argv)
TEST(LineIterator, StartOutsideMap)
grid_map::Position Position
Definition: common.hpp:41
grid_map::Length Length
Definition: common.hpp:47


cost_map_core
Author(s): Daniel Stonier
autogenerated on Mon Jun 10 2019 13:03:41