Fix default formatting

This commit is contained in:
Victor Zverovich 2018-12-09 19:18:27 -08:00
parent 24594c747e
commit b180b39152
2 changed files with 4 additions and 4 deletions

View File

@ -389,8 +389,8 @@ struct formatter<std::chrono::duration<Rep, Period>, Char> {
if (const char *unit = get_units<Period>())
return format_to(ctx.out(), "{}{}", d.count(), unit);
if (Period::den == 1)
return format_to(ctx.out(), "{}[{}s]", d.count(), Period::num);
return format_to(ctx.out(), "{}[{}/{}s]",
return format_to(ctx.out(), "{}[{}]s", d.count(), Period::num);
return format_to(ctx.out(), "{}[{}/{}]s",
d.count(), Period::num, Period::den);
}
internal::chrono_formatter<FormatContext> f(ctx);

View File

@ -83,10 +83,10 @@ TEST(ChronoTest, FormatDefault) {
fmt::format("{}", std::chrono::duration<int, std::exa>(42)));
EXPECT_EQ("42m", fmt::format("{}", std::chrono::minutes(42)));
EXPECT_EQ("42h", fmt::format("{}", std::chrono::hours(42)));
EXPECT_EQ("42[15s]",
EXPECT_EQ("42[15]s",
fmt::format("{}",
std::chrono::duration<int, std::ratio<15, 1>>(42)));
EXPECT_EQ("42[15/4s]",
EXPECT_EQ("42[15/4]s",
fmt::format("{}",
std::chrono::duration<int, std::ratio<15, 4>>(42)));
}