more test cases
This commit is contained in:
parent
8c6bb04d10
commit
3589837071
3 changed files with 68 additions and 10 deletions
10
src/json.hpp
10
src/json.hpp
|
@ -1463,11 +1463,6 @@ class basic_json
|
||||||
|
|
||||||
switch (m_type)
|
switch (m_type)
|
||||||
{
|
{
|
||||||
case (value_t::null):
|
|
||||||
{
|
|
||||||
return "null";
|
|
||||||
}
|
|
||||||
|
|
||||||
case (value_t::object):
|
case (value_t::object):
|
||||||
{
|
{
|
||||||
if (m_value.object->empty())
|
if (m_value.object->empty())
|
||||||
|
@ -1558,6 +1553,11 @@ class basic_json
|
||||||
{
|
{
|
||||||
return std::to_string(m_value.number_float);
|
return std::to_string(m_value.number_float);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return "null";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1463,11 +1463,6 @@ class basic_json
|
||||||
|
|
||||||
switch (m_type)
|
switch (m_type)
|
||||||
{
|
{
|
||||||
case (value_t::null):
|
|
||||||
{
|
|
||||||
return "null";
|
|
||||||
}
|
|
||||||
|
|
||||||
case (value_t::object):
|
case (value_t::object):
|
||||||
{
|
{
|
||||||
if (m_value.object->empty())
|
if (m_value.object->empty())
|
||||||
|
@ -1558,6 +1553,11 @@ class basic_json
|
||||||
{
|
{
|
||||||
return std::to_string(m_value.number_float);
|
return std::to_string(m_value.number_float);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return "null";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3915,3 +3915,61 @@ TEST_CASE("deserialization")
|
||||||
CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
|
CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST_CASE("convenience functions")
|
||||||
|
{
|
||||||
|
SECTION("type name as string")
|
||||||
|
{
|
||||||
|
CHECK(json(json::value_t::null).type_name() == "null");
|
||||||
|
CHECK(json(json::value_t::object).type_name() == "object");
|
||||||
|
CHECK(json(json::value_t::array).type_name() == "array");
|
||||||
|
CHECK(json(json::value_t::number_integer).type_name() == "number");
|
||||||
|
CHECK(json(json::value_t::number_float).type_name() == "number");
|
||||||
|
CHECK(json(json::value_t::boolean).type_name() == "boolean");
|
||||||
|
CHECK(json(json::value_t::string).type_name() == "string");
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("string escape")
|
||||||
|
{
|
||||||
|
CHECK(json::escape_string("\"") == "\\\"");
|
||||||
|
CHECK(json::escape_string("\\") == "\\\\");
|
||||||
|
CHECK(json::escape_string("\b") == "\\b");
|
||||||
|
CHECK(json::escape_string("\f") == "\\f");
|
||||||
|
CHECK(json::escape_string("\n") == "\\n");
|
||||||
|
CHECK(json::escape_string("\r") == "\\r");
|
||||||
|
CHECK(json::escape_string("\t") == "\\t");
|
||||||
|
|
||||||
|
CHECK(json::escape_string( "\x01" ) == "\\u0001");
|
||||||
|
CHECK(json::escape_string( "\x02" ) == "\\u0002");
|
||||||
|
CHECK(json::escape_string( "\x03" ) == "\\u0003");
|
||||||
|
CHECK(json::escape_string( "\x04" ) == "\\u0004");
|
||||||
|
CHECK(json::escape_string( "\x05" ) == "\\u0005");
|
||||||
|
CHECK(json::escape_string( "\x06" ) == "\\u0006");
|
||||||
|
CHECK(json::escape_string( "\x07" ) == "\\u0007");
|
||||||
|
CHECK(json::escape_string( "\x08" ) == "\\b");
|
||||||
|
CHECK(json::escape_string( "\x09" ) == "\\t");
|
||||||
|
CHECK(json::escape_string( "\x0a" ) == "\\n");
|
||||||
|
CHECK(json::escape_string( "\x0b" ) == "\\u000b");
|
||||||
|
CHECK(json::escape_string( "\x0c" ) == "\\f");
|
||||||
|
CHECK(json::escape_string( "\x0d" ) == "\\r");
|
||||||
|
CHECK(json::escape_string( "\x0e" ) == "\\u000e");
|
||||||
|
CHECK(json::escape_string( "\x0f" ) == "\\u000f");
|
||||||
|
CHECK(json::escape_string( "\x10" ) == "\\u0010");
|
||||||
|
CHECK(json::escape_string( "\x11" ) == "\\u0011");
|
||||||
|
CHECK(json::escape_string( "\x12" ) == "\\u0012");
|
||||||
|
CHECK(json::escape_string( "\x13" ) == "\\u0013");
|
||||||
|
CHECK(json::escape_string( "\x14" ) == "\\u0014");
|
||||||
|
CHECK(json::escape_string( "\x15" ) == "\\u0015");
|
||||||
|
CHECK(json::escape_string( "\x16" ) == "\\u0016");
|
||||||
|
CHECK(json::escape_string( "\x17" ) == "\\u0017");
|
||||||
|
CHECK(json::escape_string( "\x18" ) == "\\u0018");
|
||||||
|
CHECK(json::escape_string( "\x19" ) == "\\u0019");
|
||||||
|
CHECK(json::escape_string( "\x1a" ) == "\\u001a");
|
||||||
|
CHECK(json::escape_string( "\x1b" ) == "\\u001b");
|
||||||
|
CHECK(json::escape_string( "\x1c" ) == "\\u001c");
|
||||||
|
CHECK(json::escape_string( "\x1d" ) == "\\u001d");
|
||||||
|
CHECK(json::escape_string( "\x1e" ) == "\\u001e");
|
||||||
|
CHECK(json::escape_string( "\x1f" ) == "\\u001f");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue