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