X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fboost%2Flibs%2Fmultiprecision%2Ftest%2Fgit_issue_426.cpp;fp=ceph%2Fsrc%2Fboost%2Flibs%2Fmultiprecision%2Ftest%2Fgit_issue_426.cpp;h=a905b97b76a693d7ad9e9f6014661343614e0cf1;hb=1e59de90020f1d8d374046ef9cca56ccd4e806e2;hp=0000000000000000000000000000000000000000;hpb=bd41e436e25044e8e83156060a37c23cb661c364;p=ceph.git diff --git a/ceph/src/boost/libs/multiprecision/test/git_issue_426.cpp b/ceph/src/boost/libs/multiprecision/test/git_issue_426.cpp new file mode 100644 index 000000000..a905b97b7 --- /dev/null +++ b/ceph/src/boost/libs/multiprecision/test/git_issue_426.cpp @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////////// +// 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(); +} + +