wordreference/libjson/_internal/TestSuite/TestIterators.cpp

838 lines
32 KiB
C++

#include "TestSuite.h"
#ifdef JSON_LIBRARY
void CreateTest(JSONNODE * test); //suppress warnings that it wasnt defined
void CreateTest(JSONNODE * test){
json_push_back(test, json_new_a(JSON_TEXT("Hi"), JSON_TEXT("World")));
json_push_back(test, json_new_a(JSON_TEXT("Hello"), JSON_TEXT("There")));
json_push_back(test, json_new_a(JSON_TEXT("Hai"), JSON_TEXT("Mars")));
json_push_back(test, json_new_a(JSON_TEXT("Hia"), JSON_TEXT("Earth")));
json_push_back(test, json_new_a(JSON_TEXT("Hey"), JSON_TEXT("Jude")));
}
#else
void CreateTest(JSONNode & test); //suppress warnings that it wasnt defined
void CreateTest(JSONNode & test){
test.push_back(JSONNode(JSON_TEXT("Hi"), JSON_TEXT("World")));
test.push_back(JSONNode(JSON_TEXT("Hello"), JSON_TEXT("There")));
test.push_back(JSONNode(JSON_TEXT("Hai"), JSON_TEXT("Mars")));
test.push_back(JSONNode(JSON_TEXT("Hia"), JSON_TEXT("Earth")));
test.push_back(JSONNode(JSON_TEXT("Hey"), JSON_TEXT("Jude")));
}
#endif
void TestSuite::TestIterators(void){
#ifdef JSON_ITERATORS
#define assertAutoCString(cone, ctwo)\
{\
json_char * _res = cone;\
assertCStringSame(_res, ctwo);\
json_free(_res);\
}
UnitTest::SetPrefix("TestIterators.cpp - Iterator");
#ifdef JSON_LIBRARY
JSONNODE * empty = json_new(JSON_NODE);
assertEquals(json_begin(empty), json_end(empty));
TestSuite::testParsingItself(empty);
assertNull(json_at(empty, 15));
assertNull(json_get(empty, JSON_TEXT("hello")));
JSONNODE * test = json_new(JSON_NODE);
json_push_back(test, json_new_i(JSON_TEXT(""), 15));
json_push_back(test, json_new_a(JSON_TEXT(""), JSON_TEXT("hello world")));
json_push_back(test, json_new_b(JSON_TEXT(""), true));
assertEquals(json_size(test), 3);
TestSuite::testParsingItself(test);
JSONNODE_ITERATOR it_test = json_begin(test);
assertEquals(json_as_int(*it_test), 15);
++it_test;
assertAutoCString(json_as_string(*it_test), JSON_TEXT("hello world"));
it_test++;
assertEquals(json_as_bool(*it_test++), true);
assertEquals(it_test, json_end(test));
unsigned int i = 0;
for(JSONNODE_ITERATOR it = json_begin(test), end = json_end(test); it != end; ++it){
++i;
}
assertEquals(i, 3);
UnitTest::SetPrefix("TestIterators.cpp - Iterator Find");
json_delete(test);
test = json_new(JSON_NODE);
CreateTest(test);
JSONNODE_ITERATOR ti = json_find(test, JSON_TEXT("bye"));
assertEquals(ti, json_end(test));
ti = json_find(test, JSON_TEXT("Hai"));
assertNotEquals(ti, json_end(test));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Mars"));
ti = json_find(test, JSON_TEXT("Hey"));
assertNotEquals(ti, json_end(test));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Jude"));
ti = json_find(test, JSON_TEXT("Hi"));
assertNotEquals(ti, json_end(test));
assertAutoCString(json_as_string(*ti), JSON_TEXT("World"));
#ifdef JSON_CASE_INSENSITIVE_FUNCTIONS
ti = json_find_nocase(test, JSON_TEXT("BYE"));
assertEquals(ti, json_end(test));
ti = json_find_nocase(test, JSON_TEXT("HAI"));
assertNotEquals(ti, json_end(test));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Mars"));
ti = json_find_nocase(test, JSON_TEXT("HEY"));
assertNotEquals(ti, json_end(test));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Jude"));
ti = json_find_nocase(test, JSON_TEXT("HI"));
assertNotEquals(ti, json_end(test));
assertAutoCString(json_as_string(*ti), JSON_TEXT("World"));
#endif
UnitTest::SetPrefix("TestIterators.cpp - Iterator Erase");
ti = json_erase(test, json_begin(test) + 3);
assertEquals(json_size(test), 4);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("World"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test, 2)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 3)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Jude"));
ti = json_erase(test, json_begin(test));
assertEquals(json_size(test), 3);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 2)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("There"));
#ifdef JSON_SAFE
ti = json_erase(test, json_end(test));
assertEquals(json_size(test), 3);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 2)), JSON_TEXT("Jude"));
assertEquals(ti, json_end(test));
#endif
ti = json_erase(test, json_begin(test));
assertEquals(json_size(test), 2);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Mars"));
ti = json_erase(test, json_begin(test));
assertEquals(json_size(test), 1);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Jude"));
ti = json_erase(test, json_begin(test));
assertEquals(json_size(test), 0);
assertEquals(ti, json_end(test));
CreateTest(test);
i = 0;
for (JSONNODE_ITERATOR it = json_begin(test); it != json_end(test); it = json_erase(test, it)){
++i;
}
assertEquals(json_size(test), 0);
assertEquals(i, 5);
UnitTest::SetPrefix("TestIterators.cpp - Iterator Bulk Erase");
CreateTest(test);
ti = json_erase_multi(test, json_begin(test), json_begin(test));
assertEquals(json_size(test), 5);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("World"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test, 2)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 3)), JSON_TEXT("Earth"));
assertAutoCString(json_as_string(json_at(test, 4)), JSON_TEXT("Jude"));
assertEquals(ti, json_begin(test));
json_erase_multi(test, json_begin(test), json_end(test));
assertEquals(json_size(test), 0);
CreateTest(test);
ti = json_erase_multi(test, json_begin(test), json_begin(test) + 1);
assertEquals(json_size(test), 4);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 2)), JSON_TEXT("Earth"));
assertAutoCString(json_as_string(json_at(test, 3)), JSON_TEXT("Jude"));
assertEquals(ti, json_begin(test));
ti = json_erase_multi(test, json_begin(test), json_begin(test) + 2);
assertEquals(json_size(test), 2);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("Earth"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("Jude"));
assertEquals(ti, json_begin(test));
ti = json_erase_multi(test, json_begin(test), json_end(test) - 1);
assertEquals(json_size(test), 1);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("Jude"));
assertEquals(ti, json_begin(test));
json_clear(test);
UnitTest::SetPrefix("TestIterators.cpp - Iterator Insert");
CreateTest(test);
ti = json_insert(test, json_begin(test) + 3, json_new_a(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(json_size(test), 6);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("World"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test, 2)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 3)), JSON_TEXT("Pluto"));
assertAutoCString(json_as_string(json_at(test, 4)), JSON_TEXT("Earth"));
assertAutoCString(json_as_string(json_at(test, 5)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Pluto"));
assertEquals(ti, json_begin(test) + 3);
json_clear(test);
CreateTest(test);
ti = json_insert(test, json_begin(test), json_new_a(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(json_size(test), 6);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("Pluto"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("World"));
assertAutoCString(json_as_string(json_at(test, 2)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test, 3)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 4)), JSON_TEXT("Earth"));
assertAutoCString(json_as_string(json_at(test, 5)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Pluto"));
assertEquals(ti, json_begin(test));
json_clear(test);
CreateTest(test);
ti = json_insert(test, json_begin(test) + 5, json_new_a(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(json_size(test), 6);
assertAutoCString(json_as_string(json_at(test, 0)), JSON_TEXT("World"));
assertAutoCString(json_as_string(json_at(test, 1)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test, 2)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test, 3)), JSON_TEXT("Earth"));
assertAutoCString(json_as_string(json_at(test, 4)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(json_at(test, 5)), JSON_TEXT("Pluto"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("Pluto"));
assertEquals(ti, json_begin(test) + 5);
json_clear(test);
UnitTest::SetPrefix("TestIterators.cpp - Iterator Bulk Insert");
JSONNODE * test3 = json_new(JSON_NODE);
CreateTest(test);
CreateTest(test3);
ti = json_insert_multi(test3, json_begin(test3) + 3, json_begin(test) + 1, json_begin(test) + 3);
assertEquals(json_size(test3), 7);
assertAutoCString(json_as_string(json_at(test3, 0)), JSON_TEXT("World"));
assertAutoCString(json_as_string(json_at(test3, 1)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test3, 2)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test3, 3)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test3, 4)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test3, 5)), JSON_TEXT("Earth"));
assertAutoCString(json_as_string(json_at(test3, 6)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("There"));
assertEquals(ti, json_begin(test3) + 3);
json_clear(test);
json_clear(test3);
CreateTest(test);
CreateTest(test3);
ti = json_insert_multi(test3, json_begin(test3), json_begin(test) + 1, json_begin(test) + 3);
assertEquals(json_size(test3), 7);
assertAutoCString(json_as_string(json_at(test3, 0)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test3, 1)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test3, 2)), JSON_TEXT("World"));
assertAutoCString(json_as_string(json_at(test3, 3)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test3, 4)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(json_at(test3, 5)), JSON_TEXT("Earth"));
assertAutoCString(json_as_string(json_at(test3, 6)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("There"));
assertEquals(ti, json_begin(test3));
json_clear(test);
json_clear(test3);
CreateTest(test);
CreateTest(test3);
json_set_a(json_at(test3, 2), JSON_TEXT("lol"));
json_set_a(json_at(test3, 3), JSON_TEXT("lul"));
ti = json_insert_multi(test3, json_begin(test3) + 5, json_begin(test) + 1, json_begin(test) + 3);
assertEquals(json_size(test3), 7);
assertAutoCString(json_as_string(json_at(test3, 0)), JSON_TEXT("World"));
assertAutoCString(json_as_string(json_at(test3, 1)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test3, 2)), JSON_TEXT("lol"));
assertAutoCString(json_as_string(json_at(test3, 3)), JSON_TEXT("lul"));
assertAutoCString(json_as_string(json_at(test3, 4)), JSON_TEXT("Jude"));
assertAutoCString(json_as_string(json_at(test3, 5)), JSON_TEXT("There"));
assertAutoCString(json_as_string(json_at(test3, 6)), JSON_TEXT("Mars"));
assertAutoCString(json_as_string(*ti), JSON_TEXT("There"));
assertEquals(ti, json_begin(test3) + 5);
json_delete(empty);
json_delete(test);
json_delete(test3);
#else
JSONNode empty = JSONNode(JSON_NODE);
assertEquals(empty.begin(), empty.end());
assertEquals(empty.rbegin(), empty.rend());
TestSuite::testParsingItself(empty);
assertException(empty.at(15), std::out_of_range);
assertException(empty.at(JSON_TEXT("hello")), std::out_of_range);
JSONNode test = JSONNode(JSON_NODE);
test.push_back(JSONNode(JSON_TEXT(""), 15));
test.push_back(JSONNode(JSON_TEXT(""), JSON_TEXT("hello world")));
test.push_back(JSONNode(JSON_TEXT(""), true));
assertEquals(test.size(), 3);
TestSuite::testParsingItself(test);
JSONNode::iterator it_test = test.begin();
assertEquals(*it_test, 15);
++it_test;
assertEquals(*it_test, JSON_TEXT("hello world"));
it_test++;
assertEquals(*it_test++, true);
assertEquals(it_test, test.end());
unsigned int i = 0;
for(JSONNode::iterator it = test.begin(), end = test.end(); it != end; ++it){
++i;
}
assertEquals(i, 3);
UnitTest::SetPrefix("TestIterators.cpp - Const Iterator");
const JSONNode test2 = test;
assertEquals(test2.size(), 3);
JSONNode::const_iterator cit_test = test2.begin();
assertEquals(*cit_test, 15);
++cit_test;
assertEquals(*cit_test, JSON_TEXT("hello world"));
cit_test++;
assertEquals(*cit_test++, true);
assertEquals(cit_test, test2.end());
i = 0;
for(JSONNode::const_iterator it = test2.begin(), end = test2.end(); it != end; ++it){
++i;
}
assertEquals(i, 3);
UnitTest::SetPrefix("TestIterators.cpp - Reverse Iterator");
assertEquals(test.size(), 3);
JSONNode::reverse_iterator rit_test = test.rbegin();
assertEquals(*rit_test, true);
++rit_test;
assertEquals(*rit_test, JSON_TEXT("hello world"));
rit_test++;
assertEquals(*rit_test++, 15);
assertEquals(rit_test, test.rend());
i = 0;
for(JSONNode::reverse_iterator it = test.rbegin(), end = test.rend(); it != end; ++it){
++i;
}
assertEquals(i, 3);
UnitTest::SetPrefix("TestIterators.cpp - Reverse Const Iterator");
assertEquals(test2.size(), 3);
JSONNode::reverse_const_iterator rcit_test = test2.rbegin();
assertEquals(*rcit_test, true);
++rcit_test;
assertEquals(*rcit_test, JSON_TEXT("hello world"));
rcit_test++;
assertEquals(*rcit_test++, 15);
assertEquals(rcit_test, test2.rend());
i = 0;
for(JSONNode::reverse_const_iterator it = test2.rbegin(), end = test2.rend(); it != end; ++it){
++i;
}
assertEquals(i, 3);
UnitTest::SetPrefix("TestIterators.cpp - Iterator Find");
test = JSONNode();
CreateTest(test);
JSONNode::iterator ti = test.find(JSON_TEXT("bye"));
assertEquals(ti, test.end());
ti = test.find(JSON_TEXT("Hai"));
assertNotEquals(ti, test.end());
assertEquals(*ti, JSON_TEXT("Mars"));
ti = test.find(JSON_TEXT("Hey"));
assertNotEquals(ti, test.end());
assertEquals(*ti, JSON_TEXT("Jude"));
ti = test.find(JSON_TEXT("Hi"));
assertNotEquals(ti, test.end());
assertEquals(*ti, JSON_TEXT("World"));
#ifdef JSON_CASE_INSENSITIVE_FUNCTIONS
ti = test.find_nocase(JSON_TEXT("BYE"));
assertEquals(ti, test.end());
ti = test.find_nocase(JSON_TEXT("HAI"));
assertNotEquals(ti, test.end());
assertEquals(*ti, JSON_TEXT("Mars"));
ti = test.find_nocase(JSON_TEXT("HEY"));
assertNotEquals(ti, test.end());
assertEquals(*ti, JSON_TEXT("Jude"));
ti = test.find_nocase(JSON_TEXT("HI"));
assertNotEquals(ti, test.end());
assertEquals(*ti, JSON_TEXT("World"));
#endif
UnitTest::SetPrefix("TestIterators.cpp - Iterator Erase");
ti = test.erase(test.begin() + 3);
assertEquals(test.size(), 4);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(test[2], JSON_TEXT("Mars"));
assertEquals(test[3], JSON_TEXT("Jude"));
assertEquals(*ti, JSON_TEXT("Jude"));
ti = test.erase(test.begin());
assertEquals(test.size(), 3);
assertEquals(test[0], JSON_TEXT("There"));
assertEquals(test[1], JSON_TEXT("Mars"));
assertEquals(test[2], JSON_TEXT("Jude"));
assertEquals(*ti, JSON_TEXT("There"));
JSONNode::reverse_iterator rti = test.rbegin();
assertEquals(*rti, JSON_TEXT("Jude"));
#ifdef JSON_SAFE
rti = test.erase(test.rend());
assertEquals(test.size(), 3);
assertEquals(test[0], JSON_TEXT("There"));
assertEquals(test[1], JSON_TEXT("Mars"));
assertEquals(test[2], JSON_TEXT("Jude"));
assertEquals(rti, test.rend());
ti = test.erase(test.end());
assertEquals(test.size(), 3);
assertEquals(test[0], JSON_TEXT("There"));
assertEquals(test[1], JSON_TEXT("Mars"));
assertEquals(test[2], JSON_TEXT("Jude"));
assertEquals(ti, test.end());
#endif
rti = test.erase(test.rbegin());
assertEquals(test.size(), 2);
assertEquals(test[0], JSON_TEXT("There"));
assertEquals(test[1], JSON_TEXT("Mars"));
assertEquals(*rti, JSON_TEXT("Mars"));
rti = test.erase(test.rbegin());
assertEquals(test.size(), 1);
assertEquals(test[0], JSON_TEXT("There"));
assertEquals(*rti, JSON_TEXT("There"));
test.erase(test.rbegin());
assertEquals(test.size(), 0);
#ifdef JSON_SAFE
test.erase(test.rend());
assertEquals(test.size(), 0);
test.erase(test.end());
assertEquals(test.size(), 0);
#endif
CreateTest(test);
i = 0;
for (JSONNode::iterator it = test.begin(); it != test.end(); it = test.erase(it)){
++i;
}
assertEquals(test.size(), 0);
assertEquals(i, 5);
CreateTest(test);
i = 0;
for (JSONNode::reverse_iterator it = test.rbegin(); it != test.rend(); it = test.erase(it)){
++i;
}
assertEquals(test.size(), 0);
assertEquals(i, 5);
UnitTest::SetPrefix("TestIterators.cpp - Iterator Bulk Erase");
CreateTest(test);
ti = test.erase(test.begin(), test.begin());
assertEquals(test.size(), 5);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(test[2], JSON_TEXT("Mars"));
assertEquals(test[3], JSON_TEXT("Earth"));
assertEquals(test[4], JSON_TEXT("Jude"));
assertEquals(ti, test.begin());
test.erase(test.begin(), test.end());
assertEquals(test.size(), 0);
CreateTest(test);
ti = test.erase(test.begin(), test.begin() + 1);
assertEquals(test.size(), 4);
assertEquals(test[0], JSON_TEXT("There"));
assertEquals(test[1], JSON_TEXT("Mars"));
assertEquals(test[2], JSON_TEXT("Earth"));
assertEquals(test[3], JSON_TEXT("Jude"));
assertEquals(ti, test.begin());
ti = test.erase(test.begin(), test.begin() + 2);
assertEquals(test.size(), 2);
assertEquals(test[0], JSON_TEXT("Earth"));
assertEquals(test[1], JSON_TEXT("Jude"));
assertEquals(ti, test.begin());
ti = test.erase(test.begin(), test.end() - 1);
assertEquals(test.size(), 1);
assertEquals(test[0], JSON_TEXT("Jude"));
assertEquals(ti, test.begin());
test.clear();
UnitTest::SetPrefix("TestIterators.cpp - Iterator Bulk Reverse Erase");
CreateTest(test);
rti = test.erase(test.rbegin(), test.rbegin());
assertEquals(test.size(), 5);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(test[2], JSON_TEXT("Mars"));
assertEquals(test[3], JSON_TEXT("Earth"));
assertEquals(test[4], JSON_TEXT("Jude"));
assertEquals(rti, test.rbegin());
rti = test.erase(test.rbegin(), test.rend());
assertEquals(test.size(), 0);
assertEquals(rti, test.rbegin());
assertEquals(rti, test.rend());
CreateTest(test);
rti = test.erase(test.rbegin(), test.rbegin() + 1);
assertEquals(test.size(), 4);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(test[2], JSON_TEXT("Mars"));
assertEquals(test[3], JSON_TEXT("Earth"));
assertEquals(rti, test.rbegin());
rti = test.erase(test.rbegin(), test.rbegin() + 2);
assertEquals(rti, test.rbegin());
assertEquals(test.size(), 2);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(rti, test.rbegin());
rti = test.erase(test.rbegin(), test.rend() - 1);
assertEquals(test.size(), 1);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(rti, test.rbegin());
test.clear();
UnitTest::SetPrefix("TestIterators.cpp - Iterator Insert");
CreateTest(test);
ti = test.insert(test.begin() + 3, JSONNode(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(test.size(), 6);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(test[2], JSON_TEXT("Mars"));
assertEquals(test[3], JSON_TEXT("Pluto"));
assertEquals(test[4], JSON_TEXT("Earth"));
assertEquals(test[5], JSON_TEXT("Jude"));
assertEquals(*ti, JSON_TEXT("Pluto"));
assertEquals(ti -> as_string(), JSON_TEXT("Pluto"));
assertEquals(ti, test.begin() + 3);
test.clear();
CreateTest(test);
ti = test.insert(test.begin(), JSONNode(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(test.size(), 6);
assertEquals(test[0], JSON_TEXT("Pluto"));
assertEquals(test[1], JSON_TEXT("World"));
assertEquals(test[2], JSON_TEXT("There"));
assertEquals(test[3], JSON_TEXT("Mars"));
assertEquals(test[4], JSON_TEXT("Earth"));
assertEquals(test[5], JSON_TEXT("Jude"));
assertEquals(*ti, JSON_TEXT("Pluto"));
assertEquals(ti -> as_string(), JSON_TEXT("Pluto"));
assertEquals(ti, test.begin());
test.clear();
CreateTest(test);
ti = test.insert(test.begin() + 5, JSONNode(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(test.size(), 6);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(test[2], JSON_TEXT("Mars"));
assertEquals(test[3], JSON_TEXT("Earth"));
assertEquals(test[4], JSON_TEXT("Jude"));
assertEquals(test[5], JSON_TEXT("Pluto"));
assertEquals(*ti, JSON_TEXT("Pluto"));
assertEquals(ti -> as_string(), JSON_TEXT("Pluto"));
assertEquals(ti, test.begin() + 5);
test.clear();
CreateTest(test);
rti = test.insert(test.rbegin(), JSONNode(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(test.size(), 6);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(test[2], JSON_TEXT("Mars"));
assertEquals(test[3], JSON_TEXT("Earth"));
assertEquals(test[4], JSON_TEXT("Jude"));
assertEquals(test[5], JSON_TEXT("Pluto"));
assertEquals(*rti, JSON_TEXT("Pluto"));
assertEquals(rti, test.rbegin());
test.clear();
CreateTest(test);
rti = test.insert(test.rbegin() + 5, JSONNode(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(test.size(), 6);
assertEquals(test[0], JSON_TEXT("Pluto"));
assertEquals(test[1], JSON_TEXT("World"));
assertEquals(test[2], JSON_TEXT("There"));
assertEquals(test[3], JSON_TEXT("Mars"));
assertEquals(test[4], JSON_TEXT("Earth"));
assertEquals(test[5], JSON_TEXT("Jude"))
assertEquals(*rti, JSON_TEXT("Pluto"));
assertEquals(rti, test.rbegin() + 5);
test.clear();
CreateTest(test);
rti = test.insert(test.rbegin() + 2, JSONNode(JSON_TEXT("olah"), JSON_TEXT("Pluto")));
assertEquals(test.size(), 6);
assertEquals(test[0], JSON_TEXT("World"));
assertEquals(test[1], JSON_TEXT("There"));
assertEquals(test[2], JSON_TEXT("Mars"));
assertEquals(test[3], JSON_TEXT("Pluto"));
assertEquals(test[4], JSON_TEXT("Earth"));
assertEquals(test[5], JSON_TEXT("Jude"));
assertEquals(*rti, JSON_TEXT("Pluto"));
assertEquals(rti, test.rbegin() + 2);
test.clear();
JSONNode test3;
CreateTest(test);
CreateTest(test3);
ti = test3.insert(test3.begin() + 3, test.begin() + 1, test.begin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("World"));
assertEquals(test3[1], JSON_TEXT("There"));
assertEquals(test3[2], JSON_TEXT("Mars"));
assertEquals(test3[3], JSON_TEXT("There"));
assertEquals(test3[4], JSON_TEXT("Mars"));
assertEquals(test3[5], JSON_TEXT("Earth"));
assertEquals(test3[6], JSON_TEXT("Jude"));
assertEquals(*ti, JSON_TEXT("There"));
assertEquals(ti, test3.begin() + 3);
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
ti = test3.insert(test3.begin(), test.begin() + 1, test.begin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("There"));
assertEquals(test3[1], JSON_TEXT("Mars"));
assertEquals(test3[2], JSON_TEXT("World"));
assertEquals(test3[3], JSON_TEXT("There"));
assertEquals(test3[4], JSON_TEXT("Mars"));
assertEquals(test3[5], JSON_TEXT("Earth"));
assertEquals(test3[6], JSON_TEXT("Jude"));
assertEquals(*ti, JSON_TEXT("There"));
assertEquals(ti, test3.begin());
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[2] = JSON_TEXT("lol");
test3[3] = JSON_TEXT("lul");
ti = test3.insert(test3.begin() + 5, test.begin() + 1, test.begin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("World"));
assertEquals(test3[1], JSON_TEXT("There"));
assertEquals(test3[2], JSON_TEXT("lol"));
assertEquals(test3[3], JSON_TEXT("lul"));
assertEquals(test3[4], JSON_TEXT("Jude"));
assertEquals(test3[5], JSON_TEXT("There"));
assertEquals(test3[6], JSON_TEXT("Mars"));
assertEquals(*ti, JSON_TEXT("There"));
assertEquals(ti, test3.begin() + 5);
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[2] = JSON_TEXT("lol");
test3[3] = JSON_TEXT("lul");
ti = test3.insert(test3.begin() + 3, test.rbegin() + 1, test.rbegin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("World"));
assertEquals(test3[1], JSON_TEXT("There"));
assertEquals(test3[2], JSON_TEXT("lol"));
assertEquals(test3[3], JSON_TEXT("Earth"));
assertEquals(test3[4], JSON_TEXT("Mars"));
assertEquals(test3[5], JSON_TEXT("lul"));
assertEquals(test3[6], JSON_TEXT("Jude"));
assertEquals(*ti, JSON_TEXT("Earth"));
assertEquals(ti, test3.begin() + 3);
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[2] = JSON_TEXT("lol");
test3[3] = JSON_TEXT("lul");
ti = test3.insert(test3.begin(), test.rbegin() + 1, test.rbegin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("Earth"));
assertEquals(test3[1], JSON_TEXT("Mars"));
assertEquals(test3[2], JSON_TEXT("World"));
assertEquals(test3[3], JSON_TEXT("There"));
assertEquals(test3[4], JSON_TEXT("lol"));
assertEquals(test3[5], JSON_TEXT("lul"));
assertEquals(test3[6], JSON_TEXT("Jude"));
assertEquals(*ti, JSON_TEXT("Earth"));
assertEquals(ti, test3.begin());
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[2] = JSON_TEXT("lol");
test3[3] = JSON_TEXT("lul");
ti = test3.insert(test3.begin() + 5, test.rbegin() + 1, test.rbegin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("World"));
assertEquals(test3[1], JSON_TEXT("There"));
assertEquals(test3[2], JSON_TEXT("lol"));
assertEquals(test3[3], JSON_TEXT("lul"));
assertEquals(test3[4], JSON_TEXT("Jude"));
assertEquals(test3[5], JSON_TEXT("Earth"));
assertEquals(test3[6], JSON_TEXT("Mars"));
assertEquals(*ti, JSON_TEXT("Earth"));
assertEquals(ti, test3.begin() + 5);
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[1] = JSON_TEXT("lol");
test3[2] = JSON_TEXT("lul");
rti = test3.insert(test3.rbegin(), test.begin() + 1, test.begin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("World"));
assertEquals(test3[1], JSON_TEXT("lol"));
assertEquals(test3[2], JSON_TEXT("lul"));
assertEquals(test3[3], JSON_TEXT("Earth"));
assertEquals(test3[4], JSON_TEXT("Jude"));
assertEquals(test3[5], JSON_TEXT("Mars"));
assertEquals(test3[6], JSON_TEXT("There"));
assertEquals(*rti, JSON_TEXT("There"));
assertEquals(rti, test3.rbegin());
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[1] = JSON_TEXT("lol");
test3[2] = JSON_TEXT("lul");
rti = test3.insert(test3.rbegin() + 3, test.begin() + 1, test.begin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("World"));
assertEquals(test3[1], JSON_TEXT("lol"));
assertEquals(test3[2], JSON_TEXT("Mars"));
assertEquals(test3[3], JSON_TEXT("There"));
assertEquals(test3[4], JSON_TEXT("lul"));
assertEquals(test3[5], JSON_TEXT("Earth"));
assertEquals(test3[6], JSON_TEXT("Jude"));
assertEquals(*rti, JSON_TEXT("There"));
assertEquals(rti, test3.rbegin() + 3);
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[1] = JSON_TEXT("lol");
test3[2] = JSON_TEXT("lul");
rti = test3.insert(test3.rbegin() + 5, test.begin() + 1, test.begin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("Mars"));
assertEquals(test3[1], JSON_TEXT("There"));
assertEquals(test3[2], JSON_TEXT("World"));
assertEquals(test3[3], JSON_TEXT("lol"));
assertEquals(test3[4], JSON_TEXT("lul"));
assertEquals(test3[5], JSON_TEXT("Earth"));
assertEquals(test3[6], JSON_TEXT("Jude"));
assertEquals(*rti, JSON_TEXT("There"));
assertEquals(rti, test3.rbegin() + 5);
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[2] = JSON_TEXT("lol");
test3[3] = JSON_TEXT("lul");
rti = test3.insert(test3.rbegin(), test.rbegin() + 1, test.rbegin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("World"));
assertEquals(test3[1], JSON_TEXT("There"));
assertEquals(test3[2], JSON_TEXT("lol"));
assertEquals(test3[3], JSON_TEXT("lul"));
assertEquals(test3[4], JSON_TEXT("Jude"));
assertEquals(test3[5], JSON_TEXT("Earth"));
assertEquals(test3[6], JSON_TEXT("Mars"));
assertEquals(*rti, JSON_TEXT("Mars"));
assertEquals(rti, test3.rbegin());
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[2] = JSON_TEXT("lol");
test3[3] = JSON_TEXT("lul");
rti = test3.insert(test3.rbegin() + 3, test.rbegin() + 1, test.rbegin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("World"));
assertEquals(test3[1], JSON_TEXT("There"));
assertEquals(test3[2], JSON_TEXT("Earth"));
assertEquals(test3[3], JSON_TEXT("Mars"));
assertEquals(test3[4], JSON_TEXT("lol"));
assertEquals(test3[5], JSON_TEXT("lul"));
assertEquals(test3[6], JSON_TEXT("Jude"));
assertEquals(*rti, JSON_TEXT("Mars"));
assertEquals(rti, test3.rbegin() + 3);
test.clear();
test3.clear();
CreateTest(test);
CreateTest(test3);
test3[2] = JSON_TEXT("lol");
test3[3] = JSON_TEXT("lul");
rti = test3.insert(test3.rbegin() + 5, test.rbegin() + 1, test.rbegin() + 3);
assertEquals(test3.size(), 7);
assertEquals(test3[0], JSON_TEXT("Earth"));
assertEquals(test3[1], JSON_TEXT("Mars"));
assertEquals(test3[2], JSON_TEXT("World"));
assertEquals(test3[3], JSON_TEXT("There"));
assertEquals(test3[4], JSON_TEXT("lol"));
assertEquals(test3[5], JSON_TEXT("lul"));
assertEquals(test3[6], JSON_TEXT("Jude"));
assertEquals(*rti, JSON_TEXT("Mars"));
assertEquals(rti, test3.rbegin() + 5);
test.clear();
test3.clear();
#endif
#endif
}