diff options
Diffstat (limited to 'libcxx/test/std/containers')
| -rw-r--r-- | libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp b/libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp index 2bc37c34ce4..909390f85ca 100644 --- a/libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp +++ b/libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp @@ -46,11 +46,49 @@ make(int size, int start = 0 ) template <class C> void -test(int P, C& c1, const C& c2) +test(int P, const C& c0, const C& c2) { + { + typedef typename C::iterator I; + typedef typename C::const_iterator CI; + typedef input_iterator<CI> BCI; + C c1 = c0; + std::size_t c1_osize = c1.size(); + CI i = c1.insert(c1.begin() + P, BCI(c2.begin()), BCI(c2.end())); + assert(i == c1.begin() + P); + assert(c1.size() == c1_osize + c2.size()); + assert(distance(c1.begin(), c1.end()) == c1.size()); + i = c1.begin(); + for (int j = 0; j < P; ++j, ++i) + assert(*i == j); + for (int j = 0; j < c2.size(); ++j, ++i) + assert(*i == j); + for (int j = P; j < c1_osize; ++j, ++i) + assert(*i == j); + } + { + typedef typename C::iterator I; + typedef typename C::const_iterator CI; + typedef forward_iterator<CI> BCI; + C c1 = c0; + std::size_t c1_osize = c1.size(); + CI i = c1.insert(c1.begin() + P, BCI(c2.begin()), BCI(c2.end())); + assert(i == c1.begin() + P); + assert(c1.size() == c1_osize + c2.size()); + assert(distance(c1.begin(), c1.end()) == c1.size()); + i = c1.begin(); + for (int j = 0; j < P; ++j, ++i) + assert(*i == j); + for (int j = 0; j < c2.size(); ++j, ++i) + assert(*i == j); + for (int j = P; j < c1_osize; ++j, ++i) + assert(*i == j); + } + { typedef typename C::iterator I; typedef typename C::const_iterator CI; typedef bidirectional_iterator<CI> BCI; + C c1 = c0; std::size_t c1_osize = c1.size(); CI i = c1.insert(c1.begin() + P, BCI(c2.begin()), BCI(c2.end())); assert(i == c1.begin() + P); @@ -63,6 +101,7 @@ test(int P, C& c1, const C& c2) assert(*i == j); for (int j = P; j < c1_osize; ++j, ++i) assert(*i == j); + } } template <class C> |

