mirror of
https://github.com/nlohmann/json.git
synced 2026-07-29 23:23:02 +04:00
🎨 use Clang-Format
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
#include <nlohmann/json.hpp>
|
||||
using nlohmann::json;
|
||||
#ifdef JSON_TEST_NO_GLOBAL_UDLS
|
||||
using namespace nlohmann::literals; // NOLINT(google-build-using-namespace)
|
||||
using namespace nlohmann::literals; // NOLINT(google-build-using-namespace)
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
@@ -20,8 +20,7 @@ using nlohmann::json;
|
||||
#include <sstream>
|
||||
#include <valarray>
|
||||
|
||||
namespace
|
||||
{
|
||||
namespace {
|
||||
struct SaxEventLogger : public nlohmann::json_sax<json>
|
||||
{
|
||||
bool null() override
|
||||
@@ -125,7 +124,7 @@ struct SaxEventLogger : public nlohmann::json_sax<json>
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<std::string> events {};
|
||||
std::vector<std::string> events{};
|
||||
};
|
||||
|
||||
struct SaxEventLoggerExitAfterStartObject : public SaxEventLogger
|
||||
@@ -169,7 +168,7 @@ struct SaxEventLoggerExitAfterStartArray : public SaxEventLogger
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
template<typename T>
|
||||
class proxy_iterator
|
||||
{
|
||||
public:
|
||||
@@ -182,7 +181,9 @@ class proxy_iterator
|
||||
using iterator_category = std::input_iterator_tag;
|
||||
|
||||
proxy_iterator() = default;
|
||||
explicit proxy_iterator(iterator& it) : m_it(std::addressof(it)) {}
|
||||
explicit proxy_iterator(iterator& it)
|
||||
: m_it(std::addressof(it))
|
||||
{}
|
||||
|
||||
proxy_iterator& operator++()
|
||||
{
|
||||
@@ -214,7 +215,7 @@ class proxy_iterator
|
||||
private:
|
||||
iterator* m_it = nullptr;
|
||||
};
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
TEST_CASE("deserialization")
|
||||
{
|
||||
@@ -236,12 +237,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(json::sax_parse(ss3, &l));
|
||||
CHECK(l.events.size() == 11);
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()", "string(foo)", "number_unsigned(1)",
|
||||
"number_unsigned(2)", "number_unsigned(3)", "boolean(false)",
|
||||
"start_object()", "key(one)", "number_unsigned(1)",
|
||||
"end_object()", "end_array()"
|
||||
}));
|
||||
{"start_array()", "string(foo)", "number_unsigned(1)", "number_unsigned(2)", "number_unsigned(3)", "boolean(false)", "start_object()", "key(one)", "number_unsigned(1)", "end_object()", "end_array()"}));
|
||||
}
|
||||
|
||||
SECTION("string literal")
|
||||
@@ -255,12 +251,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(json::sax_parse(s, &l));
|
||||
CHECK(l.events.size() == 11);
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()", "string(foo)", "number_unsigned(1)",
|
||||
"number_unsigned(2)", "number_unsigned(3)", "boolean(false)",
|
||||
"start_object()", "key(one)", "number_unsigned(1)",
|
||||
"end_object()", "end_array()"
|
||||
}));
|
||||
{"start_array()", "string(foo)", "number_unsigned(1)", "number_unsigned(2)", "number_unsigned(3)", "boolean(false)", "start_object()", "key(one)", "number_unsigned(1)", "end_object()", "end_array()"}));
|
||||
}
|
||||
|
||||
SECTION("string_t")
|
||||
@@ -274,12 +265,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(json::sax_parse(s, &l));
|
||||
CHECK(l.events.size() == 11);
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()", "string(foo)", "number_unsigned(1)",
|
||||
"number_unsigned(2)", "number_unsigned(3)", "boolean(false)",
|
||||
"start_object()", "key(one)", "number_unsigned(1)",
|
||||
"end_object()", "end_array()"
|
||||
}));
|
||||
{"start_array()", "string(foo)", "number_unsigned(1)", "number_unsigned(2)", "number_unsigned(3)", "boolean(false)", "start_object()", "key(one)", "number_unsigned(1)", "end_object()", "end_array()"}));
|
||||
}
|
||||
|
||||
SECTION("operator<<")
|
||||
@@ -331,12 +317,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(!json::sax_parse(ss5, &l));
|
||||
CHECK(l.events.size() == 11);
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()", "string(foo)", "number_unsigned(1)",
|
||||
"number_unsigned(2)", "number_unsigned(3)", "boolean(false)",
|
||||
"start_object()", "key(one)", "number_unsigned(1)",
|
||||
"end_object()", "parse_error(29)"
|
||||
}));
|
||||
{"start_array()", "string(foo)", "number_unsigned(1)", "number_unsigned(2)", "number_unsigned(3)", "boolean(false)", "start_object()", "key(one)", "number_unsigned(1)", "end_object()", "parse_error(29)"}));
|
||||
}
|
||||
|
||||
SECTION("string")
|
||||
@@ -354,12 +335,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(!json::sax_parse(s, &l));
|
||||
CHECK(l.events.size() == 11);
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()", "string(foo)", "number_unsigned(1)",
|
||||
"number_unsigned(2)", "number_unsigned(3)", "boolean(false)",
|
||||
"start_object()", "key(one)", "number_unsigned(1)",
|
||||
"end_object()", "parse_error(29)"
|
||||
}));
|
||||
{"start_array()", "string(foo)", "number_unsigned(1)", "number_unsigned(2)", "number_unsigned(3)", "boolean(false)", "start_object()", "key(one)", "number_unsigned(1)", "end_object()", "parse_error(29)"}));
|
||||
}
|
||||
|
||||
SECTION("operator<<")
|
||||
@@ -402,7 +378,7 @@ TEST_CASE("deserialization")
|
||||
|
||||
SECTION("from std::array")
|
||||
{
|
||||
std::array<uint8_t, 5> const v { {'t', 'r', 'u', 'e'} };
|
||||
std::array<uint8_t, 5> const v{{'t', 'r', 'u', 'e'}};
|
||||
CHECK(json::parse(v) == json(true));
|
||||
CHECK(json::accept(v));
|
||||
|
||||
@@ -414,7 +390,7 @@ TEST_CASE("deserialization")
|
||||
|
||||
SECTION("from array")
|
||||
{
|
||||
uint8_t v[] = {'t', 'r', 'u', 'e'}; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
||||
uint8_t v[] = {'t', 'r', 'u', 'e'}; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
||||
CHECK(json::parse(v) == json(true));
|
||||
CHECK(json::accept(v));
|
||||
|
||||
@@ -426,7 +402,7 @@ TEST_CASE("deserialization")
|
||||
|
||||
SECTION("from chars")
|
||||
{
|
||||
auto* v = new uint8_t[5]; // NOLINT(cppcoreguidelines-owning-memory)
|
||||
auto* v = new uint8_t[5]; // NOLINT(cppcoreguidelines-owning-memory)
|
||||
v[0] = 't';
|
||||
v[1] = 'r';
|
||||
v[2] = 'u';
|
||||
@@ -440,7 +416,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(l.events.size() == 1);
|
||||
CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
|
||||
|
||||
delete[] v; // NOLINT(cppcoreguidelines-owning-memory)
|
||||
delete[] v; // NOLINT(cppcoreguidelines-owning-memory)
|
||||
}
|
||||
|
||||
SECTION("from std::string")
|
||||
@@ -493,12 +469,11 @@ TEST_CASE("deserialization")
|
||||
CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
|
||||
CHECK(l.events.size() == 1);
|
||||
CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
|
||||
|
||||
}
|
||||
|
||||
SECTION("from std::array")
|
||||
{
|
||||
std::array<uint8_t, 5> v { {'t', 'r', 'u', 'e'} };
|
||||
std::array<uint8_t, 5> v{{'t', 'r', 'u', 'e'}};
|
||||
CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
|
||||
CHECK(json::accept(std::begin(v), std::end(v)));
|
||||
|
||||
@@ -510,7 +485,7 @@ TEST_CASE("deserialization")
|
||||
|
||||
SECTION("from array")
|
||||
{
|
||||
uint8_t v[] = {'t', 'r', 'u', 'e'}; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
||||
uint8_t v[] = {'t', 'r', 'u', 'e'}; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
||||
CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
|
||||
CHECK(json::accept(std::begin(v), std::end(v)));
|
||||
|
||||
@@ -585,8 +560,7 @@ TEST_CASE("deserialization")
|
||||
json j;
|
||||
json_sax_dom_parser<json> sax(j, true);
|
||||
|
||||
CHECK(json::sax_parse(proxy(first), proxy(last), &sax,
|
||||
input_format_t::json, false));
|
||||
CHECK(json::sax_parse(proxy(first), proxy(last), &sax, input_format_t::json, false));
|
||||
CHECK(j.dump() == str1);
|
||||
CHECK(std::string(first, last) == str2);
|
||||
}
|
||||
@@ -865,10 +839,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
|
||||
CHECK(l.events.size() == 4);
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"start_object()", "key()", "number_unsigned(11)",
|
||||
"parse_error(7)"
|
||||
}));
|
||||
{"start_object()", "key()", "number_unsigned(11)", "parse_error(7)"}));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -888,9 +859,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(!json::sax_parse(bom, &l));
|
||||
CHECK(l.events.size() == 1);
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"parse_error(4)"
|
||||
}));
|
||||
{"parse_error(4)"}));
|
||||
}
|
||||
|
||||
SECTION("BOM and content")
|
||||
@@ -904,14 +873,10 @@ TEST_CASE("deserialization")
|
||||
CHECK(json::sax_parse(bom + "1", &l2));
|
||||
CHECK(l1.events.size() == 1);
|
||||
CHECK(l1.events == std::vector<std::string>(
|
||||
{
|
||||
"number_unsigned(1)"
|
||||
}));
|
||||
{"number_unsigned(1)"}));
|
||||
CHECK(l2.events.size() == 1);
|
||||
CHECK(l2.events == std::vector<std::string>(
|
||||
{
|
||||
"number_unsigned(1)"
|
||||
}));
|
||||
{"number_unsigned(1)"}));
|
||||
}
|
||||
|
||||
SECTION("2 byte of BOM")
|
||||
@@ -927,14 +892,10 @@ TEST_CASE("deserialization")
|
||||
CHECK(!json::sax_parse(bom.substr(0, 2), &l2));
|
||||
CHECK(l1.events.size() == 1);
|
||||
CHECK(l1.events == std::vector<std::string>(
|
||||
{
|
||||
"parse_error(3)"
|
||||
}));
|
||||
{"parse_error(3)"}));
|
||||
CHECK(l2.events.size() == 1);
|
||||
CHECK(l2.events == std::vector<std::string>(
|
||||
{
|
||||
"parse_error(3)"
|
||||
}));
|
||||
{"parse_error(3)"}));
|
||||
}
|
||||
|
||||
SECTION("1 byte of BOM")
|
||||
@@ -950,14 +911,10 @@ TEST_CASE("deserialization")
|
||||
CHECK(!json::sax_parse(bom.substr(0, 1), &l2));
|
||||
CHECK(l1.events.size() == 1);
|
||||
CHECK(l1.events == std::vector<std::string>(
|
||||
{
|
||||
"parse_error(2)"
|
||||
}));
|
||||
{"parse_error(2)"}));
|
||||
CHECK(l2.events.size() == 1);
|
||||
CHECK(l2.events == std::vector<std::string>(
|
||||
{
|
||||
"parse_error(2)"
|
||||
}));
|
||||
{"parse_error(2)"}));
|
||||
}
|
||||
|
||||
SECTION("variations")
|
||||
@@ -990,9 +947,7 @@ TEST_CASE("deserialization")
|
||||
CHECK(json::sax_parse(s + "null", &l));
|
||||
CHECK(l.events.size() == 1);
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"null()"
|
||||
}));
|
||||
{"null()"}));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1008,23 +963,17 @@ TEST_CASE("deserialization")
|
||||
if (i0 != 0)
|
||||
{
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"parse_error(1)"
|
||||
}));
|
||||
{"parse_error(1)"}));
|
||||
}
|
||||
else if (i1 != 0)
|
||||
{
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"parse_error(2)"
|
||||
}));
|
||||
{"parse_error(2)"}));
|
||||
}
|
||||
else
|
||||
{
|
||||
CHECK(l.events == std::vector<std::string>(
|
||||
{
|
||||
"parse_error(3)"
|
||||
}));
|
||||
{"parse_error(3)"}));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1055,37 +1004,22 @@ TEST_CASE("deserialization")
|
||||
json::sax_parse(s, &default_logger);
|
||||
CHECK(default_logger.events.size() == 14);
|
||||
CHECK(default_logger.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()", "number_unsigned(1)", "start_array()",
|
||||
"string(string)", "number_float(43.12)", "end_array()", "null()",
|
||||
"start_object()", "key(key1)", "boolean(true)", "key(key2)",
|
||||
"boolean(false)", "end_object()", "end_array()"
|
||||
}));
|
||||
{"start_array()", "number_unsigned(1)", "start_array()", "string(string)", "number_float(43.12)", "end_array()", "null()", "start_object()", "key(key1)", "boolean(true)", "key(key2)", "boolean(false)", "end_object()", "end_array()"}));
|
||||
|
||||
json::sax_parse(s, &exit_after_start_object);
|
||||
CHECK(exit_after_start_object.events.size() == 8);
|
||||
CHECK(exit_after_start_object.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()", "number_unsigned(1)", "start_array()",
|
||||
"string(string)", "number_float(43.12)", "end_array()", "null()",
|
||||
"start_object()"
|
||||
}));
|
||||
{"start_array()", "number_unsigned(1)", "start_array()", "string(string)", "number_float(43.12)", "end_array()", "null()", "start_object()"}));
|
||||
|
||||
json::sax_parse(s, &exit_after_key);
|
||||
CHECK(exit_after_key.events.size() == 9);
|
||||
CHECK(exit_after_key.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()", "number_unsigned(1)", "start_array()",
|
||||
"string(string)", "number_float(43.12)", "end_array()", "null()",
|
||||
"start_object()", "key(key1)"
|
||||
}));
|
||||
{"start_array()", "number_unsigned(1)", "start_array()", "string(string)", "number_float(43.12)", "end_array()", "null()", "start_object()", "key(key1)"}));
|
||||
|
||||
json::sax_parse(s, &exit_after_start_array);
|
||||
CHECK(exit_after_start_array.events.size() == 1);
|
||||
CHECK(exit_after_start_array.events == std::vector<std::string>(
|
||||
{
|
||||
"start_array()"
|
||||
}));
|
||||
{"start_array()"}));
|
||||
}
|
||||
|
||||
SECTION("JSON Lines")
|
||||
@@ -1131,13 +1065,7 @@ TEST_CASE("deserialization")
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE_TEMPLATE("deserialization of different character types (ASCII)", T,
|
||||
char, unsigned char, signed char,
|
||||
wchar_t,
|
||||
char16_t, char32_t,
|
||||
std::uint8_t, std::int8_t,
|
||||
std::int16_t, std::uint16_t,
|
||||
std::int32_t, std::uint32_t)
|
||||
TEST_CASE_TEMPLATE("deserialization of different character types (ASCII)", T, char, unsigned char, signed char, wchar_t, char16_t, char32_t, std::uint8_t, std::int8_t, std::int16_t, std::uint16_t, std::int32_t, std::uint32_t)
|
||||
{
|
||||
std::vector<T> const v = {'t', 'r', 'u', 'e'};
|
||||
CHECK(json::parse(v) == json(true));
|
||||
@@ -1149,8 +1077,7 @@ TEST_CASE_TEMPLATE("deserialization of different character types (ASCII)", T,
|
||||
CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
|
||||
}
|
||||
|
||||
TEST_CASE_TEMPLATE("deserialization of different character types (UTF-8)", T,
|
||||
char, unsigned char, std::uint8_t)
|
||||
TEST_CASE_TEMPLATE("deserialization of different character types (UTF-8)", T, char, unsigned char, std::uint8_t)
|
||||
{
|
||||
// a star emoji
|
||||
std::vector<T> const v = {'"', static_cast<T>(0xe2u), static_cast<T>(0xadu), static_cast<T>(0x90u), static_cast<T>(0xefu), static_cast<T>(0xb8u), static_cast<T>(0x8fu), '"'};
|
||||
@@ -1162,8 +1089,7 @@ TEST_CASE_TEMPLATE("deserialization of different character types (UTF-8)", T,
|
||||
CHECK(l.events.size() == 1);
|
||||
}
|
||||
|
||||
TEST_CASE_TEMPLATE("deserialization of different character types (UTF-16)", T,
|
||||
char16_t, std::uint16_t)
|
||||
TEST_CASE_TEMPLATE("deserialization of different character types (UTF-16)", T, char16_t, std::uint16_t)
|
||||
{
|
||||
// a star emoji
|
||||
std::vector<T> const v = {static_cast<T>('"'), static_cast<T>(0x2b50), static_cast<T>(0xfe0f), static_cast<T>('"')};
|
||||
@@ -1175,8 +1101,7 @@ TEST_CASE_TEMPLATE("deserialization of different character types (UTF-16)", T,
|
||||
CHECK(l.events.size() == 1);
|
||||
}
|
||||
|
||||
TEST_CASE_TEMPLATE("deserialization of different character types (UTF-32)", T,
|
||||
char32_t, std::uint32_t)
|
||||
TEST_CASE_TEMPLATE("deserialization of different character types (UTF-32)", T, char32_t, std::uint32_t)
|
||||
{
|
||||
// a star emoji
|
||||
std::vector<T> const v = {static_cast<T>('"'), static_cast<T>(0x2b50), static_cast<T>(0xfe0f), static_cast<T>('"')};
|
||||
|
||||
Reference in New Issue
Block a user