void testParse2() { IntegerSet a; a.parse(" [-3,2] 5 8-9 10- "); // insert(-3,2); insert(5); insert(8,9); insert(10,INT_MAX); unit_assert(a.intervalCount() == 3); unit_assert(a.size() == 9ul + numeric_limits<int>::max()-10+1); vector<int> b; IntegerSet::const_iterator it = a.begin(); for (int i=0; i<11; ++i, ++it) // don't copy to the end() unless you have lots of time and space ;) b.push_back(*it); unit_assert(b.size() == 11); unit_assert(b[0] == -3); unit_assert(b[1] == -2); unit_assert(b[2] == -1); unit_assert(b[3] == 0); unit_assert(b[4] == 1); unit_assert(b[5] == 2); unit_assert(b[6] == 5); unit_assert(b[7] == 8); unit_assert(b[8] == 9); unit_assert(b[9] == 10); unit_assert(b[10] == 11); }
void testParse() { IntegerSet a; a.parse(" [-3,2] [5,5] [8,9] booger "); // insert(-3,2); insert(5); insert(8,9); unit_assert(a.intervalCount() == 3); unit_assert(a.size() == 9); vector<int> b; copy(a.begin(), a.end(), back_inserter(b)); unit_assert(b.size() == 9); unit_assert(b[0] == -3); unit_assert(b[1] == -2); unit_assert(b[2] == -1); unit_assert(b[3] == 0); unit_assert(b[4] == 1); unit_assert(b[5] == 2); unit_assert(b[6] == 5); unit_assert(b[7] == 8); unit_assert(b[8] == 9); }