From 504acef0b848e21a49a4f53d937152be63cbe243 Mon Sep 17 00:00:00 2001 From: Florian Albrechtskirchinger Date: Sun, 7 Aug 2022 10:20:38 +0200 Subject: [PATCH] Add unit tests --- tests/src/unit-json_pointer.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/src/unit-json_pointer.cpp b/tests/src/unit-json_pointer.cpp index f6e2b00c0..cbe13bbde 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,32 @@ 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); + CHECK_FALSE(ptr2 < ptr1); + + // 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"(