// Copyright (C) 2013 Cromwell D. Enage // Distributed under 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 #include #include #include void test_insert_range( std::deque std_deque , boost::container::deque boost_deque , std::deque const& input_deque , std::size_t index ) { BOOST_CHECK(boost::range::equal(std_deque, boost_deque)); boost::container::deque other_deque(boost_deque); std_deque.insert( std_deque.begin() + index , input_deque.begin() , input_deque.end() ); for (std::size_t i = 0; i < input_deque.size(); ++i) { other_deque.insert(other_deque.begin() + index + i, input_deque[i]); } BOOST_CHECK(boost::range::equal(std_deque, other_deque)); boost_deque.insert( boost_deque.begin() + index , input_deque.begin() , input_deque.end() ); BOOST_CHECK(boost::range::equal(std_deque, boost_deque)); BOOST_CHECK(boost::range::equal(boost_deque, other_deque)); } int test_main(int argc, char** argv) { std::deque std_deque, input_deque; boost::container::deque boost_deque; for (int element = -10; element < 10; ++element) { std_deque.push_back(element); boost_deque.push_back(element); input_deque.push_back(element + 20); } BOOST_CHECK(boost::range::equal(std_deque, boost_deque)); for (std::size_t i = 0; i <= input_deque.size(); ++i) { test_insert_range(std_deque, boost_deque, input_deque, i); } return 0; }