mirror of
https://github.com/nlohmann/json.git
synced 2026-02-20 02:16:24 +00:00
key/value function for iterators (#46)
Currently only support iterator and const_iterator. reverse_iterator and const_reverse_iterator to be implemented soon.
This commit is contained in:
@@ -2801,6 +2801,16 @@ TEST_CASE("iterators")
|
||||
CHECK(it != j_const.crend());
|
||||
CHECK(*it == j_const);
|
||||
}
|
||||
|
||||
SECTION("key/value")
|
||||
{
|
||||
auto it = j.begin();
|
||||
auto cit = j_const.cbegin();
|
||||
CHECK_THROWS_AS(it.key(), std::domain_error);
|
||||
CHECK(it.value() == json(true));
|
||||
CHECK_THROWS_AS(cit.key(), std::domain_error);
|
||||
CHECK(cit.value() == json(true));
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("string")
|
||||
@@ -2982,6 +2992,16 @@ TEST_CASE("iterators")
|
||||
CHECK(it != j_const.crend());
|
||||
CHECK(*it == j_const);
|
||||
}
|
||||
|
||||
SECTION("key/value")
|
||||
{
|
||||
auto it = j.begin();
|
||||
auto cit = j_const.cbegin();
|
||||
CHECK_THROWS_AS(it.key(), std::domain_error);
|
||||
CHECK(it.value() == json("hello world"));
|
||||
CHECK_THROWS_AS(cit.key(), std::domain_error);
|
||||
CHECK(cit.value() == json("hello world"));
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("array")
|
||||
@@ -3156,6 +3176,16 @@ TEST_CASE("iterators")
|
||||
CHECK(it != it_begin);
|
||||
CHECK(it == it_end);
|
||||
}
|
||||
|
||||
SECTION("key/value")
|
||||
{
|
||||
auto it = j.begin();
|
||||
auto cit = j_const.cbegin();
|
||||
CHECK_THROWS_AS(it.key(), std::domain_error);
|
||||
CHECK(it.value() == json(1));
|
||||
CHECK_THROWS_AS(cit.key(), std::domain_error);
|
||||
CHECK(cit.value() == json(1));
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("object")
|
||||
@@ -3330,6 +3360,16 @@ TEST_CASE("iterators")
|
||||
CHECK(it != it_begin);
|
||||
CHECK(it == it_end);
|
||||
}
|
||||
|
||||
SECTION("key/value")
|
||||
{
|
||||
auto it = j.begin();
|
||||
auto cit = j_const.cbegin();
|
||||
CHECK(it.key() == "A");
|
||||
CHECK(it.value() == json(1));
|
||||
CHECK(cit.key() == "A");
|
||||
CHECK(cit.value() == json(1));
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("number (integer)")
|
||||
@@ -3511,6 +3551,16 @@ TEST_CASE("iterators")
|
||||
CHECK(it != j_const.crend());
|
||||
CHECK(*it == j_const);
|
||||
}
|
||||
|
||||
SECTION("key/value")
|
||||
{
|
||||
auto it = j.begin();
|
||||
auto cit = j_const.cbegin();
|
||||
CHECK_THROWS_AS(it.key(), std::domain_error);
|
||||
CHECK(it.value() == json(23));
|
||||
CHECK_THROWS_AS(cit.key(), std::domain_error);
|
||||
CHECK(cit.value() == json(23));
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("number (float)")
|
||||
@@ -3692,6 +3742,16 @@ TEST_CASE("iterators")
|
||||
CHECK(it != j_const.crend());
|
||||
CHECK(*it == j_const);
|
||||
}
|
||||
|
||||
SECTION("key/value")
|
||||
{
|
||||
auto it = j.begin();
|
||||
auto cit = j_const.cbegin();
|
||||
CHECK_THROWS_AS(it.key(), std::domain_error);
|
||||
CHECK(it.value() == json(23.42));
|
||||
CHECK_THROWS_AS(cit.key(), std::domain_error);
|
||||
CHECK(cit.value() == json(23.42));
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("null")
|
||||
@@ -3743,6 +3803,16 @@ TEST_CASE("iterators")
|
||||
json::const_reverse_iterator it = j_const.crbegin();
|
||||
CHECK(it == j_const.crend());
|
||||
}
|
||||
|
||||
SECTION("key/value")
|
||||
{
|
||||
auto it = j.begin();
|
||||
auto cit = j_const.cbegin();
|
||||
CHECK_THROWS_AS(it.key(), std::domain_error);
|
||||
CHECK_THROWS_AS(it.value(), std::out_of_range);
|
||||
CHECK_THROWS_AS(cit.key(), std::domain_error);
|
||||
CHECK_THROWS_AS(cit.value(), std::out_of_range);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user