38 using LERR_(ITER_EXHAUST);
53 for (
uint i=0; i<NUM_ELMS; ++i)
90 Numz numz{makeNumz()};
91 Iter i1{numz.begin(), numz.end()};
97 for (
uint i=*i1 ; i1; ++i1, ++i)
106 uint n = numz.size() - 1;
107 CHECK (sum == n*(n+1) / 2);
114 CHECK (join(i4,
"-+-") ==
"1-+-2-+-3-+-4-+-5-+-6-+-7-+-8-+-9-+-10");
130 Numz numz{makeNumz()};
136 CHECK (!isnil(
iter));
137 CHECK (join(
iter) ==
"4, 5, 6, 7, 8, 9");
142 CHECK (!isnil(
iter));
145 CHECK (!isnil(
iter));
146 CHECK (join(
iter) ==
"3, 2, 1, 0");
153 CHECK (!isnil(
iter));
157 CHECK (!isnil(
iter));
164 CHECK (!isnil(
iter));
172 CHECK (!isnil(
iter));
181 CHECK (!isnil(
iter));
200 Numz numz{makeNumz()};
201 Numz
const& const_numz{numz};
204 for (Iter
iter{numz};
209 CHECK (
iter != Iter());
212 CHECK (*
iter == i-1);
216 for (CIter
iter{const_numz};
221 CHECK (
iter != CIter());
222 CHECK (*
iter == i-1);
254 CHECK (i1 == i2); CHECK (i2 == i1);
255 CHECK (i1 != iN); CHECK (iN != i1);
256 CHECK (i2 != iN); CHECK (iN != i2);
A cursor-like iterator with the ability to switch iteration direction.
void verifyComparisons(IT const &ii)
void iterTypeVariations()
An iterator with the ability to switch direction.
IterCursor< Numz::const_iterator > CIter
IterCursor< Numz::iterator > Iter
Implementation namespace for support and library code.
Test runner and basic definitions for tests.
string join(COLL &&coll, string const &delim=", ")
enumerate a collection's contents, separated by delimiter.
bool isnil(lib::time::Duration const &dur)
Simplistic test class runner.
#define LAUNCHER(_TEST_CLASS_, _GROUPS_)
A collection of frequently used helper functions to support unit testing.
#define VERIFY_ERROR(ERROR_ID, ERRONEOUS_STATEMENT)
Macro to verify that a statement indeed raises an exception.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...