/////////////////////////////////////////////////////////////////////////////// // Copyright 2019 John Maddock. Distributed under 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 #ifdef TEST_MPFR #include #endif #ifdef TEST_FLOAT128 #include #endif #include "test.hpp" template void test() { T d = 360; for (int i = 2; i >= -2; --i) { T x = i * d; T y = remainder(x, d); if (y == 0) BOOST_CHECK_EQUAL(signbit(y), signbit(x)); if (i == 0) { x = -x; y = remainder(x, d); if (y == 0) BOOST_CHECK_EQUAL(signbit(y), signbit(x)); } } } int main() { test(); // No signed zero: //test(); //test(); #ifdef TEST_MPFR test(); #endif #ifdef TEST_FLOAT128 test(); #endif return boost::report_errors(); }