ellipse_iterator.cpp
Go to the documentation of this file.
00001 
00004 /*****************************************************************************
00005 ** Includes
00006 *****************************************************************************/
00007 
00008 #include "../include/cost_map_core/common.hpp"
00009 #include <Eigen/Core>
00010 
00011 // gtest
00012 #include <gtest/gtest.h>
00013 
00014 // Limits
00015 #include <cfloat>
00016 
00017 // Vector
00018 #include <vector>
00019 #include "../include/cost_map_core/cost_map.hpp"
00020 #include "../include/cost_map_core/iterators/ellipse_iterator.hpp"
00021 
00022 using namespace std;
00023 using namespace Eigen;
00024 
00025 TEST(EllipseIterator, OneCellWideEllipse)
00026 {
00027   cost_map::CostMap map( { "types" });
00028   map.setGeometry(cost_map::Length(8.0, 5.0), 1.0, cost_map::Position(0.0, 0.0));
00029 
00030   cost_map::EllipseIterator iterator(map, cost_map::Position(0.0, 0.0), cost_map::Length(8.0, 1.0));
00031 
00032   EXPECT_FALSE(iterator.isPastEnd());
00033   EXPECT_EQ(0, (*iterator)(0));
00034   EXPECT_EQ(2, (*iterator)(1));
00035 
00036   ++iterator;
00037   EXPECT_FALSE(iterator.isPastEnd());
00038   EXPECT_EQ(1, (*iterator)(0));
00039   EXPECT_EQ(2, (*iterator)(1));
00040 
00041   ++iterator;
00042   EXPECT_FALSE(iterator.isPastEnd());
00043   EXPECT_EQ(2, (*iterator)(0));
00044   EXPECT_EQ(2, (*iterator)(1));
00045 
00046   ++iterator;
00047   ++iterator;
00048   ++iterator;
00049   ++iterator;
00050   ++iterator;
00051   EXPECT_FALSE(iterator.isPastEnd());
00052   EXPECT_EQ(7, (*iterator)(0));
00053   EXPECT_EQ(2, (*iterator)(1));
00054 
00055   ++iterator;
00056   EXPECT_TRUE(iterator.isPastEnd());
00057 }
00058 
00059 int main(int argc, char **argv)
00060 {
00061   testing::InitGoogleTest(&argc, argv);
00062   srand((int)time(0));
00063   return RUN_ALL_TESTS();
00064 }
00065 


cost_map_core
Author(s): Daniel Stonier
autogenerated on Thu Jun 6 2019 20:27:46