mirror of
				https://github.com/fmtlib/fmt.git
				synced 2025-11-04 08:01:40 +01:00 
			
		
		
		
	
		
			
	
	
		
			66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.6 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 <array>
							 | 
						||
| 
								 | 
							
								#include <chrono>
							 | 
						||
| 
								 | 
							
								#include <iterator>
							 | 
						||
| 
								 | 
							
								#include <list>
							 | 
						||
| 
								 | 
							
								#include <string>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "fmt/chrono.h"
							 | 
						||
| 
								 | 
							
								#include "fmt/color.h"
							 | 
						||
| 
								 | 
							
								#include "fmt/format.h"
							 | 
						||
| 
								 | 
							
								#include "fmt/locale.h"
							 | 
						||
| 
								 | 
							
								#include "fmt/ostream.h"
							 | 
						||
| 
								 | 
							
								#include "fmt/ranges.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Exercise the API to verify that everything we expect to can compile.
							 | 
						||
| 
								 | 
							
								void test_format_api() {
							 | 
						||
| 
								 | 
							
								  fmt::format(FMT_STRING("{}"), 42);
							 | 
						||
| 
								 | 
							
								  fmt::format(FMT_STRING(L"{}"), 42);
							 | 
						||
| 
								 | 
							
								  fmt::format(FMT_STRING("noop"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  fmt::to_string(42);
							 | 
						||
| 
								 | 
							
								  fmt::to_wstring(42);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  std::list<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() {
							 | 
						||
| 
								 | 
							
								  fmt::format(FMT_STRING("{}"), std::chrono::seconds(42));
							 | 
						||
| 
								 | 
							
								  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)");
							 | 
						||
| 
								 | 
							
								  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::array<char, 5> hello = {'h', 'e', 'l', 'l', 'o'};
							 | 
						||
| 
								 | 
							
								  fmt::format(FMT_STRING("{}"), hello);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int main() {
							 | 
						||
| 
								 | 
							
								  test_format_api();
							 | 
						||
| 
								 | 
							
								  test_chrono();
							 | 
						||
| 
								 | 
							
								  test_text_style();
							 | 
						||
| 
								 | 
							
								  test_range();
							 | 
						||
| 
								 | 
							
								}
							 |