summaryrefslogtreecommitdiff
path: root/libs/geometry/test/util/range.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/geometry/test/util/range.cpp')
-rw-r--r--libs/geometry/test/util/range.cpp31
1 files changed, 25 insertions, 6 deletions
diff --git a/libs/geometry/test/util/range.cpp b/libs/geometry/test/util/range.cpp
index b2813a86d..c96464abe 100644
--- a/libs/geometry/test/util/range.cpp
+++ b/libs/geometry/test/util/range.cpp
@@ -1,7 +1,7 @@
// Boost.Geometry
// Unit Test
-// Copyright (c) 2014 Oracle and/or its affiliates.
+// Copyright (c) 2014-2015 Oracle and/or its affiliates.
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
@@ -12,6 +12,7 @@
#include <geometry_test_common.hpp>
+#include <iterator>
#include <vector>
#include <boost/geometry/util/range.hpp>
@@ -135,35 +136,35 @@ void test_all()
BOOST_CHECK(bgr::at(v, 1) == 1);
BOOST_CHECK(bgr::at(v, 2) == 3);
BOOST_CHECK(bgr::back(v) == 9);
- BOOST_CHECK(it == begin(v) + 2);
+ BOOST_CHECK(it == bgr::pos(v, 2));
it = bgr::erase(v, begin(v) + 2, begin(v) + 2);
BOOST_CHECK(boost::size(v) == 9); // {0,1,3..9}
BOOST_CHECK(bgr::at(v, 1) == 1);
BOOST_CHECK(bgr::at(v, 2) == 3);
BOOST_CHECK(bgr::back(v) == 9);
- BOOST_CHECK(it == begin(v) + 2);
+ BOOST_CHECK(it == bgr::pos(v, 2));
it = bgr::erase(v, begin(v) + 2, begin(v) + 5);
BOOST_CHECK(boost::size(v) == 6); // {0,1,6..9}
BOOST_CHECK(bgr::at(v, 1) == 1);
BOOST_CHECK(bgr::at(v, 2) == 6);
BOOST_CHECK(bgr::back(v) == 9);
- BOOST_CHECK(it == begin(v) + 2);
+ BOOST_CHECK(it == bgr::pos(v, 2));
it = bgr::erase(v, begin(v));
BOOST_CHECK(boost::size(v) == 5); // {1,6..9}
BOOST_CHECK(bgr::at(v, 0) == 1);
BOOST_CHECK(bgr::at(v, 1) == 6);
BOOST_CHECK(bgr::back(v) == 9);
- BOOST_CHECK(it == begin(v));
+ BOOST_CHECK(it == bgr::pos(v, 0));
it = bgr::erase(v, begin(v), begin(v) + 3);
BOOST_CHECK(boost::size(v) == 2); // {8,9}
BOOST_CHECK(bgr::at(v, 0) == 8);
BOOST_CHECK(bgr::at(v, 1) == 9);
BOOST_CHECK(bgr::back(v) == 9);
- BOOST_CHECK(it == begin(v));
+ BOOST_CHECK(it == bgr::pos(v, 0));
it = bgr::erase(v, begin(v), end(v));
BOOST_CHECK(boost::size(v) == 0);
@@ -198,6 +199,22 @@ void test_detail()
#endif
}
+template <class Iterator>
+void test_pointers()
+{
+ int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
+
+ boost::iterator_range<Iterator> r1(arr, arr + 10);
+ std::pair<Iterator, Iterator> r2(arr, arr + 10);
+
+ BOOST_CHECK(bgr::front(r1) == 0);
+ BOOST_CHECK(bgr::front(r2) == 0);
+ BOOST_CHECK(bgr::back(r1) == 9);
+ BOOST_CHECK(bgr::back(r2) == 9);
+ BOOST_CHECK(bgr::at(r1, 5) == 5);
+ BOOST_CHECK(bgr::at(r2, 5) == 5);
+}
+
int test_main(int, char* [])
{
test_all<int, true>();
@@ -211,6 +228,8 @@ int test_main(int, char* [])
test_all<bgt::CopyableAndMovable, false>();
test_detail();
+ test_pointers<int*>();
+ test_pointers<int const*>();
return 0;
}