mirror of
				https://github.com/fmtlib/fmt.git
				synced 2025-10-30 21:51:43 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Formatting library for C++ - formatting library tests
 | |
| //
 | |
| // Copyright (c) 2012 - present, Victor Zverovich
 | |
| // All rights reserved.
 | |
| //
 | |
| // For the license information refer to format.h.
 | |
| 
 | |
| #include <iterator>
 | |
| #include <vector>
 | |
| 
 | |
| #define I 42  // simulate https://en.cppreference.com/w/c/numeric/complex/I
 | |
| #include "fmt/chrono.h"
 | |
| #include "fmt/color.h"
 | |
| #include "fmt/format.h"
 | |
| #include "fmt/ostream.h"
 | |
| #include "fmt/ranges.h"
 | |
| #include "fmt/xchar.h"
 | |
| #undef I
 | |
| 
 | |
| // Exercise the API to verify that everything we expect to can compile.
 | |
| void test_format_api() {
 | |
|   (void)fmt::format(FMT_STRING("{}"), 42);
 | |
|   (void)fmt::format(FMT_STRING(L"{}"), 42);
 | |
|   (void)fmt::format(FMT_STRING("noop"));
 | |
| 
 | |
|   (void)fmt::to_string(42);
 | |
|   (void)fmt::to_wstring(42);
 | |
| 
 | |
|   std::vector<char> out;
 | |
|   fmt::format_to(std::back_inserter(out), FMT_STRING("{}"), 42);
 | |
| 
 | |
|   char buffer[4];
 | |
|   fmt::format_to_n(buffer, 3, FMT_STRING("{}"), 12345);
 | |
| 
 | |
|   wchar_t wbuffer[4];
 | |
|   fmt::format_to_n(wbuffer, 3, FMT_STRING(L"{}"), 12345);
 | |
| }
 | |
| 
 | |
| void test_chrono() {
 | |
|   (void)fmt::format(FMT_STRING("{}"), std::chrono::seconds(42));
 | |
|   (void)fmt::format(FMT_STRING(L"{}"), std::chrono::seconds(42));
 | |
| }
 | |
| 
 | |
| void test_text_style() {
 | |
|   fmt::print(fg(fmt::rgb(255, 20, 30)), FMT_STRING("{}"), "rgb(255,20,30)");
 | |
|   (void)fmt::format(fg(fmt::rgb(255, 20, 30)), FMT_STRING("{}"),
 | |
|                     "rgb(255,20,30)");
 | |
| 
 | |
|   fmt::text_style ts = fg(fmt::rgb(255, 20, 30));
 | |
|   std::string out;
 | |
|   fmt::format_to(std::back_inserter(out), ts,
 | |
|                  FMT_STRING("rgb(255,20,30){}{}{}"), 1, 2, 3);
 | |
| }
 | |
| 
 | |
| void test_range() {
 | |
|   std::vector<char> hello = {'h', 'e', 'l', 'l', 'o'};
 | |
|   (void)fmt::format(FMT_STRING("{}"), hello);
 | |
| }
 | |
| 
 | |
| int main() {
 | |
|   test_format_api();
 | |
|   test_chrono();
 | |
|   test_text_style();
 | |
|   test_range();
 | |
| }
 |