// Boost.Geometry // Unit Test // Copyright (c) 2022 Barend Gehrels, Amsterdam, the Netherlands. // Use, modification and distribution is subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include #include namespace bgm = bg::math; template void test_integer() { BOOST_CHECK_EQUAL(0, bgm::divide(0, 2)); BOOST_CHECK_EQUAL(1, bgm::divide(1, 2)); BOOST_CHECK_EQUAL(-1, bgm::divide(-1, 2)); BOOST_CHECK_EQUAL(-1, bgm::divide(1, -2)); BOOST_CHECK_EQUAL(1, bgm::divide(-1, -2)); BOOST_CHECK_EQUAL(2, bgm::divide(4, 2)); BOOST_CHECK_EQUAL(3, bgm::divide(5, 2)); BOOST_CHECK_EQUAL(9, bgm::divide(94, 10)); BOOST_CHECK_EQUAL(10, bgm::divide(95, 10)); BOOST_CHECK_EQUAL(10, bgm::divide(99, 10)); BOOST_CHECK_EQUAL(-9, bgm::divide(94, -10)); BOOST_CHECK_EQUAL(-10, bgm::divide(95, -10)); BOOST_CHECK_EQUAL(-10, bgm::divide(99, -10)); BOOST_CHECK_EQUAL(-9, bgm::divide(-94, 10)); BOOST_CHECK_EQUAL(-10, bgm::divide(-95, 10)); BOOST_CHECK_EQUAL(-10, bgm::divide(-99, 10)); BOOST_CHECK_EQUAL(9, bgm::divide(-94, -10)); BOOST_CHECK_EQUAL(10, bgm::divide(-95, -10)); BOOST_CHECK_EQUAL(10, bgm::divide(-99, -10)); BOOST_CHECK_EQUAL(5, bgm::divide(4567, 1000)); } template void test_floating_point() { constexpr double eps = 1.0e-6; BOOST_CHECK_CLOSE(4.567, bgm::divide(4567, 1000), eps); } int test_main(int, char* []) { test_integer(); test_floating_point(); return 0; }