[range] Add tests for free functions.

This commit is contained in:
Adam Wulkiewicz 2014-06-19 01:48:57 +02:00
parent a552a0de67
commit 493f51f1fd
2 changed files with 88 additions and 0 deletions

View File

@ -18,6 +18,7 @@ test-suite boost-geometry-util
[ run calculation_type.cpp ]
[ run for_each_coordinate.cpp ]
[ run math_sqrt.cpp ]
[ run range.cpp ]
[ run rational.cpp ]
[ run select_most_precise.cpp ]
[ run write_dsv.cpp ]

87
test/util/range.cpp Normal file
View File

@ -0,0 +1,87 @@
// Boost.Geometry
// Unit Test
// Copyright (c) 2014 Oracle and/or its affiliates.
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
// Use, modification and distribution is subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#include <geometry_test_common.hpp>
#include <vector>
#include <boost/geometry/util/range.hpp>
int test_main(int, char* [])
{
namespace bgr = bg::range;
std::vector<int> v;
for (int i = 0 ; i < 20 ; ++i)
{
bgr::push_back(v, i);
}
for (int i = 0 ; i < 20 ; ++i)
{
BOOST_CHECK(bgr::at(v, i) == i);
}
BOOST_CHECK(bgr::front(v) == 0);
BOOST_CHECK(bgr::back(v) == 19);
BOOST_CHECK(boost::size(v) == 20); // [0,19]
bgr::resize(v, 15);
BOOST_CHECK(boost::size(v) == 15); // [0,14]
BOOST_CHECK(bgr::back(v) == 14);
bgr::pop_back(v);
BOOST_CHECK(boost::size(v) == 14); // [0,13]
BOOST_CHECK(bgr::back(v) == 13);
bgr::erase(v, boost::end(v) - 1);
BOOST_CHECK(boost::size(v) == 13); // [0,12]
BOOST_CHECK(bgr::back(v) == 12);
bgr::erase(v, boost::end(v) - 3, boost::end(v));
BOOST_CHECK(boost::size(v) == 10); // [0,9]
BOOST_CHECK(bgr::back(v) == 9);
bgr::erase(v, boost::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);
bgr::erase(v, boost::begin(v) + 2, boost::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);
bgr::erase(v, boost::begin(v) + 2, boost::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);
bgr::erase(v, boost::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);
bgr::erase(v, boost::begin(v), boost::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);
bgr::erase(v, boost::begin(v), boost::end(v));
BOOST_CHECK(boost::size(v) == 0);
return 0;
}