]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/test/test/test-organization-ts/datasets-test/implicit-test.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / test / test / test-organization-ts / datasets-test / implicit-test.cpp
1 // (C) Copyright Gennadiy Rozental 2011-2015.
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
5
6 // See http://www.boost.org/libs/test for the library home page.
7 //
8 // File : $RCSfile$
9 //
10 // Version : $Revision$
11 //
12 // Description : tests implicit interfaces
13 // ***************************************************************************
14
15 // Boost.Test
16 #include <boost/test/unit_test.hpp>
17 #include <boost/test/data/monomorphic.hpp>
18 #include <boost/test/data/for_each_sample.hpp>
19 namespace data=boost::unit_test::data;
20
21 #include "datasets-test.hpp"
22
23 //____________________________________________________________________________//
24
25 BOOST_AUTO_TEST_CASE( test_implicit_for_each )
26 {
27 data::for_each_sample( 2, check_arg_type<int>() );
28
29 data::for_each_sample( "ch", check_arg_type<char const*>() );
30 data::for_each_sample( 2., check_arg_type<double>() );
31 data::for_each_sample( std::vector<int>( 3 ), check_arg_type<int>() );
32 data::for_each_sample( std::list<double>( 2 ), check_arg_type<double>() );
33 invocation_count ic;
34
35 ic.m_value = 0;
36 data::for_each_sample( std::vector<int>( 3 ), ic );
37 BOOST_TEST( ic.m_value == 3 );
38
39 ic.m_value = 0;
40 data::for_each_sample( std::list<double>( 2 ), ic, 1 );
41 BOOST_TEST( ic.m_value == 1 );
42
43 std::vector<copy_count> samples1( 2 );
44 copy_count::value() = 0; // we do not test the construction of the vector
45 data::for_each_sample( samples1, check_arg_type<copy_count>() );
46 BOOST_TEST( copy_count::value() == 0 );
47
48 copy_count::value() = 0;
49 copy_count samples2[] = { copy_count(), copy_count() };
50 data::for_each_sample( samples2, check_arg_type<copy_count>() );
51 BOOST_TEST( copy_count::value() == 0 );
52 }
53
54 //____________________________________________________________________________//
55
56 BOOST_AUTO_TEST_CASE( test_implicit_join )
57 {
58 auto ds = data::make( 5 );
59 BOOST_TEST( (1 + ds).size() == 2 );
60 BOOST_TEST( (ds + 1).size() == 2 );
61
62 BOOST_TEST( (1 + data::make( 5 )).size() == 2 );
63 BOOST_TEST( (data::make( 5 ) + 1).size() == 2 );
64 }
65
66 //____________________________________________________________________________//
67
68 BOOST_AUTO_TEST_CASE( test_implicit_zip )
69 {
70 auto ds = data::make( 5 );
71 BOOST_TEST( (1 ^ ds).size() == 1 );
72 BOOST_TEST( (ds ^ 1).size() == 1 );
73
74 BOOST_TEST( (1 ^ data::make( 5 )).size() == 1 );
75 BOOST_TEST( (data::make( 5 ) ^ 1).size() == 1 );
76 }
77
78 //____________________________________________________________________________//
79
80 // EOF
81
82