mirror of
https://github.com/tristanpenman/valijson.git
synced 2025-03-03 04:38:40 +01:00
Fix bug in difference() for rapidjson
This commit is contained in:
parent
a0e05907ae
commit
fc9ddf14db
@ -723,7 +723,7 @@ public:
|
||||
|
||||
std::ptrdiff_t difference(const GenericRapidJsonArrayValueIterator<ValueType> &other)
|
||||
{
|
||||
return std::distance(m_itr, other.itr);
|
||||
return std::distance(m_itr, other.m_itr);
|
||||
}
|
||||
|
||||
private:
|
||||
@ -820,7 +820,7 @@ public:
|
||||
|
||||
std::ptrdiff_t difference(const GenericRapidJsonObjectMemberIterator &other)
|
||||
{
|
||||
return std::distance(m_itr, other.itr);
|
||||
return std::distance(m_itr, other.m_itr);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -45,6 +45,23 @@ void testBasicArrayIteration()
|
||||
expectedValue++;
|
||||
}
|
||||
|
||||
// Check that plain iterators work too
|
||||
expectedValue = 0;
|
||||
for (auto itr = adapter.getArray().begin(); itr != adapter.getArray().end(); itr++) {
|
||||
ASSERT_TRUE( itr->isNumber() );
|
||||
EXPECT_EQ( double(expectedValue), itr->getDouble() );
|
||||
expectedValue++;
|
||||
}
|
||||
|
||||
// Check difference
|
||||
auto a = adapter.getArray().begin();
|
||||
auto b = a;
|
||||
const auto c = b.difference(a);
|
||||
EXPECT_EQ( 0, c );
|
||||
b++;
|
||||
const auto d = a.difference(b);
|
||||
EXPECT_EQ( 1, d );
|
||||
|
||||
// Ensure that the correct number of elements were iterated over
|
||||
EXPECT_EQ(numElements, expectedValue);
|
||||
}
|
||||
@ -88,6 +105,15 @@ void testBasicObjectIteration()
|
||||
expectedValue++;
|
||||
}
|
||||
|
||||
// Check difference
|
||||
auto a = adapter.getObject().begin();
|
||||
auto b = a;
|
||||
const auto c = b.difference(a);
|
||||
EXPECT_EQ( 0, c );
|
||||
b++;
|
||||
const auto d = a.difference(b);
|
||||
EXPECT_EQ( 1, d );
|
||||
|
||||
// Ensure that the correct number of elements were iterated over
|
||||
EXPECT_EQ( numElements, expectedValue );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user