]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/algorithm/test/power_test.cpp
2 Copyright (c) Marshall Clow 2014.
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 For more information, see http://www.boost.org
13 #include <boost/config.hpp>
14 #include <boost/algorithm/algorithm.hpp>
16 #define BOOST_TEST_MAIN
17 #include <boost/test/unit_test.hpp>
19 namespace ba
= boost::algorithm
;
23 BOOST_CHECK ( ba::power(0, 0) == 1);
24 BOOST_CHECK ( ba::power(5, 0) == 1);
25 BOOST_CHECK ( ba::power(1, 1) == 1);
26 BOOST_CHECK ( ba::power(1, 4) == 1);
27 BOOST_CHECK ( ba::power(3, 2) == 9);
28 BOOST_CHECK ( ba::power(2, 3) == 8);
29 BOOST_CHECK ( ba::power(3, 3) == 27);
30 BOOST_CHECK ( ba::power(2, 30) == 0x40000000);
31 BOOST_CHECK ( ba::power(5L, 10) == 3125*3125);
32 BOOST_CHECK ( ba::power(18, 3) == 18*18*18);
34 BOOST_CHECK ( ba::power(3,2) == ba::power(3,2, std::multiplies
<int>()));
35 BOOST_CHECK ( ba::power(3,2, std::plus
<int>()) == 6);
39 void test_power_constexpr ()
41 BOOST_CXX14_CONSTEXPR
bool check_zero_power1
=
43 BOOST_CHECK(check_zero_power1
);
44 BOOST_CXX14_CONSTEXPR
bool check_zero_power2
=
46 BOOST_CHECK(check_zero_power2
);
47 BOOST_CXX14_CONSTEXPR
bool check_one_base1
=
49 BOOST_CHECK(check_one_base1
);
50 BOOST_CXX14_CONSTEXPR
bool check_one_base2
=
52 BOOST_CHECK(check_one_base2
);
53 BOOST_CXX14_CONSTEXPR
bool check_power1
=
55 BOOST_CHECK(check_power1
);
56 BOOST_CXX14_CONSTEXPR
bool check_power2
=
58 BOOST_CHECK(check_power2
);
59 BOOST_CXX14_CONSTEXPR
bool check_power3
=
60 ba::power(3, 3) == 27;
61 BOOST_CHECK(check_power3
);
62 BOOST_CXX14_CONSTEXPR
bool check_power4
=
63 ba::power(2, 30) == 0x40000000;
64 BOOST_CHECK(check_power4
);
65 BOOST_CXX14_CONSTEXPR
bool check_power5
=
66 ba::power(5L, 10) == 3125*3125;
67 BOOST_CHECK(check_power5
);
68 BOOST_CXX14_CONSTEXPR
bool check_power6
=
69 ba::power(18, 3) == 18*18*18;
70 BOOST_CHECK(check_power6
);
72 BOOST_CXX14_CONSTEXPR
bool check_multiple
=
73 ba::power(3, 2, std::multiplies
<int>()) == ba::power(3, 2);
74 BOOST_CHECK(check_multiple
);
75 BOOST_CXX14_CONSTEXPR
bool check_plus
=
76 ba::power(3, 2, std::plus
<int>()) == 6;
77 BOOST_CHECK(check_plus
);
81 BOOST_AUTO_TEST_CASE( test_main
) {
83 test_power_constexpr ();