mirror of
				https://github.com/Tencent/rapidjson.git
				synced 2025-11-04 04:10:01 +01:00 
			
		
		
		
	unit tests for 'Stringify NaN, Inf as null'
This commit is contained in:
		@@ -500,6 +500,18 @@ TEST(Writer, NaN) {
 | 
			
		||||
    EXPECT_FALSE(writer2.Double(nan));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(Writer, NaNToNull) {
 | 
			
		||||
    double nan = std::numeric_limits<double>::quiet_NaN();
 | 
			
		||||
 | 
			
		||||
    EXPECT_TRUE(internal::Double(nan).IsNan());
 | 
			
		||||
    {
 | 
			
		||||
        StringBuffer buffer;
 | 
			
		||||
        Writer<StringBuffer, UTF8<>, UTF8<>, CrtAllocator, kWriteNanAndInfNullFlag> writer(buffer);
 | 
			
		||||
        EXPECT_TRUE(writer.Double(nan));
 | 
			
		||||
        EXPECT_STREQ("null", buffer.GetString());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(Writer, Inf) {
 | 
			
		||||
    double inf = std::numeric_limits<double>::infinity();
 | 
			
		||||
 | 
			
		||||
@@ -524,6 +536,24 @@ TEST(Writer, Inf) {
 | 
			
		||||
    EXPECT_STREQ("Infinity-Infinity", buffer.GetString());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(Writer, InfToNull) {
 | 
			
		||||
    double inf = std::numeric_limits<double>::infinity();
 | 
			
		||||
 | 
			
		||||
    EXPECT_TRUE(internal::Double(inf).IsInf());
 | 
			
		||||
    {
 | 
			
		||||
        StringBuffer buffer;
 | 
			
		||||
        Writer<StringBuffer, UTF8<>, UTF8<>, CrtAllocator, kWriteNanAndInfNullFlag> writer(buffer);
 | 
			
		||||
        EXPECT_TRUE(writer.Double(inf));
 | 
			
		||||
        EXPECT_STREQ("null", buffer.GetString());
 | 
			
		||||
    }
 | 
			
		||||
    {
 | 
			
		||||
        StringBuffer buffer;
 | 
			
		||||
        Writer<StringBuffer, UTF8<>, UTF8<>, CrtAllocator, kWriteNanAndInfNullFlag> writer(buffer);
 | 
			
		||||
        EXPECT_TRUE(writer.Double(-inf));
 | 
			
		||||
        EXPECT_STREQ("null", buffer.GetString());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(Writer, RawValue) {
 | 
			
		||||
    StringBuffer buffer;
 | 
			
		||||
    Writer<StringBuffer> writer(buffer);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user