]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/hana/test/_include/auto/remove_at.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / hana / test / _include / auto / remove_at.hpp
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#ifndef BOOST_HANA_TEST_AUTO_REMOVE_AT_HPP
6#define BOOST_HANA_TEST_AUTO_REMOVE_AT_HPP
7
8#include <boost/hana/assert.hpp>
9#include <boost/hana/equal.hpp>
10#include <boost/hana/integral_constant.hpp>
11#include <boost/hana/remove_at.hpp>
12
13#include <laws/base.hpp>
14#include "test_case.hpp"
15
16
17TestCase test_remove_at{[]{
18 namespace hana = boost::hana;
19 using hana::test::ct_eq;
20
21 BOOST_HANA_CONSTANT_CHECK(hana::equal(
22 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}),
23 hana::size_c<0>),
24 MAKE_TUPLE()
25 ));
26
27 BOOST_HANA_CONSTANT_CHECK(hana::equal(
28 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}),
29 hana::size_c<0>),
30 MAKE_TUPLE(ct_eq<1>{})
31 ));
32 BOOST_HANA_CONSTANT_CHECK(hana::equal(
33 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}),
34 hana::size_c<1>),
35 MAKE_TUPLE(ct_eq<0>{})
36 ));
37
38 BOOST_HANA_CONSTANT_CHECK(hana::equal(
39 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}),
40 hana::size_c<0>),
41 MAKE_TUPLE(ct_eq<1>{}, ct_eq<2>{})
42 ));
43 BOOST_HANA_CONSTANT_CHECK(hana::equal(
44 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}),
45 hana::size_c<1>),
46 MAKE_TUPLE(ct_eq<0>{}, ct_eq<2>{})
47 ));
48 BOOST_HANA_CONSTANT_CHECK(hana::equal(
49 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}),
50 hana::size_c<2>),
51 MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{})
52 ));
53
54 BOOST_HANA_CONSTANT_CHECK(hana::equal(
55 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}),
56 hana::size_c<0>),
57 MAKE_TUPLE(ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{})
58 ));
59 BOOST_HANA_CONSTANT_CHECK(hana::equal(
60 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}),
61 hana::size_c<1>),
62 MAKE_TUPLE(ct_eq<0>{}, ct_eq<2>{}, ct_eq<3>{})
63 ));
64 BOOST_HANA_CONSTANT_CHECK(hana::equal(
65 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}),
66 hana::size_c<2>),
67 MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<3>{})
68 ));
69 BOOST_HANA_CONSTANT_CHECK(hana::equal(
70 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}),
71 hana::size_c<3>),
72 MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{})
73 ));
74
75 BOOST_HANA_CONSTANT_CHECK(hana::equal(
76 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{}),
77 hana::size_c<0>),
78 MAKE_TUPLE(ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{})
79 ));
80 BOOST_HANA_CONSTANT_CHECK(hana::equal(
81 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{}),
82 hana::size_c<1>),
83 MAKE_TUPLE(ct_eq<0>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{})
84 ));
85 BOOST_HANA_CONSTANT_CHECK(hana::equal(
86 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{}),
87 hana::size_c<2>),
88 MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<3>{}, ct_eq<4>{})
89 ));
90 BOOST_HANA_CONSTANT_CHECK(hana::equal(
91 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{}),
92 hana::size_c<3>),
93 MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<4>{})
94 ));
95 BOOST_HANA_CONSTANT_CHECK(hana::equal(
96 hana::remove_at(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}, ct_eq<4>{}),
97 hana::size_c<4>),
98 MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{})
99 ));
100
101 // remove_at_c
102 BOOST_HANA_CONSTANT_CHECK(hana::equal(
103 hana::remove_at_c<0>(MAKE_TUPLE(ct_eq<0>{})),
104 MAKE_TUPLE()
105 ));
106
107 BOOST_HANA_CONSTANT_CHECK(hana::equal(
108 hana::remove_at_c<0>(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{})),
109 MAKE_TUPLE(ct_eq<1>{})
110 ));
111 BOOST_HANA_CONSTANT_CHECK(hana::equal(
112 hana::remove_at_c<1>(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{})),
113 MAKE_TUPLE(ct_eq<0>{})
114 ));
115
116 BOOST_HANA_CONSTANT_CHECK(hana::equal(
117 hana::remove_at_c<0>(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{})),
118 MAKE_TUPLE(ct_eq<1>{}, ct_eq<2>{})
119 ));
120 BOOST_HANA_CONSTANT_CHECK(hana::equal(
121 hana::remove_at_c<1>(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{})),
122 MAKE_TUPLE(ct_eq<0>{}, ct_eq<2>{})
123 ));
124 BOOST_HANA_CONSTANT_CHECK(hana::equal(
125 hana::remove_at_c<2>(MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{}, ct_eq<2>{})),
126 MAKE_TUPLE(ct_eq<0>{}, ct_eq<1>{})
127 ));
128}};
129
130#endif // !BOOST_HANA_TEST_AUTO_REMOVE_AT_HPP