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