diff --git a/doc/decimal/cmath.adoc b/doc/decimal/cmath.adoc index ea8c0e349..5fef1661a 100644 --- a/doc/decimal/cmath.adoc +++ b/doc/decimal/cmath.adoc @@ -459,13 +459,13 @@ constexpr boost::decimal::detail::uint128 frexpd128(decimal128 num, int* expptr) This function is very similar to https://en.cppreference.com/w/cpp/numeric/math/frexp[frexp], but returns the significand and an integral power of 10 since the `FLT_RADIX` of this type is 10. The significand is normalized to the number of digits of precision the type has (e.g. for decimal32 it is [1'000'000, 9'999'999]). -=== trunc_to +=== rescale [source, c++] ---- template -constexpr Decimal trunc_to(Decimal val, int precision = 0); +constexpr Decimal rescale(Decimal val, int precision = 0); ---- The function returns the decimal type with number of fractional digits equal to the value of precision. -`trunc_to` is similar to https://en.cppreference.com/w/cpp/numeric/math/trunc[trunc], and with the default precision argument of 0 it is identical. +`rescale` is similar to https://en.cppreference.com/w/cpp/numeric/math/trunc[trunc], and with the default precision argument of 0 it is identical. diff --git a/include/boost/decimal/cmath.hpp b/include/boost/decimal/cmath.hpp index 922a16f5f..7dc1c7e00 100644 --- a/include/boost/decimal/cmath.hpp +++ b/include/boost/decimal/cmath.hpp @@ -71,7 +71,7 @@ #include #include #include -#include +#include #include #include diff --git a/include/boost/decimal/detail/cmath/trunc_to.hpp b/include/boost/decimal/detail/cmath/rescale.hpp similarity index 79% rename from include/boost/decimal/detail/cmath/trunc_to.hpp rename to include/boost/decimal/detail/cmath/rescale.hpp index 91aa90779..323ef2a36 100644 --- a/include/boost/decimal/detail/cmath/trunc_to.hpp +++ b/include/boost/decimal/detail/cmath/rescale.hpp @@ -1,9 +1,9 @@ -// Copyright 2024 Matt Borland +// Copyright 2025 Matt Borland // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt -#ifndef BOOST_DECIMAL_DETAIL_CMATH_TRUNC_TO_HPP -#define BOOST_DECIMAL_DETAIL_CMATH_TRUNC_TO_HPP +#ifndef BOOST_DECIMAL_DETAIL_CMATH_RESCALE_HPP +#define BOOST_DECIMAL_DETAIL_CMATH_RESCALE_HPP #include #include @@ -24,7 +24,7 @@ namespace boost { namespace decimal { BOOST_DECIMAL_EXPORT template -constexpr auto trunc_to(T val, int precision = 0) noexcept +constexpr auto rescale(T val, int precision = 0) noexcept BOOST_DECIMAL_REQUIRES(detail::is_decimal_floating_point_v, T) { constexpr auto biggest_val {1 / std::numeric_limits::epsilon()}; @@ -64,8 +64,15 @@ constexpr auto trunc_to(T val, int precision = 0) noexcept return {sig, exp, isneg}; } +BOOST_DECIMAL_EXPORT template +[[deprecated("Renamed to rescale to match existing literature")]] +constexpr auto trunc_to(T val, int precision = 0) noexcept + BOOST_DECIMAL_REQUIRES(detail::is_decimal_floating_point_v, T) +{ + return rescale(val, precision); +} } // namespace decimal } // namespace boost -#endif //BOOST_DECIMAL_DETAIL_CMATH_TRUNC_TO_HPP +#endif //BOOST_DECIMAL_DETAIL_CMATH_RESCALE_HPP diff --git a/test/cover/make_gcov_01_generic.gmk b/test/cover/make_gcov_01_generic.gmk index b2fda69b0..6e121fb8d 100644 --- a/test/cover/make_gcov_01_generic.gmk +++ b/test/cover/make_gcov_01_generic.gmk @@ -63,7 +63,7 @@ gcov: objects @$(GNUECHO) @$(GNUECHO) +++ running lcov @$(LCOV) $(LCOV_BRANCH) -c --directory obj --output-file coverage_unfiltered.info - @$(LCOV) $(LCOV_BRANCH) --remove coverage_unfiltered.info $(LCOV_REMOVES) --output-file coverage.info + @$(LCOV) $(LCOV_BRANCH) --remove coverage_unfiltered.info $(LCOV_REMOVES) --ignore-errors unused --output-file coverage.info @$(GNUECHO) @$(GNUECHO) +++ running genhtml @$(GENHTML) coverage.info $(LCOV_BRANCH) --demangle-cpp --output-directory $(PATH_BIN)/report diff --git a/test/cover/make_gcov_03_flags.gmk b/test/cover/make_gcov_03_flags.gmk index 7605ad964..672265fa7 100644 --- a/test/cover/make_gcov_03_flags.gmk +++ b/test/cover/make_gcov_03_flags.gmk @@ -33,7 +33,8 @@ CXXFLAGS = -march=native \ -Wall \ -fno-inline-functions \ -fprofile-arcs \ - -ftest-coverage + -ftest-coverage \ + -std=$(STD) C_DEFINES = diff --git a/test/random_decimal128_fast_math.cpp b/test/random_decimal128_fast_math.cpp index d7a41955f..2dffcf3f1 100644 --- a/test/random_decimal128_fast_math.cpp +++ b/test/random_decimal128_fast_math.cpp @@ -435,447 +435,6 @@ void random_mixed_division(T lower, T upper) BOOST_TEST(isinf(decimal128_fast(dist(rng)) / 0 * dist(rng))); BOOST_TEST(isinf(val1 / zero)); } -/* -void random_and() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 & dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_and() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 & val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {val1 & dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_START - } - } -} - -void random_or() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 | dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_or() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 | val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {val1 | dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_xor() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 ^ dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_xor() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 ^ val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {val1 ^ dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_left_shift() -{ - std::uniform_int_distribution dist(0, 10); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 << dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_left_shift() -{ - std::uniform_int_distribution dist(0, 10); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 << val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {val1 << dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_right_shift() -{ - std::uniform_int_distribution dist(0, 10); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 >> dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_right_shift() -{ - std::uniform_int_distribution dist(0, 10); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal128_fast res {dec1 >> val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal128_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal128_fast res {val1 >> dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} -*/ int main() { @@ -974,19 +533,6 @@ int main() spot_check_sub(562, 998980); spot_check_sub(-954783, 746); spot_check_sub(513479119LL, 972535711690LL); - /* - // Bitwise operators - random_and(); - random_mixed_and(); - random_or(); - random_mixed_or(); - random_xor(); - random_mixed_xor(); - random_left_shift(); - random_mixed_left_shift(); - random_right_shift(); - random_mixed_right_shift(); - */ spot_check_mul(27625, 2977); diff --git a/test/random_decimal32_fast_math.cpp b/test/random_decimal32_fast_math.cpp index 6d959dcd4..7a1070cff 100644 --- a/test/random_decimal32_fast_math.cpp +++ b/test/random_decimal32_fast_math.cpp @@ -424,448 +424,6 @@ void random_mixed_division(T lower, T upper) BOOST_TEST(isinf(val1 / zero)); } -/* -void random_and() -{ - std::uniform_int_distribution dist(0, 9'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 & dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_and() -{ - std::uniform_int_distribution dist(0, 9'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 & val2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {val1 & dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_or() -{ - std::uniform_int_distribution dist(0, 9'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 | dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_or() -{ - std::uniform_int_distribution dist(0, 9'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 | val2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {val1 | dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_xor() -{ - std::uniform_int_distribution dist(0, 9'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 ^ dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_xor() -{ - std::uniform_int_distribution dist(0, 9'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 ^ val2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {val1 ^ dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_left_shift() -{ - std::uniform_int_distribution dist(0, 5); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 << dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_left_shift() -{ - std::uniform_int_distribution dist(0, 5); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 << val2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {val1 << dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_right_shift() -{ - std::uniform_int_distribution dist(0, 5); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 >> dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_right_shift() -{ - std::uniform_int_distribution dist(0, 5); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint32_t)); - - const decimal32_fast res {dec1 >> val2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal32_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint32_t)); - - const decimal32_fast res {val1 >> dec2}; - std::uint32_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint32_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} -*/ - int main() { // Values that won't exceed the range of the significand @@ -983,20 +541,6 @@ int main() random_mixed_division(-5'000LL, 5'000LL); random_mixed_division(-sqrt_int_max, sqrt_int_max); - /* - // Bitwise operators - random_and(); - random_mixed_and(); - random_or(); - random_mixed_or(); - random_xor(); - random_mixed_xor(); - random_left_shift(); - random_mixed_left_shift(); - random_right_shift(); - random_mixed_right_shift(); - */ - return boost::report_errors(); } diff --git a/test/random_decimal64_fast_math.cpp b/test/random_decimal64_fast_math.cpp index 3ac32a537..c9ed61f3d 100644 --- a/test/random_decimal64_fast_math.cpp +++ b/test/random_decimal64_fast_math.cpp @@ -414,447 +414,6 @@ void random_mixed_division(T lower, T upper) BOOST_TEST(isinf(decimal64_fast(dist(rng)) / 0)); BOOST_TEST(isinf(val1 / zero)); } -/* -void random_and() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 & dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_and() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 & val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {val1 & dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 & val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_START - } - } -} - -void random_or() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 | dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_or() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 | val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {val1 | dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 | val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_xor() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 ^ dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_xor() -{ - std::uniform_int_distribution dist(0, 9'999'999'999'999'999); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 ^ val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {val1 ^ dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 ^ val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_left_shift() -{ - std::uniform_int_distribution dist(0, 10); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 << dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_left_shift() -{ - std::uniform_int_distribution dist(0, 10); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 << val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {val1 << dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 << val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_right_shift() -{ - std::uniform_int_distribution dist(0, 10); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 >> dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} - -void random_mixed_right_shift() -{ - std::uniform_int_distribution dist(0, 10); - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec1 {}; - std::memcpy(&dec1, &val1, sizeof(std::uint64_t)); - - const decimal64_fast res {dec1 >> val2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nDec 1: " << dec1 - << "\nVal 2: " << val2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } - - for (std::size_t i {}; i < N; ++i) - { - const auto val1 {dist(rng)}; - const auto val2 {dist(rng)}; - - decimal64_fast dec2 {}; - std::memcpy(&dec2, &val2, sizeof(std::uint64_t)); - - const decimal64_fast res {val1 >> dec2}; - std::uint64_t dec_int {}; - std::memcpy(&dec_int, &res, sizeof(std::uint64_t)); - const auto res_int {val1 >> val2}; - - if (!BOOST_TEST_EQ(dec_int, res_int)) - { - // LCOV_EXCL_START - std::cerr << "Val 1: " << val1 - << "\nVal 2: " << val2 - << "\nDec 2: " << dec2 - << "\nDec res: " << res - << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_STOP - } - } -} -*/ int main() { @@ -954,20 +513,6 @@ int main() spot_check_sub(-954783, 746); spot_check_sub(513479119LL, 972535711690LL); - /* - // Bitwise operators - random_and(); - random_mixed_and(); - random_or(); - random_mixed_or(); - random_xor(); - random_mixed_xor(); - random_left_shift(); - random_mixed_left_shift(); - random_right_shift(); - random_mixed_right_shift(); - */ - return boost::report_errors(); } diff --git a/test/random_decimal64_math.cpp b/test/random_decimal64_math.cpp index 2b5839c53..a6b3aaff2 100644 --- a/test/random_decimal64_math.cpp +++ b/test/random_decimal64_math.cpp @@ -497,7 +497,7 @@ void random_mixed_and() << "\nDec 2: " << dec2 << "\nDec res: " << res << "\nInt res: " << res_int << std::endl; - // LCOV_EXCL_START + // LCOV_EXCL_STOP } } } diff --git a/test/test_fixed_width_trunc.cpp b/test/test_fixed_width_trunc.cpp index b43f32134..482fa568e 100644 --- a/test/test_fixed_width_trunc.cpp +++ b/test/test_fixed_width_trunc.cpp @@ -20,30 +20,30 @@ void test() constexpr T validation_val_6 {UINT32_C(123457), 1}; constexpr T validation_val_7 {test_val}; - BOOST_TEST_EQ(trunc_to(test_val, 0), trunc_to(test_val)); - BOOST_TEST_EQ(trunc_to(test_val, 1), validation_val_1); - BOOST_TEST_EQ(trunc_to(test_val, 2), validation_val_2); - BOOST_TEST_EQ(trunc_to(test_val, 3), validation_val_3); - BOOST_TEST_EQ(trunc_to(test_val, 4), validation_val_4); - BOOST_TEST_EQ(trunc_to(test_val, 5), validation_val_5); - BOOST_TEST_EQ(trunc_to(test_val, 6), validation_val_6); - BOOST_TEST_EQ(trunc_to(test_val, 7), validation_val_7); - BOOST_TEST_EQ(trunc_to(test_val, 100), test_val); + BOOST_TEST_EQ(rescale(test_val, 0), rescale(test_val)); + BOOST_TEST_EQ(rescale(test_val, 1), validation_val_1); + BOOST_TEST_EQ(rescale(test_val, 2), validation_val_2); + BOOST_TEST_EQ(rescale(test_val, 3), validation_val_3); + BOOST_TEST_EQ(rescale(test_val, 4), validation_val_4); + BOOST_TEST_EQ(rescale(test_val, 5), validation_val_5); + BOOST_TEST_EQ(rescale(test_val, 6), validation_val_6); + BOOST_TEST_EQ(rescale(test_val, 7), validation_val_7); + BOOST_TEST_EQ(rescale(test_val, 100), test_val); // Non-finite values for (int i = 0; i < 10; ++i) { - BOOST_TEST(isinf(trunc_to(std::numeric_limits::infinity(), i))); - BOOST_TEST(isnan(trunc_to(std::numeric_limits::quiet_NaN(), i))); - BOOST_TEST(isnan(trunc_to(std::numeric_limits::signaling_NaN(), i))); - BOOST_TEST_EQ(trunc_to(T{0}, i), T{0}); + BOOST_TEST(isinf(rescale(std::numeric_limits::infinity(), i))); + BOOST_TEST(isnan(rescale(std::numeric_limits::quiet_NaN(), i))); + BOOST_TEST(isnan(rescale(std::numeric_limits::signaling_NaN(), i))); + BOOST_TEST_EQ(rescale(T{0}, i), T{0}); } // Big value constexpr T big_val {1, 20}; for (int i = 0; i < 10; ++i) { - BOOST_TEST_EQ(trunc_to(big_val, i), big_val); + BOOST_TEST_EQ(rescale(big_val, i), big_val); } }