unit tests for 'Stringify NaN, Inf as null'

This commit is contained in:
Jeroen Doggen 2023-09-21 08:53:27 +02:00 committed by Milo Yip
parent e7b6e5a208
commit b4a6da3e63

View File

@ -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);