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