]>
Commit | Line | Data |
---|---|---|
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 | #include <boost/hana/assert.hpp> | |
6 | #include <boost/hana/equal.hpp> | |
7 | #include <boost/hana/functional/reverse_partial.hpp> | |
8 | ||
9 | #include <laws/base.hpp> | |
10 | namespace hana = boost::hana; | |
11 | using hana::test::ct_eq; | |
12 | ||
13 | ||
14 | int main() { | |
15 | constexpr auto rp = hana::reverse_partial; | |
16 | hana::test::_injection<0> f{}; | |
17 | ||
18 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
19 | rp(f)(), | |
20 | f() | |
21 | )); | |
22 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
23 | rp(f)(ct_eq<1>{}), | |
24 | f(ct_eq<1>{}) | |
25 | )); | |
26 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
27 | rp(f)(ct_eq<1>{}, ct_eq<2>{}), | |
28 | f(ct_eq<1>{}, ct_eq<2>{}) | |
29 | )); | |
30 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
31 | rp(f)(ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}), | |
32 | f(ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}) | |
33 | )); | |
34 | ||
35 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
36 | rp(f, ct_eq<1>{})(), | |
37 | f(ct_eq<1>{}) | |
38 | )); | |
39 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
40 | rp(f, ct_eq<1>{})(ct_eq<2>{}), | |
41 | f(ct_eq<2>{}, ct_eq<1>{}) | |
42 | )); | |
43 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
44 | rp(f, ct_eq<1>{})(ct_eq<2>{}, ct_eq<3>{}), | |
45 | f(ct_eq<2>{}, ct_eq<3>{}, ct_eq<1>{}) | |
46 | )); | |
47 | ||
48 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
49 | rp(f, ct_eq<1>{}, ct_eq<2>{})(), | |
50 | f(ct_eq<1>{}, ct_eq<2>{}) | |
51 | )); | |
52 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
53 | rp(f, ct_eq<1>{}, ct_eq<2>{})(ct_eq<3>{}), | |
54 | f(ct_eq<3>{}, ct_eq<1>{}, ct_eq<2>{}) | |
55 | )); | |
56 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
57 | rp(f, ct_eq<1>{}, ct_eq<2>{})(ct_eq<3>{}, ct_eq<4>{}), | |
58 | f(ct_eq<3>{}, ct_eq<4>{}, ct_eq<1>{}, ct_eq<2>{}) | |
59 | )); | |
60 | ||
61 | BOOST_HANA_CONSTANT_CHECK(hana::equal( | |
62 | rp(f, ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{})(), | |
63 | f(ct_eq<1>{}, ct_eq<2>{}, ct_eq<3>{}) | |
64 | )); | |
65 | } |