1 | // Copyright (C) 2013 Cromwell D. Enage
|
---|
2 | // Distributed under the Boost Software License, Version 1.0.
|
---|
3 | // (See accompanying file LICENSE_1_0.txt or copy at
|
---|
4 | // http://www.boost.org/LICENSE_1_0.txt)
|
---|
5 |
|
---|
6 | #include <deque>
|
---|
7 | #include <boost/container/deque.hpp>
|
---|
8 | #include <boost/range/algorithm/equal.hpp>
|
---|
9 | #include <boost/test/minimal.hpp>
|
---|
10 |
|
---|
11 | void
|
---|
12 | test_insert_range(
|
---|
13 | std::deque<int> std_deque
|
---|
14 | , boost::container::deque<int> boost_deque
|
---|
15 | , std::deque<int> const& input_deque
|
---|
16 | , std::size_t index
|
---|
17 | )
|
---|
18 | {
|
---|
19 | BOOST_CHECK(boost::range::equal(std_deque, boost_deque));
|
---|
20 |
|
---|
21 | boost::container::deque<int> other_deque(boost_deque);
|
---|
22 |
|
---|
23 | std_deque.insert(
|
---|
24 | std_deque.begin() + index
|
---|
25 | , input_deque.begin()
|
---|
26 | , input_deque.end()
|
---|
27 | );
|
---|
28 |
|
---|
29 | for (std::size_t i = 0; i < input_deque.size(); ++i)
|
---|
30 | {
|
---|
31 | other_deque.insert(other_deque.begin() + index + i, input_deque[i]);
|
---|
32 | }
|
---|
33 |
|
---|
34 | BOOST_CHECK(boost::range::equal(std_deque, other_deque));
|
---|
35 | boost_deque.insert(
|
---|
36 | boost_deque.begin() + index
|
---|
37 | , input_deque.begin()
|
---|
38 | , input_deque.end()
|
---|
39 | );
|
---|
40 | BOOST_CHECK(boost::range::equal(std_deque, boost_deque));
|
---|
41 | BOOST_CHECK(boost::range::equal(boost_deque, other_deque));
|
---|
42 | }
|
---|
43 |
|
---|
44 | int test_main(int argc, char** argv)
|
---|
45 | {
|
---|
46 | std::deque<int> std_deque, input_deque;
|
---|
47 | boost::container::deque<int> boost_deque;
|
---|
48 |
|
---|
49 | for (int element = -10; element < 10; ++element)
|
---|
50 | {
|
---|
51 | std_deque.push_back(element);
|
---|
52 | boost_deque.push_back(element);
|
---|
53 | input_deque.push_back(element + 20);
|
---|
54 | }
|
---|
55 |
|
---|
56 | BOOST_CHECK(boost::range::equal(std_deque, boost_deque));
|
---|
57 |
|
---|
58 | for (std::size_t i = 0; i <= input_deque.size(); ++i)
|
---|
59 | {
|
---|
60 | test_insert_range(std_deque, boost_deque, input_deque, i);
|
---|
61 | }
|
---|
62 |
|
---|
63 | return 0;
|
---|
64 | }
|
---|
65 |
|
---|