Ignore zero-padding for non-finite floating points (#2310)

* Ignore zero-padding for non-finite floating points

* keep width for non-finite formatting with 0-padding

* clang-format

* preserve alignment

* align code-style
This commit is contained in:
Liedtke
2021-05-27 23:13:05 +02:00
committed by GitHub
parent 7612f18dc8
commit a70a4ae053
3 changed files with 19 additions and 4 deletions

View File

@@ -1272,10 +1272,16 @@ TEST(format_test, format_nan) {
double nan = std::numeric_limits<double>::quiet_NaN();
EXPECT_EQ("nan", fmt::format("{}", nan));
EXPECT_EQ("+nan", fmt::format("{:+}", nan));
if (std::signbit(-nan))
EXPECT_EQ(" +nan", fmt::format("{:+06}", nan));
EXPECT_EQ("+nan ", fmt::format("{:<+06}", nan));
EXPECT_EQ(" +nan ", fmt::format("{:^+06}", nan));
EXPECT_EQ(" +nan", fmt::format("{:>+06}", nan));
if (std::signbit(-nan)) {
EXPECT_EQ("-nan", fmt::format("{}", -nan));
else
EXPECT_EQ(" -nan", fmt::format("{:+06}", -nan));
} else {
fmt::print("Warning: compiler doesn't handle negative NaN correctly");
}
EXPECT_EQ(" nan", fmt::format("{: }", nan));
EXPECT_EQ("NAN", fmt::format("{:F}", nan));
EXPECT_EQ("nan ", fmt::format("{:<7}", nan));
@@ -1288,6 +1294,11 @@ TEST(format_test, format_infinity) {
EXPECT_EQ("inf", fmt::format("{}", inf));
EXPECT_EQ("+inf", fmt::format("{:+}", inf));
EXPECT_EQ("-inf", fmt::format("{}", -inf));
EXPECT_EQ(" +inf", fmt::format("{:+06}", inf));
EXPECT_EQ(" -inf", fmt::format("{:+06}", -inf));
EXPECT_EQ("+inf ", fmt::format("{:<+06}", inf));
EXPECT_EQ(" +inf ", fmt::format("{:^+06}", inf));
EXPECT_EQ(" +inf", fmt::format("{:>+06}", inf));
EXPECT_EQ(" inf", fmt::format("{: }", inf));
EXPECT_EQ("INF", fmt::format("{:F}", inf));
EXPECT_EQ("inf ", fmt::format("{:<7}", inf));