33 using lumiera::error::LUMIERA_ERROR_ITER_EXHAUST;
65 CHECK (isnil (holder));
69 Dummy& ref = holder.manage (ptr);
70 CHECK (!isnil (holder));
74 holder.manage (
new Dummy);
75 holder.manage (
new Dummy);
76 CHECK (3 == holder.size());
80 CHECK (isnil (holder));
82 holder.manage (
new Dummy);
83 holder.manage (
new Dummy);
84 holder.manage (
new Dummy);
85 holder.manage (
new Dummy);
86 holder.manage (
new Dummy);
87 holder.manage (
new Dummy);
88 holder.manage (
new Dummy);
89 holder.manage (
new Dummy);
90 holder.manage (
new Dummy);
91 CHECK (9 == holder.size());
104 for (
int i=0; i<16; ++i)
105 holder.manage(
new Dummy(i));
108 VectD::iterator ii = holder.begin();
111 CHECK (check == ii->getVal());
119 VectD::const_iterator cii = holder.begin();
122 CHECK (check == cii->getVal());
129 CHECK (not holder.end());
130 CHECK (isnil (holder.end()));
135 CHECK (ii == holder.end());
136 CHECK (cii == holder.end());
149 Dummy* extracted{
nullptr};
154 CHECK (isnil (holder));
156 holder.manage (
new Dummy);
157 holder.manage (
new Dummy);
158 holder.manage (
new Dummy);
159 holder.manage (
new Dummy);
160 holder.manage (
new Dummy);
161 CHECK (5 == holder.size());
164 id2 = holder[2].getVal();
165 id3 = holder[3].getVal();
167 extracted = holder.detach(& holder[2]);
168 CHECK (id2 == extracted->getVal());
169 CHECK (id3 == holder[2].getVal());
170 CHECK (4 == holder.size());
175 extracted->setVal(id2+id3);
190 org.manage (
new Dummy);
191 org.manage (
new Dummy);
192 org.manage (
new Dummy);
194 CHECK (not isnil (org));
195 CHECK ( isnil (left));
198 int id0 = org[0].getVal(),
199 id1 = org[1].getVal(),
200 id2 = org[2].getVal();
203 VectD right{std::move (org)};
204 CHECK ( isnil (org));
205 CHECK ( isnil (left));
206 CHECK (not isnil (right));
210 left = std::move (right);
211 CHECK ( isnil (org));
212 CHECK (not isnil (left));
213 CHECK ( isnil (right));
215 CHECK (id0 == left[0].getVal());
216 CHECK (id1 == left[1].getVal());
217 CHECK (id2 == left[2].getVal());
Simple vector based collection of pointers, managing lifecycle of the pointed-to objects.
A Dummy object for tests.
ScopedPtrVect< Dummy > VectD
Implementation namespace for support and library code.
Test runner and basic definitions for tests.
bool isnil(lib::time::Duration const &dur)
Simplistic test class runner.
#define LAUNCHER(_TEST_CLASS_, _GROUPS_)
Managing lifecycle for a collection of objects.
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.
unittest helper code: test dummy objects to track instances.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...