Skip to content

Commit

Permalink
Make hex float test more stable (#3434)
Browse files Browse the repository at this point in the history
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
  • Loading branch information
phprus authored May 13, 2023
1 parent e82bf41 commit eaa6307
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions test/format-test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1355,12 +1355,9 @@ TEST(format_test, format_double) {

if (std::numeric_limits<long double>::digits == 64) {
auto ld = 0xf.ffffffffffp-3l;
safe_sprintf(buffer, "%La", ld);
EXPECT_EQ(fmt::format("{:a}", ld), buffer);
safe_sprintf(buffer, "%.*La", 10, ld);
EXPECT_EQ(fmt::format("{:.10a}", ld), buffer);
safe_sprintf(buffer, "%.*La", 9, ld);
EXPECT_EQ(fmt::format("{:.9a}", ld), buffer);
EXPECT_EQ(fmt::format("{:a}", ld), "0xf.ffffffffffp-3");
EXPECT_EQ(fmt::format("{:.10a}", ld), "0xf.ffffffffffp-3");
EXPECT_EQ(fmt::format("{:.9a}", ld), "0x1.000000000p+1");
}
#endif

Expand All @@ -1379,12 +1376,10 @@ TEST(format_test, format_double) {

if (std::numeric_limits<long double>::digits == 64) {
auto ld = (std::numeric_limits<long double>::min)();
safe_sprintf(buffer, "%La", ld);
EXPECT_EQ(fmt::format("{:a}", ld), buffer);
EXPECT_EQ(fmt::format("{:a}", ld), "0x8p-16385");

ld = (std::numeric_limits<long double>::max)();
safe_sprintf(buffer, "%La", ld);
EXPECT_EQ(fmt::format("{:a}", ld), buffer);
EXPECT_EQ(fmt::format("{:a}", ld), "0xf.fffffffffffffffp+16380");

ld = std::numeric_limits<long double>::denorm_min();
EXPECT_EQ(fmt::format("{:a}", ld), "0x0.000000000000001p-16382");
Expand Down Expand Up @@ -1494,9 +1489,8 @@ TEST(format_test, format_long_double) {
if (fmt::detail::is_double_double<decltype(ld)>::value) {
safe_sprintf(buffer, "%a", static_cast<double>(ld));
EXPECT_EQ(buffer, fmt::format("{:a}", ld));
} else {
safe_sprintf(buffer, "%La", ld);
EXPECT_EQ(buffer, fmt::format("{:a}", ld));
} else if (std::numeric_limits<long double>::digits == 64) {
EXPECT_EQ(fmt::format("{:a}", ld), "0xd.3d70a3d70a3d70ap-2");
}
}

Expand Down

0 comments on commit eaa6307

Please sign in to comment.