Squashed 'third_party/boostorg/container/' content from commit 1ad6431
Change-Id: I7d095db3455264c03446268e5675b926bebedb0a
git-subtree-dir: third_party/boostorg/container
git-subtree-split: 1ad64316a432a7f021b4956acf88abc6aaa8a77e
diff --git a/test/insert_test.hpp b/test/insert_test.hpp
new file mode 100644
index 0000000..cb862f3
--- /dev/null
+++ b/test/insert_test.hpp
@@ -0,0 +1,75 @@
+#ifndef BOOST_CONTAINER_TEST_INSERT_TEST_HPP
+#define BOOST_CONTAINER_TEST_INSERT_TEST_HPP
+
+// 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 <deque>
+#include <boost/core/lightweight_test.hpp>
+#include "check_equal_containers.hpp"
+
+namespace boost {
+namespace container {
+namespace test {
+
+template<class SeqContainer>
+void
+ test_insert_range(
+ std::deque<int> &std_deque
+ , SeqContainer &seq_container
+ , std::deque<int> const& input_deque
+ , std::size_t index
+ )
+{
+ BOOST_TEST(CheckEqualContainers(std_deque, seq_container));
+
+ std_deque.insert(
+ std_deque.begin() + index
+ , input_deque.begin()
+ , input_deque.end()
+ );
+
+ seq_container.insert(
+ seq_container.begin() + index
+ , input_deque.begin()
+ , input_deque.end()
+ );
+ BOOST_TEST(CheckEqualContainers(std_deque, seq_container));
+}
+
+template<class SeqContainer>
+bool test_range_insertion()
+{
+ int err_count = boost::report_errors();
+ typedef typename SeqContainer::value_type value_type;
+ std::deque<int> input_deque;
+ for (int element = -10; element < 10; ++element)
+ {
+ input_deque.push_back(element + 20);
+ }
+
+ for (std::size_t i = 0; i <= input_deque.size(); ++i)
+ {
+ std::deque<int> std_deque;
+ ::boost::movelib::unique_ptr<SeqContainer> const pseqcontainer = ::boost::movelib::make_unique<SeqContainer>();
+ SeqContainer &seq_container = *pseqcontainer;
+
+ for (int element = -10; element < 10; ++element)
+ {
+ std_deque.push_back(element);
+ seq_container.push_back(value_type(element));
+ }
+ test_insert_range(std_deque, seq_container, input_deque, i);
+ }
+
+ return err_count == boost::report_errors();
+}
+
+
+} //namespace test {
+} //namespace container {
+} //namespace boost {
+
+#endif //#ifndef BOOST_CONTAINER_TEST_INSERT_TEST_HPP