/* IterCursor(Test) - verify operation of a iterator based navigation cursor Copyright (C) 2015, Hermann Vosseler   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the   Free Software Foundation; either version 2 of the License, or (at your   option) any later version. See the file COPYING for further details. * *****************************************************************/ /** @file iter-cursor-test.cpp ** unit test \ref IterCursor_test */ #include "lib/test/run.hpp" #include "lib/test/test-helper.hpp" #include "lib/format-util.hpp" #include "lib/iter-cursor.hpp" #include "lib/util.hpp" #include namespace lib { namespace test{ using ::Test; using util::join; using util::isnil; using std::vector; using LERR_(ITER_EXHAUST); namespace { // test fixture const uint NUM_ELMS = 10; using Numz = vector; using Iter = IterCursor; using CIter = IterCursor; inline Numz makeNumz() { Numz numz; for (uint i=0; i void verifyComparisons (IT const& ii) { IT i1(ii); IT i2(ii); IT iN; CHECK ( isnil (iN)); CHECK (!isnil (i1)); CHECK (!isnil (i2)); CHECK (i1 == i2); CHECK (i2 == i1); CHECK (i1 != iN); CHECK (iN != i1); CHECK (i2 != iN); CHECK (iN != i2); ++i1; CHECK (i1 != i2); CHECK (i1 != iN); ++i2; CHECK (i1 == i2); CHECK (i1 != iN); CHECK (i2 != iN); while (++i1) { } CHECK (isnil(i1)); CHECK (i1 != i2); CHECK (i1 == iN); while (++i2) { } CHECK (isnil(i2)); CHECK (i2 == i1); CHECK (i2 == iN); } }; LAUNCHER (IterCursor_test, "unit common"); }} // namespace lib::test