From 9182c07939e01be9f5d319ac8428ee0fc72538f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Wed, 12 Jan 2022 01:40:42 +0100 Subject: [PATCH] Add missing common_iterator_test from previous commit. --- test/common_iterator_test.cpp | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 test/common_iterator_test.cpp diff --git a/test/common_iterator_test.cpp b/test/common_iterator_test.cpp new file mode 100644 index 0000000..7d5c2fa --- /dev/null +++ b/test/common_iterator_test.cpp @@ -0,0 +1,69 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2021-2022. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#include + +#if BOOST_CXX_VERSION >= 202002L + +#include + +#if defined(__cpp_lib_concepts) //common_iterator + +#define BOOST_CONTAINER_TEST_HAS_CONCEPTS + +#endif +#endif + +#if defined(BOOST_CONTAINER_TEST_HAS_CONCEPTS) //common_iterator + +#include +#include +#include +#include +#include +#include +#include +#include + +int main() +{ + using Ints = std::vector; + Ints ints = { 1,2,3 }; + + using I = std::counted_iterator; + using S = std::default_sentinel_t; + using C = std::common_iterator; + using D = std::ptrdiff_t; + boost::container::vector c1(C(std::counted_iterator(ints.begin(), D(D(ints.size())))), C(std::default_sentinel)); + BOOST_TEST(c1.size() == ints.size()); + boost::container::vector c2(C(std::counted_iterator(ints.begin(), D(ints.size()))), C(std::default_sentinel)); + BOOST_TEST(c2.size() == ints.size()); + boost::container::list c3 (C(std::counted_iterator(ints.begin(), D(ints.size()))), C(std::default_sentinel)); + BOOST_TEST(c3.size() == ints.size()); + boost::container::slist c4 (C(std::counted_iterator(ints.begin(), D(ints.size()))), C(std::default_sentinel)); + BOOST_TEST(c4.size() == ints.size()); + boost::container::set c5(C(std::counted_iterator(ints.begin(), D(ints.size()))), C(std::default_sentinel)); + BOOST_TEST(c5.size() == ints.size()); + boost::container::stable_vector c6(C(std::counted_iterator(ints.begin(), D(ints.size()))), C(std::default_sentinel)); + BOOST_TEST(c6.size() == ints.size()); + + return ::boost::report_errors(); +} + +#else + +#include + +int main() +{ + return 0; +} + +#endif