| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838 |
- #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
- }
|