mirror of
				https://github.com/fmtlib/fmt.git
				synced 2025-11-03 23:51:41 +01:00 
			
		
		
		
	Support fill, align & width for time point (#3260)
This commit is contained in:
		@@ -462,7 +462,7 @@ TEST(chrono_test, format_default) {
 | 
			
		||||
      fmt::format("{}", std::chrono::duration<int, std::ratio<15, 4>>(42)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(chrono_test, align) {
 | 
			
		||||
TEST(chrono_test, duration_align) {
 | 
			
		||||
  auto s = std::chrono::seconds(42);
 | 
			
		||||
  EXPECT_EQ("42s  ", fmt::format("{:5}", s));
 | 
			
		||||
  EXPECT_EQ("42s  ", fmt::format("{:{}}", s, 5));
 | 
			
		||||
@@ -478,6 +478,35 @@ TEST(chrono_test, align) {
 | 
			
		||||
            fmt::format("{:{}%H:%M:%S}", std::chrono::seconds(12345), 12));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(chrono_test, tm_align) {
 | 
			
		||||
  auto t = make_tm(1975, 12, 29, 12, 14, 16);
 | 
			
		||||
  EXPECT_EQ("1975-12-29 12:14:16", fmt::format("{:%F %T}", t));
 | 
			
		||||
  EXPECT_EQ("1975-12-29 12:14:16           ", fmt::format("{:30%F %T}", t));
 | 
			
		||||
  EXPECT_EQ("1975-12-29 12:14:16           ", fmt::format("{:{}%F %T}", t, 30));
 | 
			
		||||
  EXPECT_EQ("1975-12-29 12:14:16           ", fmt::format("{:<30%F %T}", t));
 | 
			
		||||
  EXPECT_EQ("     1975-12-29 12:14:16      ", fmt::format("{:^30%F %T}", t));
 | 
			
		||||
  EXPECT_EQ("           1975-12-29 12:14:16", fmt::format("{:>30%F %T}", t));
 | 
			
		||||
 | 
			
		||||
  EXPECT_EQ("1975-12-29 12:14:16***********", fmt::format("{:*<30%F %T}", t));
 | 
			
		||||
  EXPECT_EQ("*****1975-12-29 12:14:16******", fmt::format("{:*^30%F %T}", t));
 | 
			
		||||
  EXPECT_EQ("***********1975-12-29 12:14:16", fmt::format("{:*>30%F %T}", t));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(chrono_test, tp_align) {
 | 
			
		||||
  auto tp = std::chrono::time_point_cast<std::chrono::microseconds>(
 | 
			
		||||
      std::chrono::system_clock::from_time_t(0));
 | 
			
		||||
  EXPECT_EQ("00:00.000000", fmt::format("{:%M:%S}", tp));
 | 
			
		||||
  EXPECT_EQ("00:00.000000   ", fmt::format("{:15%M:%S}", tp));
 | 
			
		||||
  EXPECT_EQ("00:00.000000   ", fmt::format("{:{}%M:%S}", tp, 15));
 | 
			
		||||
  EXPECT_EQ("00:00.000000   ", fmt::format("{:<15%M:%S}", tp));
 | 
			
		||||
  EXPECT_EQ(" 00:00.000000  ", fmt::format("{:^15%M:%S}", tp));
 | 
			
		||||
  EXPECT_EQ("   00:00.000000", fmt::format("{:>15%M:%S}", tp));
 | 
			
		||||
 | 
			
		||||
  EXPECT_EQ("00:00.000000***", fmt::format("{:*<15%M:%S}", tp));
 | 
			
		||||
  EXPECT_EQ("*00:00.000000**", fmt::format("{:*^15%M:%S}", tp));
 | 
			
		||||
  EXPECT_EQ("***00:00.000000", fmt::format("{:*>15%M:%S}", tp));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(chrono_test, format_specs) {
 | 
			
		||||
  EXPECT_EQ("%", fmt::format("{:%%}", std::chrono::seconds(0)));
 | 
			
		||||
  EXPECT_EQ("\n", fmt::format("{:%n}", std::chrono::seconds(0)));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user