]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/test/detail/variadic/split_at.cpp
1 // Copyright Louis Dionne 2013-2017
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
5 #include <boost/hana/detail/variadic/split_at.hpp>
7 #include <boost/hana/assert.hpp>
8 #include <boost/hana/equal.hpp>
9 #include <boost/hana/pair.hpp>
10 #include <boost/hana/tuple.hpp>
12 #include <laws/base.hpp>
13 namespace hana
= boost::hana
;
14 namespace vd
= hana::detail::variadic
;
15 using hana::test::ct_eq
;
18 auto check
= [](auto split
, auto xs
, auto ys
) {
19 auto result
= split([](auto ...xs
) {
20 return [=](auto ...ys
) {
21 return hana::make_pair(hana::make_tuple(xs
...), hana::make_tuple(ys
...));
25 BOOST_HANA_CONSTANT_CHECK(hana::equal(xs
, hana::first(result
)));
26 BOOST_HANA_CONSTANT_CHECK(hana::equal(ys
, hana::second(result
)));
38 vd::split_at
<0>(ct_eq
<1>{}),
40 hana::make_tuple(ct_eq
<1>{})
44 vd::split_at
<0>(ct_eq
<1>{}, ct_eq
<2>{}),
46 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{})
50 vd::split_at
<0>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}),
52 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{})
57 vd::split_at
<1>(ct_eq
<1>{}),
58 hana::make_tuple(ct_eq
<1>{}),
63 vd::split_at
<1>(ct_eq
<1>{}, ct_eq
<2>{}),
64 hana::make_tuple(ct_eq
<1>{}),
65 hana::make_tuple(ct_eq
<2>{})
69 vd::split_at
<1>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}),
70 hana::make_tuple(ct_eq
<1>{}),
71 hana::make_tuple(ct_eq
<2>{}, ct_eq
<3>{})
75 vd::split_at
<1>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}),
76 hana::make_tuple(ct_eq
<1>{}),
77 hana::make_tuple(ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{})
82 vd::split_at
<2>(ct_eq
<1>{}, ct_eq
<2>{}),
83 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}),
88 vd::split_at
<2>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}),
89 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}),
90 hana::make_tuple(ct_eq
<3>{})
94 vd::split_at
<2>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}),
95 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}),
96 hana::make_tuple(ct_eq
<3>{}, ct_eq
<4>{})
100 vd::split_at
<2>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}),
101 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}),
102 hana::make_tuple(ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{})
107 vd::split_at
<7>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}),
108 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}),
113 vd::split_at
<7>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}),
114 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}),
115 hana::make_tuple(ct_eq
<8>{})
119 vd::split_at
<7>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}),
120 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}),
121 hana::make_tuple(ct_eq
<8>{}, ct_eq
<9>{})
125 vd::split_at
<7>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}, ct_eq
<10>{}),
126 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}),
127 hana::make_tuple(ct_eq
<8>{}, ct_eq
<9>{}, ct_eq
<10>{})
132 vd::split_at
<8>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}),
133 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}),
138 vd::split_at
<8>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}),
139 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}),
140 hana::make_tuple(ct_eq
<9>{})
144 vd::split_at
<8>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}, ct_eq
<10>{}),
145 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}),
146 hana::make_tuple(ct_eq
<9>{}, ct_eq
<10>{})
151 vd::split_at
<9>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}),
152 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}),
157 vd::split_at
<9>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}, ct_eq
<10>{}),
158 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}),
159 hana::make_tuple(ct_eq
<10>{})
163 vd::split_at
<9>(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}, ct_eq
<10>{}, ct_eq
<11>{}),
164 hana::make_tuple(ct_eq
<1>{}, ct_eq
<2>{}, ct_eq
<3>{}, ct_eq
<4>{}, ct_eq
<5>{}, ct_eq
<6>{}, ct_eq
<7>{}, ct_eq
<8>{}, ct_eq
<9>{}),
165 hana::make_tuple(ct_eq
<10>{}, ct_eq
<11>{})