]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/hana/test/experimental/view/joined/at.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / hana / test / experimental / view / joined / at.cpp
CommitLineData
b32b8144 1// Copyright Louis Dionne 2013-2017
7c673cae
FG
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/at.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>
13namespace hana = boost::hana;
14using hana::test::ct_eq;
15
16
17int main() {
18 auto container = ::seq;
19
20 {
21 auto storage1 = container(ct_eq<0>{});
22 auto storage2 = container();
23 auto joined = hana::experimental::joined(storage1, storage2);
24 BOOST_HANA_CONSTANT_CHECK(hana::equal(
25 hana::at(joined, hana::size_c<0>),
26 ct_eq<0>{}
27 ));
28 }{
29 auto storage1 = container();
30 auto storage2 = container(ct_eq<0>{});
31 auto joined = hana::experimental::joined(storage1, storage2);
32 BOOST_HANA_CONSTANT_CHECK(hana::equal(
33 hana::at(joined, hana::size_c<0>),
34 ct_eq<0>{}
35 ));
36 }
37
38 {
39 auto storage1 = container(ct_eq<0>{}, ct_eq<1>{});
40 auto storage2 = container();
41 auto joined = hana::experimental::joined(storage1, storage2);
42 BOOST_HANA_CONSTANT_CHECK(hana::equal(
43 hana::at(joined, hana::size_c<0>),
44 ct_eq<0>{}
45 ));
46 BOOST_HANA_CONSTANT_CHECK(hana::equal(
47 hana::at(joined, hana::size_c<1>),
48 ct_eq<1>{}
49 ));
50 }{
51 auto storage1 = container(ct_eq<0>{});
52 auto storage2 = container(ct_eq<1>{});
53 auto joined = hana::experimental::joined(storage1, storage2);
54 BOOST_HANA_CONSTANT_CHECK(hana::equal(
55 hana::at(joined, hana::size_c<0>),
56 ct_eq<0>{}
57 ));
58 BOOST_HANA_CONSTANT_CHECK(hana::equal(
59 hana::at(joined, hana::size_c<1>),
60 ct_eq<1>{}
61 ));
62 }{
63 auto storage1 = container();
64 auto storage2 = container(ct_eq<0>{}, ct_eq<1>{});
65 auto joined = hana::experimental::joined(storage1, storage2);
66 BOOST_HANA_CONSTANT_CHECK(hana::equal(
67 hana::at(joined, hana::size_c<0>),
68 ct_eq<0>{}
69 ));
70 BOOST_HANA_CONSTANT_CHECK(hana::equal(
71 hana::at(joined, hana::size_c<1>),
72 ct_eq<1>{}
73 ));
74 }
75
76 {
77 auto storage1 = container(ct_eq<0>{}, ct_eq<1>{});
78 auto storage2 = container(ct_eq<2>{}, ct_eq<3>{});
79 auto joined = hana::experimental::joined(storage1, storage2);
80 BOOST_HANA_CONSTANT_CHECK(hana::equal(
81 hana::at(joined, hana::size_c<0>),
82 ct_eq<0>{}
83 ));
84 BOOST_HANA_CONSTANT_CHECK(hana::equal(
85 hana::at(joined, hana::size_c<1>),
86 ct_eq<1>{}
87 ));
88 BOOST_HANA_CONSTANT_CHECK(hana::equal(
89 hana::at(joined, hana::size_c<2>),
90 ct_eq<2>{}
91 ));
92 BOOST_HANA_CONSTANT_CHECK(hana::equal(
93 hana::at(joined, hana::size_c<3>),
94 ct_eq<3>{}
95 ));
96 }
97}