diff --git a/test/Jamfile b/test/Jamfile index 17470c92..f3eb7cde 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -48,8 +48,6 @@ compile-fail concepts_test.cpp ; run github_issue_426.cpp ; run github_issue_448.cpp ; run-fail github_issue_519.cpp ; -run ibm_abs.cpp ; -run ibm_add.cpp ; run link_1.cpp link_2.cpp link_3.cpp ; run quick.cpp ; run random_decimal32_comp.cpp ; diff --git a/test/ibm_abs.cpp b/test/ibm_abs.cpp deleted file mode 100644 index e0b43fe5..00000000 --- a/test/ibm_abs.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2023 Matt Borland -// Copyright (c) Mike Cowlishaw, 1981, 2010. -// Parts copyright (c) IBM Corporation, 1981, 2008. -// Distributed under the Boost Software License, Version 1.0. -// https://www.boost.org/LICENSE_1_0.txt -// -// Derived from: https://speleotrove.com/decimal/dectest.html - -#include -#include -#include - -template -void test() -{ - BOOST_TEST_EQ(abs(T(1)), T(1)); - BOOST_TEST_EQ(abs(T(-1)), T(1)); - BOOST_TEST_EQ(abs(T(1.00)), T(1.00)); - BOOST_TEST_EQ(abs(T(-1.00)), T(1.00)); - BOOST_TEST_EQ(abs(T(0)), T(0.0)); - BOOST_TEST_EQ(abs(T(-0.0)), T(0.0)); - BOOST_TEST_EQ(abs(T(2)), T(2)); - BOOST_TEST_EQ(abs(T(-2)), T(2)); - BOOST_TEST_EQ(abs(T(2.00)), T(2.00)); - BOOST_TEST_EQ(abs(T(-2.00)), T(2.00)); - BOOST_TEST_EQ(abs(T(2000000)), T(2000000)); - BOOST_TEST_EQ(abs(T(-2000000)), T(2000000)); - - BOOST_TEST_EQ(abs(T(0.1)), T(0.1)); - BOOST_TEST_EQ(abs(T(0.01)), T(0.01)); - BOOST_TEST_EQ(abs(T(0.001)), T(0.001)); - BOOST_TEST_EQ(abs(T(0.00001)), T(0.00001)); - BOOST_TEST_EQ(abs(T(0.000001)), T(0.000001)); - - BOOST_TEST_EQ(abs(T(-0.1)), T(0.1)); - BOOST_TEST_EQ(abs(T(-0.01)), T(0.01)); - BOOST_TEST_EQ(abs(T(-0.001)), T(0.001)); - BOOST_TEST_EQ(abs(T(-0.00001)), T(0.00001)); - BOOST_TEST_EQ(abs(T(-0.000001)), T(0.000001)); - BOOST_TEST_EQ(abs(T(-0.000000000000000000001)), T(1, -21)); - - BOOST_TEST_EQ(abs(T(2.1)), T(2.1)); - BOOST_TEST_EQ(abs(T(-100)), T(100)); - BOOST_TEST_EQ(abs(T(101.5)), T(101.5)); - BOOST_TEST_EQ(abs(T(-101.5)), T(101.5)); -} - -template -void overflow_underflow_subnormals() -{ - BOOST_DECIMAL_IF_CONSTEXPR (std::is_same::value) - { - BOOST_TEST(isinf(abs(T(9.999e+200)))); - BOOST_TEST_EQ(abs(T(0.1e-200)), T(0.0)); - BOOST_TEST_EQ(abs(T(-0.1e-200)), T(0.0)); - } - #if (BOOST_DECIMAL_LDBL_BITS > 64) - else BOOST_DECIMAL_IF_CONSTEXPR (std::is_same::value) - { - BOOST_TEST(isinf(abs(T(9.999e+999L)))); - BOOST_TEST_EQ(abs(T(0.1e-999L)), T(0.0L)); - BOOST_TEST_EQ(abs(T(-0.1e-999L)), T(0.0L)); - } - #endif -} - -template -void non_finitie_values() -{ - BOOST_TEST_EQ(abs(T(std::numeric_limits::infinity())), T(std::numeric_limits::infinity())); - BOOST_TEST(!signbit(abs(T(std::numeric_limits::quiet_NaN())))); - BOOST_TEST(!signbit(abs(T(-std::numeric_limits::quiet_NaN())))); - BOOST_TEST(!signbit(abs(T(std::numeric_limits::signaling_NaN())))); - BOOST_TEST(!signbit(abs(T(-std::numeric_limits::signaling_NaN())))); -} - - -int main() -{ - test(); - test(); - test(); - - overflow_underflow_subnormals(); - overflow_underflow_subnormals(); - overflow_underflow_subnormals(); - - non_finitie_values(); - non_finitie_values(); - non_finitie_values(); - - return boost::report_errors(); -} - diff --git a/test/ibm_add.cpp b/test/ibm_add.cpp deleted file mode 100644 index 1bef0572..00000000 --- a/test/ibm_add.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2023 Matt Borland -// Copyright (c) Mike Cowlishaw, 1981, 2010. -// Parts copyright (c) IBM Corporation, 1981, 2008. -// Distributed under the Boost Software License, Version 1.0. -// https://www.boost.org/LICENSE_1_0.txt -// -// Derived from: https://speleotrove.com/decimal/dectest.html - -#include -#include -#include -#include -#include - -template -void test() -{ - std::cerr << std::setprecision(std::numeric_limits::digits10); - - BOOST_TEST_EQ(T(1) + T(1), T(2)); - BOOST_TEST_EQ(T(2) + T(3), T(5)); - BOOST_TEST_EQ(T(5.75) + T(3.3), T(9.05)); - BOOST_TEST_EQ(T(5) + T(-2), T(3)); - BOOST_TEST_EQ(T(-5) + T(-3), T(-8)); - BOOST_TEST_EQ(T(-7) + T(2.5), T(-4.5)); - BOOST_TEST_EQ(T(0.7) + T(0.3), T(1.0)); - BOOST_TEST_EQ(T(1.25) + T(1.25), T(2.50)); - BOOST_TEST_EQ(T(1.23456789) + T(1.000000000), T(2.23456789)); - BOOST_TEST_EQ(T(1.23456) + T(1.00044), T(2.23500)); -} - -template -void test_inexact() -{ - BOOST_TEST_EQ(T(0.444444444444444444444) + T(0.5555555555555555555555), T(1.00000000000000000)); - BOOST_TEST_EQ(T(0.444444444444444444449) + T(0.0), T(0.4444444444444444444444)); - BOOST_TEST_EQ(T(0.4444444444444444444499) + T(0.0), T(0.4444444444444444444444)); - BOOST_TEST_EQ(T(0.44444444444444444444999) + T(0.0), T(0.4444444444444444444444)); - - BOOST_DECIMAL_IF_CONSTEXPR (std::is_same::value) - { - BOOST_TEST_EQ(T(0.4444449) + T(0.0), T(0.4444449)); - BOOST_TEST_EQ(T(0.4444449) + T(0.0000001), T(0.4444450)); - BOOST_TEST_EQ(T(0.4444449) + T(0.00000009), T(0.4444450)); - } - -} - -int main() -{ - test(); - test(); - test(); - - test_inexact(); - test_inexact(); - test_inexact(); - - return boost::report_errors(); -} -