3 #include "set/hdr_set.h"
7 class SkipListSetHdrTest: public HashSetHdrTest
9 typedef HashSetHdrTest base_class;
11 typedef base_class::other_item wrapped_item;
12 typedef base_class::other_less wrapped_less;
14 template <class Set, typename PrintStat >
18 base_class::test_int_with( s );
20 static int const nLimit = 10000;
21 typedef typename Set::iterator set_iterator;
22 typedef typename Set::const_iterator const_set_iterator;
23 typedef typename Set::guarded_ptr guarded_ptr;
28 int arrRandom[nLimit];
29 for ( int i = 0; i < nLimit; ++i )
31 std::random_shuffle( arrRandom, arrRandom + nLimit );
34 // Test iterator - ascending order
36 CPPUNIT_ASSERT( s.empty() );
38 for ( int i = 0; i < nLimit; ++i ) {
39 CPPUNIT_CHECK( !s.get(gp, i) );
40 CPPUNIT_CHECK( gp.empty() );
42 CPPUNIT_ASSERT( s.insert(i) );
44 CPPUNIT_CHECK( s.get(gp, i));
45 CPPUNIT_ASSERT( !gp.empty());
46 CPPUNIT_CHECK( gp->nKey == i );
47 CPPUNIT_CHECK( gp->nVal == i );
50 CPPUNIT_MSG( PrintStat()(s, "Iterator test, ascending insert order") );
54 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
55 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
56 CPPUNIT_ASSERT( s.find( it->nKey ));
57 it->nVal = (*it).nKey * 2;
59 if ( it != s.begin() ) {
60 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
65 CPPUNIT_CHECK( s.get( gp, it->nKey ));
66 CPPUNIT_ASSERT( !gp.empty() );
67 CPPUNIT_CHECK( gp->nKey == it->nKey );
68 CPPUNIT_CHECK( gp->nVal == it->nKey * 2 );
71 CPPUNIT_ASSERT( nCount == nLimit );
74 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
75 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
77 if ( it != s.cbegin() ) {
78 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
82 CPPUNIT_ASSERT( nCount == nLimit );
84 // Test iterator - descending order
86 CPPUNIT_ASSERT( s.empty() );
88 for ( int i = nLimit; i > 0; --i ) {
89 CPPUNIT_CHECK( !s.get_with(gp, i-1, base_class::less<typename Set::value_type>() ) );
90 CPPUNIT_CHECK( gp.empty() );
92 CPPUNIT_ASSERT( s.insert( std::make_pair(i - 1, (i-1) * 2) ));
95 CPPUNIT_CHECK( s.get_with(gp, i-1, base_class::less<typename Set::value_type>() ));
96 CPPUNIT_ASSERT( !gp.empty());
97 CPPUNIT_CHECK( gp->nKey == i-1 );
98 CPPUNIT_CHECK( gp->nVal == (i-1) * 2 );
101 CPPUNIT_MSG( PrintStat()(s, "Iterator test, descending insert order") );
105 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
106 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
107 CPPUNIT_ASSERT( s.find( it->nKey ));
108 it->nVal = (*it).nKey;
110 if ( it != s.begin() ) {
111 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
115 CPPUNIT_ASSERT( nCount == nLimit );
118 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
119 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
121 if ( it != s.cbegin() ) {
122 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
126 CPPUNIT_ASSERT( nCount == nLimit );
128 // Test iterator - random order
130 CPPUNIT_ASSERT( s.empty() );
132 for ( int i = 0; i < nLimit; ++i )
133 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
134 CPPUNIT_MSG( PrintStat()(s, "Iterator test, random insert order") );
139 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
140 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
141 CPPUNIT_ASSERT( s.find( it->nKey ));
142 it->nVal = (*it).nKey * 2;
144 if ( it != s.begin() ) {
145 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
149 CPPUNIT_ASSERT( nCount == nLimit );
152 for ( const_set_iterator it = s.cbegin(), itEnd = s.cend(); it != itEnd; ++it ) {
153 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
155 if ( it != s.cbegin() ) {
156 CPPUNIT_ASSERT( nPrevKey + 1 == it->nKey );
160 CPPUNIT_ASSERT( nCount == nLimit );
164 typedef typename base_class::less<typename Set::value_type> less_predicate;
165 typename Set::guarded_ptr gp;
168 for ( int i = 0; i < nLimit; ++i ) {
169 int nKey = arrRandom[i];
170 CPPUNIT_ASSERT( s.get(gp, nKey));
171 CPPUNIT_ASSERT( !gp.empty());
172 CPPUNIT_CHECK( gp->nKey == nKey );
173 CPPUNIT_CHECK( gp->nVal == nKey * 2);
176 CPPUNIT_ASSERT( s.extract(gp, nKey));
177 CPPUNIT_ASSERT( !gp.empty());
178 CPPUNIT_CHECK( gp->nKey == nKey );
179 CPPUNIT_CHECK( gp->nVal == nKey * 2);
182 CPPUNIT_CHECK( !s.get(gp, nKey));
183 CPPUNIT_ASSERT( gp.empty());
184 CPPUNIT_ASSERT( !s.extract(gp, nKey));
185 CPPUNIT_ASSERT( gp.empty());
187 CPPUNIT_ASSERT( s.empty() );
189 // extract_with/get_with
190 for ( int i = 0; i < nLimit; ++i )
191 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
193 for ( int i = 0; i < nLimit; ++i ) {
194 int nKey = arrRandom[i];
195 CPPUNIT_ASSERT( s.get_with(gp, wrapped_item(nKey), wrapped_less() ));
196 CPPUNIT_ASSERT( !gp.empty());
197 CPPUNIT_CHECK( gp->nKey == nKey );
198 CPPUNIT_CHECK( gp->nVal == nKey );
201 CPPUNIT_ASSERT( s.extract_with(gp, wrapped_item(nKey), wrapped_less() ));
202 CPPUNIT_ASSERT( !gp.empty());
203 CPPUNIT_CHECK( gp->nKey == nKey );
204 CPPUNIT_CHECK( gp->nVal == nKey );
205 CPPUNIT_CHECK( !s.get_with(gp, wrapped_item(nKey), wrapped_less() ));
206 CPPUNIT_ASSERT( !s.extract_with(gp, wrapped_item(nKey), wrapped_less() ));
209 CPPUNIT_ASSERT( s.empty() );
212 for ( int i = 0; i < nLimit; ++i )
213 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
215 for ( int i = 0; i < nLimit; ++i ) {
216 CPPUNIT_ASSERT( s.extract_min(gp));
217 CPPUNIT_ASSERT( !gp.empty());
218 CPPUNIT_CHECK( gp->nKey == i );
219 CPPUNIT_CHECK( gp->nVal == i );
220 CPPUNIT_CHECK( !s.get(gp, i ));
223 CPPUNIT_ASSERT( s.empty() );
224 CPPUNIT_CHECK( !s.extract_min(gp));
225 CPPUNIT_ASSERT( gp.empty() );
226 CPPUNIT_CHECK( !s.extract_max(gp));
227 CPPUNIT_ASSERT( gp.empty() );
230 for ( int i = 0; i < nLimit; ++i )
231 CPPUNIT_ASSERT( s.insert( arrRandom[i]) );
233 for ( int i = nLimit-1; i >= 0; --i ) {
234 CPPUNIT_ASSERT( s.extract_max(gp));
235 CPPUNIT_ASSERT( !gp.empty());
236 CPPUNIT_CHECK( gp->nKey == i );
237 CPPUNIT_CHECK( gp->nVal == i );
238 CPPUNIT_CHECK( !s.get(gp, i ));
241 CPPUNIT_ASSERT( s.empty() );
242 CPPUNIT_CHECK( !s.extract_min(gp));
243 CPPUNIT_ASSERT( gp.empty() );
244 CPPUNIT_CHECK( !s.extract_max(gp));
245 CPPUNIT_ASSERT( gp.empty() );
248 CPPUNIT_MSG( PrintStat()(s, nullptr) );
251 template <class Set, typename PrintStat >
254 typedef typename Set::value_type value_type;
255 typedef typename Set::iterator iterator;
256 typedef typename Set::const_iterator const_iterator;
261 CPPUNIT_ASSERT( s.empty() );
262 CPPUNIT_ASSERT( check_size( s, 0 ));
266 CPPUNIT_ASSERT( it != s.end() );
267 CPPUNIT_ASSERT( it->key() == 10 );
268 CPPUNIT_ASSERT( it->val() == 10 );
269 CPPUNIT_ASSERT( !s.empty() );
270 CPPUNIT_ASSERT( check_size( s, 1 ));
271 CPPUNIT_ASSERT( s.insert( 10 ) == s.end() );
273 it = s.insert( std::make_pair( 50, 25 ));
274 CPPUNIT_ASSERT( it != s.end() );
275 CPPUNIT_ASSERT( it->key() == 50 );
276 CPPUNIT_ASSERT( it->val() == 25 );
277 CPPUNIT_ASSERT( !s.empty() );
278 CPPUNIT_ASSERT( check_size( s, 2 ));
279 CPPUNIT_ASSERT( s.insert( 50 ) == s.end() );
282 std::pair< iterator, bool> ensureResult;
283 ensureResult = s.ensure( 20 );
284 CPPUNIT_ASSERT( ensureResult.first != s.end() );
285 CPPUNIT_ASSERT( ensureResult.second );
286 CPPUNIT_ASSERT( ensureResult.first->key() == 20 );
287 CPPUNIT_ASSERT( ensureResult.first->val() == 20 );
288 CPPUNIT_ASSERT( !s.empty() );
289 CPPUNIT_ASSERT( check_size( s, 3 ));
291 ensureResult = s.ensure( std::make_pair( 20, 200 ));
292 CPPUNIT_ASSERT( ensureResult.first != s.end() );
293 CPPUNIT_ASSERT( !ensureResult.second );
294 CPPUNIT_ASSERT( ensureResult.first->key() == 20 );
295 CPPUNIT_ASSERT( ensureResult.first->val() == 20 );
296 CPPUNIT_ASSERT( !s.empty() );
297 CPPUNIT_ASSERT( check_size( s, 3 ));
298 ensureResult.first->nVal = 22;
300 ensureResult = s.ensure( std::make_pair( 30, 33 ));
301 CPPUNIT_ASSERT( ensureResult.first != s.end() );
302 CPPUNIT_ASSERT( ensureResult.second );
303 CPPUNIT_ASSERT( ensureResult.first->key() == 30 );
304 CPPUNIT_ASSERT( ensureResult.first->val() == 33 );
305 CPPUNIT_ASSERT( !s.empty() );
306 CPPUNIT_ASSERT( check_size( s, 4 ));
310 CPPUNIT_ASSERT( it != s.end() );
311 CPPUNIT_ASSERT( it->key() == 10 );
312 CPPUNIT_ASSERT( it->val() == 10 );
315 CPPUNIT_ASSERT( it != s.end() );
316 CPPUNIT_ASSERT( it->key() == 20 );
317 CPPUNIT_ASSERT( it->val() == 22 );
319 it = s.find_with( 30, base_class::less<value_type>() );
320 CPPUNIT_ASSERT( it != s.end() );
321 CPPUNIT_ASSERT( it->key() == 30 );
322 CPPUNIT_ASSERT( it->val() == 33 );
325 CPPUNIT_ASSERT( it == s.end() );
328 CPPUNIT_ASSERT( it != s.end() );
329 CPPUNIT_ASSERT( it->key() == 50 );
330 CPPUNIT_ASSERT( it->val() == 25 );
333 it = s.emplace( 151 ) ; // key = 151, val = 151
334 CPPUNIT_ASSERT( it != s.end() );
335 CPPUNIT_ASSERT( it->key() == 151 );
336 CPPUNIT_ASSERT( it->val() == 151 );
338 it = s.emplace( 174, 471 ) ; // key == 174, val = 471
339 CPPUNIT_ASSERT( it != s.end() );
340 CPPUNIT_ASSERT( it->key() == 174 );
341 CPPUNIT_ASSERT( it->val() == 471 );
343 it = s.emplace( std::make_pair( 190, 91 )) ; // key == 190, val = 91
344 CPPUNIT_ASSERT( it != s.end() );
345 CPPUNIT_ASSERT( it->key() == 190 );
346 CPPUNIT_ASSERT( it->val() == 91 );
349 CPPUNIT_ASSERT( it != s.end() );
350 CPPUNIT_ASSERT( it->key() == 174 );
351 CPPUNIT_ASSERT( it->val() == 471 );
354 CPPUNIT_ASSERT( it != s.end() );
355 CPPUNIT_ASSERT( it->key() == 190 );
356 CPPUNIT_ASSERT( it->val() == 91 );
359 CPPUNIT_ASSERT( it != s.end() );
360 CPPUNIT_ASSERT( it->key() == 151 );
361 CPPUNIT_ASSERT( it->val() == 151 );
363 CPPUNIT_ASSERT( !s.empty() );
365 CPPUNIT_ASSERT( s.empty() );
366 CPPUNIT_ASSERT( check_size( s, 0 ));
369 for ( int i = 500; i > 0; --i ) {
370 CPPUNIT_ASSERT( s.insert( std::make_pair( i, i * 2) ) != s.end() );
372 typename Set::value_type * pVal = s.get_min();
373 CPPUNIT_ASSERT( pVal != nullptr );
374 CPPUNIT_CHECK( pVal->nKey == i );
375 CPPUNIT_CHECK( pVal->nVal == i * 2 );
377 CPPUNIT_ASSERT( !s.empty() );
379 CPPUNIT_ASSERT( s.empty() );
380 CPPUNIT_ASSERT( check_size( s, 0 ));
382 CPPUNIT_CHECK( s.get_min() == nullptr );
383 CPPUNIT_CHECK( s.get_max() == nullptr );
386 for ( int i = 0; i < 500; ++i ) {
387 CPPUNIT_ASSERT( s.insert( std::make_pair( i, i * 2) ) != s.end() );
389 typename Set::value_type * pVal = s.get_max();
390 CPPUNIT_ASSERT( pVal != nullptr );
391 CPPUNIT_CHECK( pVal->nKey == i );
392 CPPUNIT_CHECK( pVal->nVal == i * 2 );
394 CPPUNIT_ASSERT( !s.empty() );
395 CPPUNIT_ASSERT( check_size( s, 500 ));
397 for ( iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
398 CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
399 it->nVal = (*it).nKey;
402 Set const& refSet = s;
403 for ( const_iterator it = refSet.begin(), itEnd = refSet.end(); it != itEnd; ++it ) {
404 CPPUNIT_ASSERT( (*it).nKey == it->nVal );
409 void SkipList_HP_less();
410 void SkipList_HP_cmp();
411 void SkipList_HP_cmpless();
412 void SkipList_HP_less_stat();
413 void SkipList_HP_cmp_stat();
414 void SkipList_HP_cmpless_stat();
415 void SkipList_HP_xorshift_less();
416 void SkipList_HP_xorshift_cmp();
417 void SkipList_HP_xorshift_cmpless();
418 void SkipList_HP_xorshift_less_stat();
419 void SkipList_HP_xorshift_cmp_stat();
420 void SkipList_HP_xorshift_cmpless_stat();
421 void SkipList_HP_turbopas_less();
422 void SkipList_HP_turbopas_cmp();
423 void SkipList_HP_turbopas_cmpless();
424 void SkipList_HP_turbopas_less_stat();
425 void SkipList_HP_turbopas_cmp_stat();
426 void SkipList_HP_turbopas_cmpless_stat();
427 void SkipList_HP_michaelalloc_less();
428 void SkipList_HP_michaelalloc_cmp();
429 void SkipList_HP_michaelalloc_cmpless();
430 void SkipList_HP_michaelalloc_less_stat();
431 void SkipList_HP_michaelalloc_cmp_stat();
432 void SkipList_HP_michaelalloc_cmpless_stat();
434 void SkipList_DHP_less();
435 void SkipList_DHP_cmp();
436 void SkipList_DHP_cmpless();
437 void SkipList_DHP_less_stat();
438 void SkipList_DHP_cmp_stat();
439 void SkipList_DHP_cmpless_stat();
440 void SkipList_DHP_xorshift_less();
441 void SkipList_DHP_xorshift_cmp();
442 void SkipList_DHP_xorshift_cmpless();
443 void SkipList_DHP_xorshift_less_stat();
444 void SkipList_DHP_xorshift_cmp_stat();
445 void SkipList_DHP_xorshift_cmpless_stat();
446 void SkipList_DHP_turbopas_less();
447 void SkipList_DHP_turbopas_cmp();
448 void SkipList_DHP_turbopas_cmpless();
449 void SkipList_DHP_turbopas_less_stat();
450 void SkipList_DHP_turbopas_cmp_stat();
451 void SkipList_DHP_turbopas_cmpless_stat();
452 void SkipList_DHP_michaelalloc_less();
453 void SkipList_DHP_michaelalloc_cmp();
454 void SkipList_DHP_michaelalloc_cmpless();
455 void SkipList_DHP_michaelalloc_less_stat();
456 void SkipList_DHP_michaelalloc_cmp_stat();
457 void SkipList_DHP_michaelalloc_cmpless_stat();
459 void SkipList_NOGC_less();
460 void SkipList_NOGC_cmp();
461 void SkipList_NOGC_cmpless();
462 void SkipList_NOGC_less_stat();
463 void SkipList_NOGC_cmp_stat();
464 void SkipList_NOGC_cmpless_stat();
465 void SkipList_NOGC_xorshift_less();
466 void SkipList_NOGC_xorshift_cmp();
467 void SkipList_NOGC_xorshift_cmpless();
468 void SkipList_NOGC_xorshift_less_stat();
469 void SkipList_NOGC_xorshift_cmp_stat();
470 void SkipList_NOGC_xorshift_cmpless_stat();
471 void SkipList_NOGC_turbopas_less();
472 void SkipList_NOGC_turbopas_cmp();
473 void SkipList_NOGC_turbopas_cmpless();
474 void SkipList_NOGC_turbopas_less_stat();
475 void SkipList_NOGC_turbopas_cmp_stat();
476 void SkipList_NOGC_turbopas_cmpless_stat();
477 void SkipList_NOGC_michaelalloc_less();
478 void SkipList_NOGC_michaelalloc_cmp();
479 void SkipList_NOGC_michaelalloc_cmpless();
480 void SkipList_NOGC_michaelalloc_less_stat();
481 void SkipList_NOGC_michaelalloc_cmp_stat();
482 void SkipList_NOGC_michaelalloc_cmpless_stat();
484 CPPUNIT_TEST_SUITE(SkipListSetHdrTest)
485 CPPUNIT_TEST(SkipList_HP_less)
486 CPPUNIT_TEST(SkipList_HP_cmp)
487 CPPUNIT_TEST(SkipList_HP_cmpless)
488 CPPUNIT_TEST(SkipList_HP_less_stat)
489 CPPUNIT_TEST(SkipList_HP_cmp_stat)
490 CPPUNIT_TEST(SkipList_HP_cmpless_stat)
491 CPPUNIT_TEST(SkipList_HP_xorshift_less)
492 CPPUNIT_TEST(SkipList_HP_xorshift_cmp)
493 CPPUNIT_TEST(SkipList_HP_xorshift_cmpless)
494 CPPUNIT_TEST(SkipList_HP_xorshift_less_stat)
495 CPPUNIT_TEST(SkipList_HP_xorshift_cmp_stat)
496 CPPUNIT_TEST(SkipList_HP_xorshift_cmpless_stat)
497 CPPUNIT_TEST(SkipList_HP_turbopas_less)
498 CPPUNIT_TEST(SkipList_HP_turbopas_cmp)
499 CPPUNIT_TEST(SkipList_HP_turbopas_cmpless)
500 CPPUNIT_TEST(SkipList_HP_turbopas_less_stat)
501 CPPUNIT_TEST(SkipList_HP_turbopas_cmp_stat)
502 CPPUNIT_TEST(SkipList_HP_turbopas_cmpless_stat)
503 CPPUNIT_TEST(SkipList_HP_michaelalloc_less)
504 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmp)
505 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmpless)
506 CPPUNIT_TEST(SkipList_HP_michaelalloc_less_stat)
507 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmp_stat)
508 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmpless_stat)
510 CPPUNIT_TEST(SkipList_DHP_less)
511 CPPUNIT_TEST(SkipList_DHP_cmp)
512 CPPUNIT_TEST(SkipList_DHP_cmpless)
513 CPPUNIT_TEST(SkipList_DHP_less_stat)
514 CPPUNIT_TEST(SkipList_DHP_cmp_stat)
515 CPPUNIT_TEST(SkipList_DHP_cmpless_stat)
516 CPPUNIT_TEST(SkipList_DHP_xorshift_less)
517 CPPUNIT_TEST(SkipList_DHP_xorshift_cmp)
518 CPPUNIT_TEST(SkipList_DHP_xorshift_cmpless)
519 CPPUNIT_TEST(SkipList_DHP_xorshift_less_stat)
520 CPPUNIT_TEST(SkipList_DHP_xorshift_cmp_stat)
521 CPPUNIT_TEST(SkipList_DHP_xorshift_cmpless_stat)
522 CPPUNIT_TEST(SkipList_DHP_turbopas_less)
523 CPPUNIT_TEST(SkipList_DHP_turbopas_cmp)
524 CPPUNIT_TEST(SkipList_DHP_turbopas_cmpless)
525 CPPUNIT_TEST(SkipList_DHP_turbopas_less_stat)
526 CPPUNIT_TEST(SkipList_DHP_turbopas_cmp_stat)
527 CPPUNIT_TEST(SkipList_DHP_turbopas_cmpless_stat)
528 CPPUNIT_TEST(SkipList_DHP_michaelalloc_less)
529 CPPUNIT_TEST(SkipList_DHP_michaelalloc_cmp)
530 CPPUNIT_TEST(SkipList_DHP_michaelalloc_cmpless)
531 CPPUNIT_TEST(SkipList_DHP_michaelalloc_less_stat)
532 CPPUNIT_TEST(SkipList_DHP_michaelalloc_cmp_stat)
533 CPPUNIT_TEST(SkipList_DHP_michaelalloc_cmpless_stat)
535 CPPUNIT_TEST(SkipList_NOGC_less)
536 CPPUNIT_TEST(SkipList_NOGC_cmp)
537 CPPUNIT_TEST(SkipList_NOGC_cmpless)
538 CPPUNIT_TEST(SkipList_NOGC_less_stat)
539 CPPUNIT_TEST(SkipList_NOGC_cmp_stat)
540 CPPUNIT_TEST(SkipList_NOGC_cmpless_stat)
541 CPPUNIT_TEST(SkipList_NOGC_xorshift_less)
542 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmp)
543 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmpless)
544 CPPUNIT_TEST(SkipList_NOGC_xorshift_less_stat)
545 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmp_stat)
546 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmpless_stat)
547 CPPUNIT_TEST(SkipList_NOGC_turbopas_less)
548 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmp)
549 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmpless)
550 CPPUNIT_TEST(SkipList_NOGC_turbopas_less_stat)
551 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmp_stat)
552 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmpless_stat)
553 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_less)
554 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmp)
555 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmpless)
556 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_less_stat)
557 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmp_stat)
558 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmpless_stat)
560 CPPUNIT_TEST_SUITE_END()