diff --git a/tests/src/unit-json_pointer.cpp b/tests/src/unit-json_pointer.cpp index f6e2b00c00..42cb5e734f 100644 --- a/tests/src/unit-json_pointer.cpp +++ b/tests/src/unit-json_pointer.cpp @@ -15,6 +15,7 @@ using nlohmann::json; using namespace nlohmann::literals; // NOLINT(google-build-using-namespace) #endif +#include #include TEST_CASE("JSON pointers") @@ -697,6 +698,31 @@ TEST_CASE("JSON pointers") } } + SECTION("less-than comparison") + { + auto ptr1 = json::json_pointer("/foo/a"); + auto ptr2 = json::json_pointer("/foo/b"); + + CHECK(ptr1 < ptr2); + + // build with C++20 + // JSON_HAS_CPP_20 +#if JSON_HAS_THREE_WAY_COMPARISON + CHECK((ptr1 <=> ptr2) == std::strong_ordering::less); // *NOPAD* + CHECK(ptr2 > ptr1); +#endif + } + + SECTION("usable as map key") + { + auto ptr = json::json_pointer("/foo"); + std::map m; + + m[ptr] = 42; + + CHECK(m.find(ptr) != m.end()); + } + SECTION("backwards compatibility and mixing") { json j = R"(