9 struct LongIntFixtureBlank
11 flex_arr<long,false> arr;
12 LongIntFixtureBlank() {}
13 ~LongIntFixtureBlank() {}
17 struct LongIntFixtureGeneric
19 flex_arr<long,lgBC> arr;
20 LongIntFixtureGeneric()
23 for(
int i=5; i < 10; ++i )
26 ~LongIntFixtureGeneric() {}
29 typedef LongIntFixtureGeneric<false> LongIntFixture;
30 typedef LongIntFixtureGeneric<true> LongIntFixtureBC;
32 struct LongIntFixtureFill
34 flex_arr<long,false> arr;
38 for(
int i=5; i < 10; ++i )
41 ~LongIntFixtureFill() {}
46 for( p=arr.begin(); p != arr.end(); ++p )
53 flex_arr<realnum,false> arr;
57 for(
int i=5; i < 10; ++i )
65 flex_arr<double,false> arr;
69 for(
int i=5; i < 10; ++i )
75 struct StructWithConstructorFixture
83 flex_arr<a,false> arr;
84 StructWithConstructorFixture()
88 ~StructWithConstructorFixture() {}
91 struct TestAllocFixture
94 ~TestAllocFixture() {}
97 flex_arr<long,true> a(2,20);
104 for (
int i=2; i<20; ++i)
114 TEST_FIXTURE(LongIntFixture,TestZero)
117 for(
int i=5; i < 10; ++i )
118 CHECK_EQUAL(0,arr[i]);
123 TEST_FIXTURE(LongIntFixture,TestInvalidate1)
126 for(
int i=5; i < 10; ++i )
127 CHECK_EQUAL(-1,arr[i]);
132 TEST_FIXTURE(RealNumFixture,TestInvalidate2)
135 for(
int i=5; i < 10; ++i )
136 CHECK(
isnan(arr[i]));
141 TEST_FIXTURE(DoubleFixture,TestInvalidate3)
144 for(
int i=5; i < 10; ++i )
145 CHECK(
isnan(arr[i]));
150 TEST_FIXTURE(LongIntFixtureBC,TestAccess1)
152 for(
int i=5; i < 10; ++i )
153 CHECK_EQUAL(i,arr[i]);
154 CHECK_THROW(arr[4],out_of_range);
155 CHECK_THROW(arr[10],out_of_range);
157 for(
int i=5; i < 10; ++i )
158 CHECK_EQUAL(i,(*carr)[i]);
159 CHECK_THROW((*carr)[4],out_of_range);
160 CHECK_THROW((*carr)[10],out_of_range);
163 TEST_FIXTURE(LongIntFixtureBC,TestAccess2)
165 for(
int i=5; i < 10; ++i )
166 CHECK_EQUAL(i,arr[i]);
167 CHECK_THROW(arr[4],out_of_range);
168 CHECK_THROW(arr[10],out_of_range);
170 for(
int i=5; i < 10; ++i )
171 CHECK_EQUAL(i,(*carr)[i]);
172 CHECK_THROW((*carr)[4],out_of_range);
173 CHECK_THROW((*carr)[10],out_of_range);
176 TEST_FIXTURE(LongIntFixture,TestAccess3)
178 for(
int i=5; i < 10; ++i )
179 CHECK_EQUAL(i,*arr.
ptr(i));
181 for(
int i=5; i < 10; ++i )
182 CHECK_EQUAL(i,*carr->
ptr(i));
185 TEST_FIXTURE(LongIntFixtureBC,TestAccess4)
187 for(
int i=5; i < 10; ++i )
188 CHECK_EQUAL(i,*arr.
ptr(i));
189 CHECK_THROW(*arr.
ptr(4),out_of_range);
190 CHECK_THROW(*arr.
ptr(10),out_of_range);
192 for(
int i=5; i < 10; ++i )
193 CHECK_EQUAL(i,*carr->
ptr(i));
194 CHECK_THROW(*carr->
ptr(4),out_of_range);
195 CHECK_THROW(*carr->
ptr(10),out_of_range);
198 TEST_FIXTURE(LongIntFixture,TestAccess5)
200 for(
int i=5; i < 10; ++i )
201 CHECK_EQUAL(i,arr.
at(i));
202 CHECK_THROW(arr.
at(4),out_of_range);
203 CHECK_THROW(arr.
at(10),out_of_range);
205 for(
int i=5; i < 10; ++i )
206 CHECK_EQUAL(i,carr->
at(i));
207 CHECK_THROW(carr->
at(4),out_of_range);
208 CHECK_THROW(carr->
at(10),out_of_range);
212 TEST_FIXTURE(LongIntFixture,TestStateDo)
214 const char *fnam =
"tfa.872GqS";
215 FILE *io = fopen( fnam,
"wb" );
220 io = fopen( fnam,
"rb" );
225 CHECK_EQUAL(7,arr[7]);
228 TEST_FIXTURE(LongIntFixtureBC,TestBoundaries)
231 CHECK( arr.
end() == arr.
ptr(10) );
232 CHECK( &arr.
front() == &arr[5] );
233 CHECK( &arr.
back() == &arr[9] );
234 CHECK( arr.
data() == &arr[5] );
236 CHECK( carr->
begin() == arr.
ptr(5) );
237 CHECK( carr->
end() == arr.
ptr(10) );
238 CHECK( &carr->
front() == &arr[5] );
239 CHECK( &carr->
back() == &arr[9] );
240 CHECK( carr->
data() == &arr[5] );
243 TEST_FIXTURE(LongIntFixtureFill,TestRealloc)
246 for(
int i=5; i < 10; ++i )
247 CHECK_EQUAL( i-4, arr[i] );
248 long *pold = arr.
data();
250 long *pnew = arr.
data();
251 CHECK( pold != pnew );
252 for(
int i=5; i < 10; ++i )
253 CHECK_EQUAL( i-4, arr[i] );
256 TEST_FIXTURE(LongIntFixtureBlank,TestAllocationWithoutReservation)
258 CHECK_EQUAL(0L,arr.
size());
260 CHECK( arr.
empty() );
262 CHECK_EQUAL(5L,arr.
size());
264 CHECK( !arr.
empty() );
266 CHECK_EQUAL(25L,arr.
size());
268 CHECK( !arr.
empty() );
270 CHECK_EQUAL(5L,arr.
size());
272 CHECK( !arr.
empty() );
274 CHECK_EQUAL(0L,arr.
size());
276 CHECK( arr.
empty() );
278 CHECK_EQUAL(0L,arr.
size());
280 CHECK( arr.
empty() );
282 CHECK_EQUAL(17L,arr.
size());
284 CHECK( !arr.
empty() );
286 CHECK_EQUAL(0L,arr.
size());
288 CHECK( arr.
empty() );
290 CHECK_EQUAL(0L,arr.
size());
292 CHECK( arr.
empty() );
294 CHECK_EQUAL(35L,arr.
size());
296 CHECK( !arr.
empty() );
299 TEST_FIXTURE(LongIntFixtureBlank,TestAllocationWithReservation)
302 CHECK_EQUAL(0L,arr.
size());
304 CHECK( arr.
empty() );
306 CHECK_EQUAL(5L,arr.
size());
308 CHECK( !arr.
empty() );
310 CHECK_EQUAL(25L,arr.
size());
312 CHECK( !arr.
empty() );
314 CHECK_EQUAL(195L,arr.
size());
316 CHECK( !arr.
empty() );
318 CHECK_EQUAL(0L,arr.
size());
320 CHECK( arr.
empty() );
322 CHECK_EQUAL(0L,arr.
size());
324 CHECK( arr.
empty() );
326 CHECK_EQUAL(0L,arr.
size());
328 CHECK( arr.
empty() );
330 CHECK_EQUAL(0L,arr.
size());
332 CHECK( arr.
empty() );
334 CHECK_EQUAL(20L,arr.
size());
336 CHECK( !arr.
empty() );
339 TEST_FIXTURE(StructWithConstructorFixture,TestAllocationWithConstructor)
341 for(
int i=7; i < 12; ++i )
342 CHECK_EQUAL(23,arr[i].n);
347 TEST_FIXTURE(TestAllocFixture,TestVariantAlloc)
349 CHECK_EQUAL(0,mytest());
352 TEST_FIXTURE(LongIntFixtureBC,TestCopyOperator)
355 CHECK( arr.
size() != arr2.size() );
357 CHECK_EQUAL(0,arr2[114]);
359 CHECK( arr.
size() == arr2.size() );
361 CHECK( &arr[5] != &arr2[5] );
362 for (
int i=5; i<10; ++i)
363 CHECK_EQUAL(i,arr2[i]);
365 CHECK_THROW(arr2[4],out_of_range);
366 CHECK_THROW(arr2[10],out_of_range);
371 CHECK_EQUAL(9,arr2[9]);
377 CHECK( &arr[5] != &arr3[5] );
378 for (
int i=5; i<10; ++i)
379 CHECK_EQUAL(i,arr3[i]);
383 CHECK_EQUAL(0L,arr2.size());
void reserve(size_type size)
reference at(size_type i)
void realloc(size_type end)
size_type capacity() const
void state_do(FILE *out, bool lgGet)
iterator ptr(size_type i)
void alloc(size_type begin, size_type end)