3 #ifndef CDSTEST_HDR_SKIPLIST_SET_H
4 #define CDSTEST_HDR_SKIPLIST_SET_H
6 #include "set/hdr_set.h"
10 class SkipListSetHdrTest: public HashSetHdrTest
12 typedef HashSetHdrTest base_class;
14 typedef base_class::other_item wrapped_item;
15 typedef base_class::other_less wrapped_less;
17 template <class Set, typename PrintStat >
21 base_class::test_int_with( s );
23 static int const nLimit = 10000;
24 typedef typename Set::iterator set_iterator;
25 typedef typename Set::const_iterator const_set_iterator;
26 typedef typename Set::guarded_ptr guarded_ptr;
31 int arrRandom[nLimit];
32 for ( int i = 0; i < nLimit; ++i )
34 shuffle( arrRandom, arrRandom + nLimit );
37 // Test iterator - ascending order
39 CPPUNIT_ASSERT( s.empty() );
41 for ( int i = 0; i < nLimit; ++i ) {
44 CPPUNIT_CHECK( gp.empty() );
46 CPPUNIT_ASSERT( s.insert(i) );
50 CPPUNIT_ASSERT( !gp.empty());
51 CPPUNIT_CHECK( gp->nKey == i );
52 CPPUNIT_CHECK( gp->nVal == i );
55 CPPUNIT_MSG( PrintStat()(s, "Iterator test, ascending insert order") );
59 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
60 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
61 CPPUNIT_ASSERT( s.contains( it->nKey ));
62 it->nVal = (*it).nKey * 2;
64 if ( it != s.begin() ) {
65 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
70 gp = s.get( it->nKey );
72 CPPUNIT_ASSERT( !gp.empty() );
73 CPPUNIT_CHECK( gp->nKey == it->nKey );
74 CPPUNIT_CHECK( gp->nVal == it->nKey * 2 );
77 CPPUNIT_ASSERT( nCount == nLimit );
80 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
81 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
83 if ( it != s.cbegin() ) {
84 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
88 CPPUNIT_ASSERT( nCount == nLimit );
90 // Test iterator - descending order
92 CPPUNIT_ASSERT( s.empty() );
94 for ( int i = nLimit; i > 0; --i ) {
95 gp = s.get_with( i - 1, base_class::less<typename Set::value_type>());
97 CPPUNIT_CHECK( gp.empty() );
99 CPPUNIT_ASSERT( s.insert( std::make_pair(i - 1, (i-1) * 2) ));
102 gp = s.get_with( i - 1, base_class::less<typename Set::value_type>());
104 CPPUNIT_ASSERT( !gp.empty());
105 CPPUNIT_CHECK( gp->nKey == i-1 );
106 CPPUNIT_CHECK( gp->nVal == (i-1) * 2 );
109 CPPUNIT_MSG( PrintStat()(s, "Iterator test, descending insert order") );
113 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
114 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
115 CPPUNIT_ASSERT( s.contains( it->nKey ));
116 it->nVal = (*it).nKey;
118 if ( it != s.begin() ) {
119 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
123 CPPUNIT_ASSERT( nCount == nLimit );
126 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
127 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
129 if ( it != s.cbegin() ) {
130 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
134 CPPUNIT_ASSERT( nCount == nLimit );
136 // Test iterator - random order
138 CPPUNIT_ASSERT( s.empty() );
140 for ( int i = 0; i < nLimit; ++i )
141 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
142 CPPUNIT_MSG( PrintStat()(s, "Iterator test, random insert order") );
147 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
148 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
149 CPPUNIT_ASSERT( s.contains( it->nKey ));
150 it->nVal = (*it).nKey * 2;
152 if ( it != s.begin() ) {
153 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
157 CPPUNIT_ASSERT( nCount == nLimit );
160 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
161 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
163 if ( it != s.cbegin() ) {
164 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
168 CPPUNIT_ASSERT( nCount == nLimit );
172 typedef typename base_class::less<typename Set::value_type> less_predicate;
173 typename Set::guarded_ptr gp;
176 for ( int i = 0; i < nLimit; ++i ) {
177 int nKey = arrRandom[i];
179 CPPUNIT_ASSERT( gp );
180 CPPUNIT_ASSERT( !gp.empty());
181 CPPUNIT_CHECK( gp->nKey == nKey );
182 CPPUNIT_CHECK( gp->nVal == nKey * 2);
185 gp = s.extract( nKey );
186 CPPUNIT_ASSERT( gp );
187 CPPUNIT_ASSERT( !gp.empty());
188 CPPUNIT_CHECK( gp->nKey == nKey );
189 CPPUNIT_CHECK( gp->nVal == nKey * 2);
193 CPPUNIT_CHECK( !gp );
194 CPPUNIT_ASSERT( gp.empty());
195 CPPUNIT_ASSERT( !s.extract(nKey));
197 CPPUNIT_ASSERT( s.empty() );
199 // extract_with/get_with
200 for ( int i = 0; i < nLimit; ++i )
201 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
203 for ( int i = 0; i < nLimit; ++i ) {
204 int nKey = arrRandom[i];
205 gp = s.get_with( wrapped_item( nKey ), wrapped_less());
206 CPPUNIT_ASSERT( gp );
207 CPPUNIT_ASSERT( !gp.empty());
208 CPPUNIT_CHECK( gp->nKey == nKey );
209 CPPUNIT_CHECK( gp->nVal == nKey );
212 gp = s.extract_with( wrapped_item( nKey ), wrapped_less());
213 CPPUNIT_ASSERT( gp );
214 CPPUNIT_ASSERT( !gp.empty());
215 CPPUNIT_CHECK( gp->nKey == nKey );
216 CPPUNIT_CHECK( gp->nVal == nKey );
219 gp = s.get_with( wrapped_item( nKey ), wrapped_less());
220 CPPUNIT_CHECK( !gp );
221 CPPUNIT_ASSERT( !s.extract_with( wrapped_item(nKey), wrapped_less() ));
223 CPPUNIT_ASSERT( s.empty() );
226 for ( int i = 0; i < nLimit; ++i )
227 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
229 for ( int i = 0; i < nLimit; ++i ) {
230 gp = s.extract_min();
231 CPPUNIT_ASSERT( gp );
232 CPPUNIT_ASSERT( !gp.empty());
233 CPPUNIT_CHECK( gp->nKey == i );
234 CPPUNIT_CHECK( gp->nVal == i );
238 CPPUNIT_CHECK( !gp );
240 CPPUNIT_ASSERT( s.empty() );
241 CPPUNIT_CHECK( !s.extract_min());
242 CPPUNIT_CHECK( !s.extract_max());
245 for ( int i = 0; i < nLimit; ++i )
246 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
248 for ( int i = nLimit-1; i >= 0; --i ) {
249 gp = s.extract_max();
250 CPPUNIT_ASSERT( gp );
251 CPPUNIT_ASSERT( !gp.empty());
252 CPPUNIT_CHECK( gp->nKey == i );
253 CPPUNIT_CHECK( gp->nVal == i );
257 CPPUNIT_CHECK( !gp );
259 CPPUNIT_ASSERT( s.empty() );
260 CPPUNIT_CHECK( !s.extract_min());
261 CPPUNIT_CHECK( !s.extract_max());
264 CPPUNIT_MSG( PrintStat()(s, nullptr) );
267 template <class Set, typename PrintStat >
270 typedef typename Set::value_type value_type;
271 typedef typename Set::iterator iterator;
272 typedef typename Set::const_iterator const_iterator;
277 CPPUNIT_ASSERT( s.empty() );
278 CPPUNIT_ASSERT( check_size( s, 0 ));
282 CPPUNIT_ASSERT( it != s.end() );
283 CPPUNIT_ASSERT( it->key() == 10 );
284 CPPUNIT_ASSERT( it->val() == 10 );
285 CPPUNIT_ASSERT( !s.empty() );
286 CPPUNIT_ASSERT( check_size( s, 1 ));
287 CPPUNIT_ASSERT( s.insert( 10 ) == s.end() );
289 it = s.insert( std::make_pair( 50, 25 ));
290 CPPUNIT_ASSERT( it != s.end() );
291 CPPUNIT_ASSERT( it->key() == 50 );
292 CPPUNIT_ASSERT( it->val() == 25 );
293 CPPUNIT_ASSERT( !s.empty() );
294 CPPUNIT_ASSERT( check_size( s, 2 ));
295 CPPUNIT_ASSERT( s.insert( 50 ) == s.end() );
298 std::pair< iterator, bool> updateResult;
299 updateResult = s.update(20, false);
300 CPPUNIT_ASSERT(updateResult.first == s.end());
301 CPPUNIT_ASSERT(!updateResult.second);
302 CPPUNIT_ASSERT(check_size(s, 2));
304 updateResult = s.update( 20 );
305 CPPUNIT_ASSERT( updateResult.first != s.end() );
306 CPPUNIT_ASSERT( updateResult.second );
307 CPPUNIT_ASSERT( updateResult.first->key() == 20 );
308 CPPUNIT_ASSERT( updateResult.first->val() == 20 );
309 CPPUNIT_ASSERT( !s.empty() );
310 CPPUNIT_ASSERT( check_size( s, 3 ));
312 updateResult = s.update( std::make_pair( 20, 200 ));
313 CPPUNIT_ASSERT( updateResult.first != s.end() );
314 CPPUNIT_ASSERT( !updateResult.second );
315 CPPUNIT_ASSERT( updateResult.first->key() == 20 );
316 CPPUNIT_ASSERT( updateResult.first->val() == 20 );
317 CPPUNIT_ASSERT( !s.empty() );
318 CPPUNIT_ASSERT( check_size( s, 3 ));
319 updateResult.first->nVal = 22;
321 updateResult = s.update( std::make_pair( 30, 33 ));
322 CPPUNIT_ASSERT( updateResult.first != s.end() );
323 CPPUNIT_ASSERT( updateResult.second );
324 CPPUNIT_ASSERT( updateResult.first->key() == 30 );
325 CPPUNIT_ASSERT( updateResult.first->val() == 33 );
326 CPPUNIT_ASSERT( !s.empty() );
327 CPPUNIT_ASSERT( check_size( s, 4 ));
330 it = s.contains( 10 );
331 CPPUNIT_ASSERT( it != s.end() );
332 CPPUNIT_ASSERT( it->key() == 10 );
333 CPPUNIT_ASSERT( it->val() == 10 );
335 it = s.contains( 20 );
336 CPPUNIT_ASSERT( it != s.end() );
337 CPPUNIT_ASSERT( it->key() == 20 );
338 CPPUNIT_ASSERT( it->val() == 22 );
340 it = s.contains( 30, base_class::less<value_type>() );
341 CPPUNIT_ASSERT( it != s.end() );
342 CPPUNIT_ASSERT( it->key() == 30 );
343 CPPUNIT_ASSERT( it->val() == 33 );
345 it = s.contains( 40 );
346 CPPUNIT_ASSERT( it == s.end() );
348 it = s.contains( 50 );
349 CPPUNIT_ASSERT( it != s.end() );
350 CPPUNIT_ASSERT( it->key() == 50 );
351 CPPUNIT_ASSERT( it->val() == 25 );
354 it = s.emplace( 151 ) ; // key = 151, val = 151
355 CPPUNIT_ASSERT( it != s.end() );
356 CPPUNIT_ASSERT( it->key() == 151 );
357 CPPUNIT_ASSERT( it->val() == 151 );
359 it = s.emplace( 174, 471 ) ; // key == 174, val = 471
360 CPPUNIT_ASSERT( it != s.end() );
361 CPPUNIT_ASSERT( it->key() == 174 );
362 CPPUNIT_ASSERT( it->val() == 471 );
364 it = s.emplace( std::make_pair( 190, 91 )) ; // key == 190, val = 91
365 CPPUNIT_ASSERT( it != s.end() );
366 CPPUNIT_ASSERT( it->key() == 190 );
367 CPPUNIT_ASSERT( it->val() == 91 );
369 it = s.contains( 174 );
370 CPPUNIT_ASSERT( it != s.end() );
371 CPPUNIT_ASSERT( it->key() == 174 );
372 CPPUNIT_ASSERT( it->val() == 471 );
374 it = s.contains( 190 );
375 CPPUNIT_ASSERT( it != s.end() );
376 CPPUNIT_ASSERT( it->key() == 190 );
377 CPPUNIT_ASSERT( it->val() == 91 );
379 it = s.contains( 151 );
380 CPPUNIT_ASSERT( it != s.end() );
381 CPPUNIT_ASSERT( it->key() == 151 );
382 CPPUNIT_ASSERT( it->val() == 151 );
384 CPPUNIT_ASSERT( !s.empty() );
386 CPPUNIT_ASSERT( s.empty() );
387 CPPUNIT_ASSERT( check_size( s, 0 ));
390 for ( int i = 500; i > 0; --i ) {
391 CPPUNIT_ASSERT( s.insert( std::make_pair( i, i * 2) ) != s.end() );
393 typename Set::value_type * pVal = s.get_min();
394 CPPUNIT_ASSERT( pVal != nullptr );
395 CPPUNIT_CHECK( pVal->nKey == i );
396 CPPUNIT_CHECK( pVal->nVal == i * 2 );
398 CPPUNIT_ASSERT( !s.empty() );
400 CPPUNIT_ASSERT( s.empty() );
401 CPPUNIT_ASSERT( check_size( s, 0 ));
403 CPPUNIT_CHECK( s.get_min() == nullptr );
404 CPPUNIT_CHECK( s.get_max() == nullptr );
407 for ( int i = 0; i < 500; ++i ) {
408 CPPUNIT_ASSERT( s.insert( std::make_pair( i, i * 2) ) != s.end() );
410 typename Set::value_type * pVal = s.get_max();
411 CPPUNIT_ASSERT( pVal != nullptr );
412 CPPUNIT_CHECK( pVal->nKey == i );
413 CPPUNIT_CHECK( pVal->nVal == i * 2 );
415 CPPUNIT_ASSERT( !s.empty() );
416 CPPUNIT_ASSERT( check_size( s, 500 ));
418 for ( iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
419 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
420 it->nVal = (*it).nKey;
423 Set const& refSet = s;
424 for ( const_iterator it = refSet.begin(), itEnd = refSet.end(); it != itEnd; ++it ) {
425 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
430 void SkipList_HP_less();
431 void SkipList_HP_cmp();
432 void SkipList_HP_cmpless();
433 void SkipList_HP_less_stat();
434 void SkipList_HP_cmp_stat();
435 void SkipList_HP_cmpless_stat();
436 void SkipList_HP_xorshift_less();
437 void SkipList_HP_xorshift_cmp();
438 void SkipList_HP_xorshift_cmpless();
439 void SkipList_HP_xorshift_less_stat();
440 void SkipList_HP_xorshift_cmp_stat();
441 void SkipList_HP_xorshift_cmpless_stat();
442 void SkipList_HP_turbopas_less();
443 void SkipList_HP_turbopas_cmp();
444 void SkipList_HP_turbopas_cmpless();
445 void SkipList_HP_turbopas_less_stat();
446 void SkipList_HP_turbopas_cmp_stat();
447 void SkipList_HP_turbopas_cmpless_stat();
448 void SkipList_HP_michaelalloc_less();
449 void SkipList_HP_michaelalloc_cmp();
450 void SkipList_HP_michaelalloc_cmpless();
451 void SkipList_HP_michaelalloc_less_stat();
452 void SkipList_HP_michaelalloc_cmp_stat();
453 void SkipList_HP_michaelalloc_cmpless_stat();
455 void SkipList_DHP_less();
456 void SkipList_DHP_cmp();
457 void SkipList_DHP_cmpless();
458 void SkipList_DHP_less_stat();
459 void SkipList_DHP_cmp_stat();
460 void SkipList_DHP_cmpless_stat();
461 void SkipList_DHP_xorshift_less();
462 void SkipList_DHP_xorshift_cmp();
463 void SkipList_DHP_xorshift_cmpless();
464 void SkipList_DHP_xorshift_less_stat();
465 void SkipList_DHP_xorshift_cmp_stat();
466 void SkipList_DHP_xorshift_cmpless_stat();
467 void SkipList_DHP_turbopas_less();
468 void SkipList_DHP_turbopas_cmp();
469 void SkipList_DHP_turbopas_cmpless();
470 void SkipList_DHP_turbopas_less_stat();
471 void SkipList_DHP_turbopas_cmp_stat();
472 void SkipList_DHP_turbopas_cmpless_stat();
473 void SkipList_DHP_michaelalloc_less();
474 void SkipList_DHP_michaelalloc_cmp();
475 void SkipList_DHP_michaelalloc_cmpless();
476 void SkipList_DHP_michaelalloc_less_stat();
477 void SkipList_DHP_michaelalloc_cmp_stat();
478 void SkipList_DHP_michaelalloc_cmpless_stat();
480 void SkipList_NOGC_less();
481 void SkipList_NOGC_cmp();
482 void SkipList_NOGC_cmpless();
483 void SkipList_NOGC_less_stat();
484 void SkipList_NOGC_cmp_stat();
485 void SkipList_NOGC_cmpless_stat();
486 void SkipList_NOGC_xorshift_less();
487 void SkipList_NOGC_xorshift_cmp();
488 void SkipList_NOGC_xorshift_cmpless();
489 void SkipList_NOGC_xorshift_less_stat();
490 void SkipList_NOGC_xorshift_cmp_stat();
491 void SkipList_NOGC_xorshift_cmpless_stat();
492 void SkipList_NOGC_turbopas_less();
493 void SkipList_NOGC_turbopas_cmp();
494 void SkipList_NOGC_turbopas_cmpless();
495 void SkipList_NOGC_turbopas_less_stat();
496 void SkipList_NOGC_turbopas_cmp_stat();
497 void SkipList_NOGC_turbopas_cmpless_stat();
498 void SkipList_NOGC_michaelalloc_less();
499 void SkipList_NOGC_michaelalloc_cmp();
500 void SkipList_NOGC_michaelalloc_cmpless();
501 void SkipList_NOGC_michaelalloc_less_stat();
502 void SkipList_NOGC_michaelalloc_cmp_stat();
503 void SkipList_NOGC_michaelalloc_cmpless_stat();
505 CPPUNIT_TEST_SUITE(SkipListSetHdrTest)
506 CPPUNIT_TEST(SkipList_HP_less)
507 CPPUNIT_TEST(SkipList_HP_cmp)
508 CPPUNIT_TEST(SkipList_HP_cmpless)
509 CPPUNIT_TEST(SkipList_HP_less_stat)
510 CPPUNIT_TEST(SkipList_HP_cmp_stat)
511 CPPUNIT_TEST(SkipList_HP_cmpless_stat)
512 CPPUNIT_TEST(SkipList_HP_xorshift_less)
513 CPPUNIT_TEST(SkipList_HP_xorshift_cmp)
514 CPPUNIT_TEST(SkipList_HP_xorshift_cmpless)
515 CPPUNIT_TEST(SkipList_HP_xorshift_less_stat)
516 CPPUNIT_TEST(SkipList_HP_xorshift_cmp_stat)
517 CPPUNIT_TEST(SkipList_HP_xorshift_cmpless_stat)
518 CPPUNIT_TEST(SkipList_HP_turbopas_less)
519 CPPUNIT_TEST(SkipList_HP_turbopas_cmp)
520 CPPUNIT_TEST(SkipList_HP_turbopas_cmpless)
521 CPPUNIT_TEST(SkipList_HP_turbopas_less_stat)
522 CPPUNIT_TEST(SkipList_HP_turbopas_cmp_stat)
523 CPPUNIT_TEST(SkipList_HP_turbopas_cmpless_stat)
524 CPPUNIT_TEST(SkipList_HP_michaelalloc_less)
525 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmp)
526 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmpless)
527 CPPUNIT_TEST(SkipList_HP_michaelalloc_less_stat)
528 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmp_stat)
529 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmpless_stat)
531 CPPUNIT_TEST(SkipList_DHP_less)
532 CPPUNIT_TEST(SkipList_DHP_cmp)
533 CPPUNIT_TEST(SkipList_DHP_cmpless)
534 CPPUNIT_TEST(SkipList_DHP_less_stat)
535 CPPUNIT_TEST(SkipList_DHP_cmp_stat)
536 CPPUNIT_TEST(SkipList_DHP_cmpless_stat)
537 CPPUNIT_TEST(SkipList_DHP_xorshift_less)
538 CPPUNIT_TEST(SkipList_DHP_xorshift_cmp)
539 CPPUNIT_TEST(SkipList_DHP_xorshift_cmpless)
540 CPPUNIT_TEST(SkipList_DHP_xorshift_less_stat)
541 CPPUNIT_TEST(SkipList_DHP_xorshift_cmp_stat)
542 CPPUNIT_TEST(SkipList_DHP_xorshift_cmpless_stat)
543 CPPUNIT_TEST(SkipList_DHP_turbopas_less)
544 CPPUNIT_TEST(SkipList_DHP_turbopas_cmp)
545 CPPUNIT_TEST(SkipList_DHP_turbopas_cmpless)
546 CPPUNIT_TEST(SkipList_DHP_turbopas_less_stat)
547 CPPUNIT_TEST(SkipList_DHP_turbopas_cmp_stat)
548 CPPUNIT_TEST(SkipList_DHP_turbopas_cmpless_stat)
549 CPPUNIT_TEST(SkipList_DHP_michaelalloc_less)
550 CPPUNIT_TEST(SkipList_DHP_michaelalloc_cmp)
551 CPPUNIT_TEST(SkipList_DHP_michaelalloc_cmpless)
552 CPPUNIT_TEST(SkipList_DHP_michaelalloc_less_stat)
553 CPPUNIT_TEST(SkipList_DHP_michaelalloc_cmp_stat)
554 CPPUNIT_TEST(SkipList_DHP_michaelalloc_cmpless_stat)
556 CPPUNIT_TEST(SkipList_NOGC_less)
557 CPPUNIT_TEST(SkipList_NOGC_cmp)
558 CPPUNIT_TEST(SkipList_NOGC_cmpless)
559 CPPUNIT_TEST(SkipList_NOGC_less_stat)
560 CPPUNIT_TEST(SkipList_NOGC_cmp_stat)
561 CPPUNIT_TEST(SkipList_NOGC_cmpless_stat)
562 CPPUNIT_TEST(SkipList_NOGC_xorshift_less)
563 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmp)
564 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmpless)
565 CPPUNIT_TEST(SkipList_NOGC_xorshift_less_stat)
566 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmp_stat)
567 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmpless_stat)
568 CPPUNIT_TEST(SkipList_NOGC_turbopas_less)
569 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmp)
570 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmpless)
571 CPPUNIT_TEST(SkipList_NOGC_turbopas_less_stat)
572 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmp_stat)
573 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmpless_stat)
574 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_less)
575 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmp)
576 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmpless)
577 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_less_stat)
578 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmp_stat)
579 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmpless_stat)
581 CPPUNIT_TEST_SUITE_END()
586 #endif // #ifndef CDSTEST_HDR_SKIPLIST_SET_H