]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/algorithm/test/copy_n_test1.cpp
2 Copyright (c) Marshall Clow 2011-2012.
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 For more information, see http://www.boost.org
10 #include <boost/config.hpp>
11 #include <boost/algorithm/cxx11/copy_n.hpp>
13 #define BOOST_TEST_MAIN
14 #include <boost/test/unit_test.hpp>
21 namespace ba
= boost::algorithm
;
22 // namespace ba = boost;
24 template <typename Container
>
25 void test_sequence ( Container
const &c
) {
27 typedef typename
Container::value_type value_type
;
28 std::vector
<value_type
> v
;
32 ba::copy_n ( c
.begin (), 0, back_inserter ( v
));
33 BOOST_CHECK ( v
.size () == 0 );
34 ba::copy_n ( c
.begin (), 0U, back_inserter ( v
));
35 BOOST_CHECK ( v
.size () == 0 );
37 if ( c
.size () > 0 ) {
40 ba::copy_n ( c
.begin (), 1, back_inserter ( v
));
41 BOOST_CHECK ( v
.size () == 1 );
42 BOOST_CHECK ( v
[0] == *c
.begin ());
45 ba::copy_n ( c
.begin (), 1U, back_inserter ( v
));
46 BOOST_CHECK ( v
.size () == 1 );
47 BOOST_CHECK ( v
[0] == *c
.begin ());
51 ba::copy_n ( c
.begin (), c
.size () / 2, back_inserter ( v
));
52 BOOST_CHECK ( v
.size () == c
.size () / 2);
53 BOOST_CHECK ( std::equal ( v
.begin (), v
.end (), c
.begin ()));
55 // Half the elements + 1
57 ba::copy_n ( c
.begin (), c
.size () / 2 + 1, back_inserter ( v
));
58 BOOST_CHECK ( v
.size () == c
.size () / 2 + 1 );
59 BOOST_CHECK ( std::equal ( v
.begin (), v
.end (), c
.begin ()));
63 ba::copy_n ( c
.begin (), c
.size (), back_inserter ( v
));
64 BOOST_CHECK ( v
.size () == c
.size ());
65 BOOST_CHECK ( std::equal ( v
.begin (), v
.end (), c
.begin ()));
70 void test_sequence1 () {
72 for ( int i
= 5; i
< 15; ++i
)
77 for ( int i
= 25; i
> 15; --i
)
83 BOOST_AUTO_TEST_CASE( test_main
)