From fcba9ec537efa44d19bd53933e2f06ab11affdf1 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Sun, 10 Sep 2017 01:12:03 +0200 Subject: [PATCH] :hammer: clean up --- src/json.hpp | 32 ++------- test/src/unit-deserialization.cpp | 2 +- test/src/unit-iterators1.cpp | 108 ++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+), 27 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index e7c42920e..10af0e0d5 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -3501,23 +3501,18 @@ class primitive_iterator_t /// return whether the iterator can be dereferenced constexpr bool is_begin() const noexcept { - return (m_it == begin_value); + return m_it == begin_value; } /// return whether the iterator is at end constexpr bool is_end() const noexcept { - return (m_it == end_value); + return m_it == end_value; } friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept { - return (lhs.m_it == rhs.m_it); - } - - friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return not(lhs == rhs); + return lhs.m_it == rhs.m_it; } friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept @@ -3525,21 +3520,6 @@ class primitive_iterator_t return lhs.m_it < rhs.m_it; } - friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it <= rhs.m_it; - } - - friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it > rhs.m_it; - } - - friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept - { - return lhs.m_it >= rhs.m_it; - } - primitive_iterator_t operator+(difference_type i) { auto result = *this; @@ -3600,7 +3580,7 @@ class primitive_iterator_t static constexpr difference_type end_value = begin_value + 1; /// iterator as signed integer type - difference_type m_it = std::numeric_limits::denorm_min(); + difference_type m_it = std::numeric_limits::min(); }; /*! @@ -9049,7 +9029,7 @@ class basic_json @liveexample{The following code exemplifies `type()` for all JSON types.,type} - @sa @ref operator value_t() -- return the type of the JSON value (implicit) + @sa @ref operator value_t() -- return the type of the JSON value (implicit) @sa @ref type_name() -- return the type as string @since version 1.0.0 @@ -13090,7 +13070,7 @@ class basic_json types.,type_name} @sa @ref type() -- return the type of the JSON value - @sa @ref operator value_t() -- return the type of the JSON value (implicit) + @sa @ref operator value_t() -- return the type of the JSON value (implicit) @since version 1.0.0, public since 2.1.0, `const char*` and `noexcept` since 3.0.0 diff --git a/test/src/unit-deserialization.cpp b/test/src/unit-deserialization.cpp index bb52cd6c0..6e660df56 100644 --- a/test/src/unit-deserialization.cpp +++ b/test/src/unit-deserialization.cpp @@ -324,7 +324,7 @@ TEST_CASE("deserialization") uint8_t v[] = {'\"', 0x7F, 0xDF, 0x7F}; CHECK_THROWS_AS(json::parse(std::begin(v), std::end(v)), json::parse_error&); CHECK_THROWS_WITH(json::parse(std::begin(v), std::end(v)), - "[json.exception.parse_error.101] parse error at 4: syntax error - invalid string: ill-formed UTF-8 byte; last read: '\"\x7f\xdf\x7f'"); + "[json.exception.parse_error.101] parse error at 4: syntax error - invalid string: ill-formed UTF-8 byte; last read: '\"\x7f\xdf\x7f'"); CHECK(not json::accept(std::begin(v), std::end(v))); json j_error; diff --git a/test/src/unit-iterators1.cpp b/test/src/unit-iterators1.cpp index 78607bc2b..66ffed225 100644 --- a/test/src/unit-iterators1.cpp +++ b/test/src/unit-iterators1.cpp @@ -225,6 +225,114 @@ TEST_CASE("iterators 1") CHECK(*it == j_const); } + SECTION("additional tests") + { + SECTION("!(begin != begin)") + { + CHECK(not(j.begin() != j.begin())); + } + + SECTION("!(end != end)") + { + CHECK(not(j.end() != j.end())); + } + + SECTION("begin < end") + { + CHECK(j.begin() < j.end()); + } + + SECTION("begin <= end") + { + CHECK(j.begin() <= j.end()); + } + + SECTION("end > begin") + { + CHECK(j.end() > j.begin()); + } + + SECTION("end >= begin") + { + CHECK(j.end() >= j.begin()); + } + + SECTION("end == end") + { + CHECK(j.end() == j.end()); + } + + SECTION("end <= end") + { + CHECK(j.end() <= j.end()); + } + + SECTION("begin == begin") + { + CHECK(j.begin() == j.begin()); + } + + SECTION("begin <= begin") + { + CHECK(j.begin() <= j.begin()); + } + + SECTION("begin >= begin") + { + CHECK(j.begin() >= j.begin()); + } + + SECTION("!(begin == end)") + { + CHECK(not(j.begin() == j.end())); + } + + SECTION("begin != end") + { + CHECK(j.begin() != j.end()); + } + + SECTION("begin+1 == end") + { + CHECK(j.begin() + 1 == j.end()); + } + + SECTION("begin == end-1") + { + CHECK(j.begin() == j.end() - 1); + } + + SECTION("begin != end+1") + { + CHECK(j.begin() != j.end() + 1); + } + + SECTION("end != end+1") + { + CHECK(j.end() != j.end() + 1); + } + + SECTION("begin+1 != begin+2") + { + CHECK(j.begin() + 1 != j.begin() + 2); + } + + SECTION("begin+1 < begin+2") + { + CHECK(j.begin() + 1 < j.begin() + 2); + } + + SECTION("begin+1 <= begin+2") + { + CHECK(j.begin() + 1 <= j.begin() + 2); + } + + SECTION("end+1 != end+2") + { + CHECK(j.end() + 1 != j.end() + 2); + } + } + SECTION("key/value") { auto it = j.begin();