mirror of
				https://github.com/fmtlib/fmt.git
				synced 2025-10-31 14:11:44 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  Tests of string utilities
 | |
| 
 | |
|  Copyright (c) 2012 - 2016, Victor Zverovich
 | |
|  All rights reserved.
 | |
| 
 | |
|  For the license information refer to format.h.
 | |
|  */
 | |
| 
 | |
| #include "fmt/string.h"
 | |
| #include "gtest/gtest.h"
 | |
| 
 | |
| using fmt::internal::StringBuffer;
 | |
| 
 | |
| TEST(StringBufferTest, Empty) {
 | |
|   StringBuffer<char> buffer;
 | |
|   EXPECT_EQ(0, buffer.size());
 | |
|   EXPECT_EQ(0, buffer.capacity());
 | |
|   std::string data;
 | |
|   // std::string may have initial capacity.
 | |
|   std::size_t capacity = data.capacity();
 | |
|   buffer.move_to(data);
 | |
|   EXPECT_EQ("", data);
 | |
|   EXPECT_EQ(capacity, data.capacity());
 | |
| }
 | |
| 
 | |
| TEST(StringBufferTest, Reserve) {
 | |
|   StringBuffer<char> buffer;
 | |
|   std::size_t capacity = std::string().capacity() + 10;
 | |
|   buffer.reserve(capacity);
 | |
|   EXPECT_EQ(0, buffer.size());
 | |
|   EXPECT_EQ(capacity, buffer.capacity());
 | |
|   std::string data;
 | |
|   buffer.move_to(data);
 | |
|   EXPECT_EQ("", data);
 | |
| }
 | |
| 
 | |
| TEST(StringBufferTest, Resize) {
 | |
|   StringBuffer<char> buffer;
 | |
|   std::size_t size = std::string().capacity() + 10;
 | |
|   buffer.resize(size);
 | |
|   EXPECT_EQ(size, buffer.size());
 | |
|   EXPECT_EQ(size, buffer.capacity());
 | |
|   std::string data;
 | |
|   buffer.move_to(data);
 | |
|   EXPECT_EQ(size, data.size());
 | |
| }
 | |
| 
 | |
| TEST(StringBufferTest, MoveTo) {
 | |
|   StringBuffer<char> buffer;
 | |
|   std::size_t size = std::string().capacity() + 10;
 | |
|   buffer.resize(size);
 | |
|   const char *p = &buffer[0];
 | |
|   std::string data;
 | |
|   buffer.move_to(data);
 | |
|   EXPECT_EQ(p, &data[0]);
 | |
|   EXPECT_EQ(0, buffer.size());
 | |
|   EXPECT_EQ(0, buffer.capacity());
 | |
| }
 | |
| 
 | |
| TEST(StringWriterTest, MoveTo) {
 | |
|   fmt::StringWriter out;
 | |
|   out << "The answer is " << 42 << "\n";
 | |
|   std::string s;
 | |
|   out.move_to(s);
 | |
|   EXPECT_EQ("The answer is 42\n", s);
 | |
|   EXPECT_EQ(0, out.size());
 | |
| }
 | |
| 
 | |
| TEST(StringWriterTest, WString) {
 | |
|   fmt::WStringWriter out;
 | |
|   out << "The answer is " << 42 << "\n";
 | |
|   std::wstring s;
 | |
|   out.move_to(s);
 | |
|   EXPECT_EQ(L"The answer is 42\n", s);
 | |
| }
 | |
| 
 | |
| TEST(StringTest, ToString) {
 | |
|   EXPECT_EQ("42", fmt::to_string(42));
 | |
| }
 |