]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/test/experimental/view/transformed/drop_front.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / hana / test / experimental / view / transformed / drop_front.cpp
1 // Copyright Louis Dionne 2013-2016
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)
4
5 #include <boost/hana/assert.hpp>
6 #include <boost/hana/drop_front.hpp>
7 #include <boost/hana/equal.hpp>
8 #include <boost/hana/experimental/view.hpp>
9 #include <boost/hana/integral_constant.hpp>
10
11 #include <laws/base.hpp>
12 #include <support/seq.hpp>
13 namespace hana = boost::hana;
14 using hana::test::ct_eq;
15
16
17 int main() {
18 auto container = ::seq;
19 auto f = hana::test::_injection<0>{};
20
21 {
22 auto storage = container();
23 auto transformed = hana::experimental::transformed(storage, f);
24 BOOST_HANA_CONSTANT_CHECK(hana::equal(
25 hana::drop_front(transformed, hana::size_c<0>),
26 container()
27 ));
28 }
29
30 {
31 auto storage = container(ct_eq<0>{});
32 auto transformed = hana::experimental::transformed(storage, f);
33 BOOST_HANA_CONSTANT_CHECK(hana::equal(
34 hana::drop_front(transformed, hana::size_c<0>),
35 container(f(ct_eq<0>{}))
36 ));
37 }{
38 auto storage = container(ct_eq<0>{});
39 auto transformed = hana::experimental::transformed(storage, f);
40 BOOST_HANA_CONSTANT_CHECK(hana::equal(
41 hana::drop_front(transformed, hana::size_c<1>),
42 container()
43 ));
44 }
45
46 {
47 auto storage = container(ct_eq<0>{}, ct_eq<1>{});
48 auto transformed = hana::experimental::transformed(storage, f);
49 BOOST_HANA_CONSTANT_CHECK(hana::equal(
50 hana::drop_front(transformed, hana::size_c<0>),
51 container(f(ct_eq<0>{}), f(ct_eq<1>{}))
52 ));
53 }{
54 auto storage = container(ct_eq<0>{}, ct_eq<1>{});
55 auto transformed = hana::experimental::transformed(storage, f);
56 BOOST_HANA_CONSTANT_CHECK(hana::equal(
57 hana::drop_front(transformed, hana::size_c<1>),
58 container(f(ct_eq<1>{}))
59 ));
60 }{
61 auto storage = container(ct_eq<0>{}, ct_eq<1>{});
62 auto transformed = hana::experimental::transformed(storage, f);
63 BOOST_HANA_CONSTANT_CHECK(hana::equal(
64 hana::drop_front(transformed, hana::size_c<2>),
65 container()
66 ));
67 }
68
69 {
70 auto storage = container(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{});
71 auto transformed = hana::experimental::transformed(storage, f);
72 BOOST_HANA_CONSTANT_CHECK(hana::equal(
73 hana::drop_front(transformed, hana::size_c<0>),
74 container(f(ct_eq<0>{}), f(ct_eq<1>{}), f(ct_eq<2>{}))
75 ));
76 }{
77 auto storage = container(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{});
78 auto transformed = hana::experimental::transformed(storage, f);
79 BOOST_HANA_CONSTANT_CHECK(hana::equal(
80 hana::drop_front(transformed, hana::size_c<1>),
81 container(f(ct_eq<1>{}), f(ct_eq<2>{}))
82 ));
83 }{
84 auto storage = container(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{});
85 auto transformed = hana::experimental::transformed(storage, f);
86 BOOST_HANA_CONSTANT_CHECK(hana::equal(
87 hana::drop_front(transformed, hana::size_c<2>),
88 container(f(ct_eq<2>{}))
89 ));
90 }{
91 auto storage = container(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{});
92 auto transformed = hana::experimental::transformed(storage, f);
93 BOOST_HANA_CONSTANT_CHECK(hana::equal(
94 hana::drop_front(transformed, hana::size_c<3>),
95 container()
96 ));
97 }
98 }