]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/test/util/math_divide.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / geometry / test / util / math_divide.cpp
1 // Boost.Geometry
2 // Unit Test
3
4 // Copyright (c) 2022 Barend Gehrels, Amsterdam, the Netherlands.
5
6 // Use, modification and distribution is subject to the Boost Software License,
7 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
9
10
11 #include <geometry_test_common.hpp>
12
13 #include <boost/geometry/util/math.hpp>
14
15 namespace bgm = bg::math;
16
17 template <typename T>
18 void test_integer()
19 {
20 BOOST_CHECK_EQUAL(0, bgm::divide<T>(0, 2));
21
22 BOOST_CHECK_EQUAL(1, bgm::divide<T>(1, 2));
23 BOOST_CHECK_EQUAL(-1, bgm::divide<T>(-1, 2));
24 BOOST_CHECK_EQUAL(-1, bgm::divide<T>(1, -2));
25 BOOST_CHECK_EQUAL(1, bgm::divide<T>(-1, -2));
26
27 BOOST_CHECK_EQUAL(2, bgm::divide<T>(4, 2));
28 BOOST_CHECK_EQUAL(3, bgm::divide<T>(5, 2));
29
30 BOOST_CHECK_EQUAL(9, bgm::divide<T>(94, 10));
31 BOOST_CHECK_EQUAL(10, bgm::divide<T>(95, 10));
32 BOOST_CHECK_EQUAL(10, bgm::divide<T>(99, 10));
33
34 BOOST_CHECK_EQUAL(-9, bgm::divide<T>(94, -10));
35 BOOST_CHECK_EQUAL(-10, bgm::divide<T>(95, -10));
36 BOOST_CHECK_EQUAL(-10, bgm::divide<T>(99, -10));
37
38 BOOST_CHECK_EQUAL(-9, bgm::divide<T>(-94, 10));
39 BOOST_CHECK_EQUAL(-10, bgm::divide<T>(-95, 10));
40 BOOST_CHECK_EQUAL(-10, bgm::divide<T>(-99, 10));
41
42 BOOST_CHECK_EQUAL(9, bgm::divide<T>(-94, -10));
43 BOOST_CHECK_EQUAL(10, bgm::divide<T>(-95, -10));
44 BOOST_CHECK_EQUAL(10, bgm::divide<T>(-99, -10));
45
46 BOOST_CHECK_EQUAL(5, bgm::divide<T>(4567, 1000));
47 }
48
49 template <typename T>
50 void test_floating_point()
51 {
52 constexpr double eps = 1.0e-6;
53 BOOST_CHECK_CLOSE(4.567, bgm::divide<T>(4567, 1000), eps);
54 }
55
56 int test_main(int, char* [])
57 {
58 test_integer<int>();
59 test_floating_point<double>();
60
61 return 0;
62 }