3 #ifndef __CDSTEST_HDR_SKIPLIST_MAP_H
4 #define __CDSTEST_HDR_SKIPLIST_MAP_H
6 #include "map/hdr_map.h"
10 class SkipListMapHdrTest: public HashMapHdrTest
12 typedef HashMapHdrTest base_class;
13 typedef base_class::other_item wrapped_item;
14 typedef base_class::other_less wrapped_less;
16 template <class Map, typename PrintStat >
22 static int const nLimit = 10000;
23 typedef typename Map::iterator set_iterator;
24 typedef typename Map::const_iterator const_set_iterator;
29 // Test iterator - ascending order
31 CPPUNIT_ASSERT( m.empty() );
33 for ( int i = 0; i < nLimit; ++i ) {
34 CPPUNIT_ASSERT( m.insert(i, i) );
36 CPPUNIT_MSG( PrintStat()(m, "Iterator test, ascending insert order") );
40 for ( set_iterator it = m.begin(), itEnd = m.end(); it != itEnd; ++it ) {
41 CPPUNIT_ASSERT( (*it).first == it->second.m_val );
42 CPPUNIT_ASSERT( m.find( it->first ));
43 it->second.m_val = (*it).first * 2;
45 if ( it != m.begin() ) {
46 CPPUNIT_ASSERT( nPrevKey + 1 == it->first );
50 CPPUNIT_ASSERT( nCount == nLimit );
53 for ( const_set_iterator it = m.cbegin(), itEnd = m.cend(); it != itEnd; ++it ) {
54 CPPUNIT_ASSERT( (*it).first * 2 == it->second.m_val );
56 if ( it != m.cbegin() ) {
57 CPPUNIT_ASSERT( nPrevKey + 1 == it->first );
61 CPPUNIT_ASSERT( nCount == nLimit );
63 // Test iterator - descending order
65 CPPUNIT_ASSERT( m.empty() );
67 for ( int i = nLimit; i > 0; --i ) {
68 CPPUNIT_ASSERT( m.insert( i - 1, (i-1) * 2) );
70 CPPUNIT_MSG( PrintStat()(m, "Iterator test, descending insert order") );
74 for ( set_iterator it = m.begin(), itEnd = m.end(); it != itEnd; ++it ) {
75 CPPUNIT_ASSERT( (*it).first * 2 == it->second.m_val );
76 CPPUNIT_ASSERT( m.find( it->first ));
77 it->second.m_val = (*it).first;
79 if ( it != m.begin() ) {
80 CPPUNIT_ASSERT( nPrevKey + 1 == it->first );
84 CPPUNIT_ASSERT( nCount == nLimit );
87 for ( const_set_iterator it = m.cbegin(), itEnd = m.cend(); it != itEnd; ++it ) {
88 CPPUNIT_ASSERT( (*it).first == it->second.m_val );
90 if ( it != m.cbegin() ) {
91 CPPUNIT_ASSERT( nPrevKey + 1 == it->first );
95 CPPUNIT_ASSERT( nCount == nLimit );
97 // Test iterator - random order
99 CPPUNIT_ASSERT( m.empty() );
102 for ( int i = 0; i < nLimit; ++i ) {
105 std::random_shuffle( nRand, nRand + nLimit );
107 for ( int i = 0; i < nLimit; ++i ) {
108 CPPUNIT_ASSERT( m.insert( nRand[i], nRand[i]) );
110 CPPUNIT_MSG( PrintStat()(m, "Iterator test, random insert order") );
115 for ( set_iterator it = m.begin(), itEnd = m.end(); it != itEnd; ++it ) {
116 CPPUNIT_ASSERT( (*it).first == it->second.m_val );
117 CPPUNIT_ASSERT( m.find( it->first ));
118 it->second.m_val = (*it).first * 2;
120 if ( it != m.begin() ) {
121 CPPUNIT_ASSERT( nPrevKey + 1 == it->first );
123 nPrevKey = it->first;
125 CPPUNIT_ASSERT( nCount == nLimit );
128 for ( const_set_iterator it = m.cbegin(), itEnd = m.cend(); it != itEnd; ++it ) {
129 CPPUNIT_ASSERT( (*it).first * 2 == it->second.m_val );
131 if ( it != m.cbegin() ) {
132 CPPUNIT_ASSERT( nPrevKey + 1 == it->first );
134 nPrevKey = it->first;
136 CPPUNIT_ASSERT( nCount == nLimit );
139 typename Map::guarded_ptr gp;
141 for ( int i = 0; i < nLimit; ++i )
143 std::random_shuffle( arrItem, arrItem + nLimit );
145 typedef base_class::less less;
148 for ( int i = 0; i < nLimit; ++i ) {
149 int nKey = arrItem[i];
150 CPPUNIT_ASSERT( m.get( gp, nKey ));
151 CPPUNIT_ASSERT( !gp.empty());
152 CPPUNIT_CHECK( gp->first == nKey );
153 CPPUNIT_CHECK( gp->second.m_val == nKey * 2 );
155 CPPUNIT_ASSERT( m.extract(gp, nKey));
156 CPPUNIT_ASSERT( !gp.empty());
157 CPPUNIT_CHECK( gp->first == nKey );
158 CPPUNIT_CHECK( gp->second.m_val == nKey * 2 );
160 CPPUNIT_CHECK( !m.get( gp, nKey ));
161 CPPUNIT_CHECK( !m.extract(gp, nKey));
162 CPPUNIT_CHECK( gp.empty());
164 CPPUNIT_ASSERT( m.empty());
166 for ( int i = 0; i < nLimit; ++i )
167 CPPUNIT_ASSERT( m.insert(arrItem[i], arrItem[i]*2) );
169 // extract_with/get_with
170 for ( int i = 0; i < nLimit; ++i ) {
171 int nKey = arrItem[i];
172 CPPUNIT_ASSERT( m.get_with( gp, wrapped_item(nKey), wrapped_less() ));
173 CPPUNIT_ASSERT( !gp.empty());
174 CPPUNIT_CHECK( gp->first == nKey );
175 CPPUNIT_CHECK( gp->second.m_val == nKey * 2 );
177 CPPUNIT_ASSERT( m.extract_with(gp, wrapped_item(nKey), wrapped_less()));
178 CPPUNIT_ASSERT( !gp.empty());
179 CPPUNIT_CHECK( gp->first == nKey );
180 CPPUNIT_CHECK( gp->second.m_val == nKey * 2 );
182 CPPUNIT_CHECK( !m.get_with( gp, wrapped_item(nKey), wrapped_less()));
183 CPPUNIT_CHECK( !m.extract_with( gp, wrapped_item(nKey), wrapped_less()));
184 CPPUNIT_CHECK( gp.empty());
186 CPPUNIT_ASSERT( m.empty());
189 for ( int i = 0; i < nLimit; ++i )
190 CPPUNIT_ASSERT( m.insert(arrItem[i], arrItem[i]*2) );
192 for ( int i = 0; i < nLimit; ++i ) {
193 CPPUNIT_ASSERT( m.extract_min(gp));
194 CPPUNIT_ASSERT( !gp.empty());
195 CPPUNIT_CHECK( gp->first == i );
196 CPPUNIT_CHECK( gp->second.m_val == i * 2 );
198 CPPUNIT_CHECK( gp.empty());
200 CPPUNIT_CHECK( !m.extract_min(gp));
201 CPPUNIT_CHECK( gp.empty());
202 CPPUNIT_ASSERT( m.empty());
205 for ( int i = 0; i < nLimit; ++i )
206 CPPUNIT_ASSERT( m.insert(arrItem[i], arrItem[i]*2) );
208 for ( int i = nLimit - 1; i >= 0; --i ) {
209 CPPUNIT_ASSERT( m.extract_max(gp));
210 CPPUNIT_ASSERT( !gp.empty());
211 CPPUNIT_CHECK( gp->first == i );
212 CPPUNIT_CHECK( gp->second.m_val == i * 2 );
214 CPPUNIT_CHECK( gp.empty());
216 CPPUNIT_CHECK( !m.extract_max(gp));
217 CPPUNIT_CHECK( gp.empty());
218 CPPUNIT_ASSERT( m.empty());
221 CPPUNIT_MSG( PrintStat()(m, NULL) );
224 template <class Map, typename PrintStat >
227 typedef typename Map::iterator iterator;
228 typedef typename Map::const_iterator const_iterator;
232 CPPUNIT_ASSERT( m.empty() );
233 CPPUNIT_ASSERT( check_size( m, 0 ));
235 CPPUNIT_ASSERT( m.find(10) == m.end() );
236 iterator it = m.insert( 10 );
237 CPPUNIT_ASSERT( it != m.end() );
238 CPPUNIT_ASSERT( it->first == 10 );
239 CPPUNIT_ASSERT( it->second.m_val == 0 );
240 CPPUNIT_ASSERT( !m.empty() );
241 CPPUNIT_ASSERT( check_size( m, 1 ));
242 CPPUNIT_ASSERT( m.find(10) == it );
243 CPPUNIT_ASSERT( it->first == 10 );
244 CPPUNIT_ASSERT( it->second.m_val == 0 );
246 CPPUNIT_ASSERT( m.find(100) == m.end() );
247 it = m.insert( 100, 200 );
248 CPPUNIT_ASSERT( it != m.end() );
249 CPPUNIT_ASSERT( !m.empty() );
250 CPPUNIT_ASSERT( check_size( m, 2 ));
251 CPPUNIT_ASSERT( m.find(100) == it );
252 CPPUNIT_ASSERT( it->first == 100 );
253 CPPUNIT_ASSERT( it->second.m_val == 200 );
255 CPPUNIT_ASSERT( m.find(55) == m.end() );
256 it = m.insert_key( 55, insert_functor<Map>() );
257 CPPUNIT_ASSERT( it != m.end() );
258 CPPUNIT_ASSERT( !m.empty() );
259 CPPUNIT_ASSERT( check_size( m, 3 ));
260 CPPUNIT_ASSERT( m.find(55) == it );
261 CPPUNIT_ASSERT( it->first == 55 );
262 CPPUNIT_ASSERT( it->second.m_val == 55 * 3 );
264 CPPUNIT_ASSERT( m.insert( 55 ) == m.end() );
265 CPPUNIT_ASSERT( m.insert( 55, 10 ) == m.end() );
266 CPPUNIT_ASSERT( m.insert_key( 55, insert_functor<Map>()) == m.end() );
268 CPPUNIT_ASSERT( m.find(10) != m.end() );
269 std::pair<iterator, bool> ensureResult = m.ensure( 10 );
270 CPPUNIT_ASSERT( ensureResult.first != m.end() );
271 CPPUNIT_ASSERT( !ensureResult.second );
272 CPPUNIT_ASSERT( !m.empty() );
273 ensureResult.first->second.m_val = ensureResult.first->first * 5;
274 CPPUNIT_ASSERT( check_size( m, 3 ));
275 CPPUNIT_ASSERT( m.find(10) == ensureResult.first );
276 it = m.find_with( 10, typename base_class::less() );
277 CPPUNIT_ASSERT( it != m.end() );
278 CPPUNIT_ASSERT( it->second.m_val == 50 );
280 CPPUNIT_ASSERT( m.find_with(120, base_class::less()) == m.end() );
281 ensureResult = m.ensure( 120 );
282 CPPUNIT_ASSERT( ensureResult.first != m.end() );
283 CPPUNIT_ASSERT( ensureResult.second );
284 CPPUNIT_ASSERT( !m.empty() );
285 CPPUNIT_ASSERT( check_size( m, 4 ));
286 ensureResult.first->second.m_val = ensureResult.first->first * 5;
287 CPPUNIT_ASSERT( m.find_with(120, base_class::less()) == ensureResult.first );
288 it = m.find_with(120, base_class::less());
289 CPPUNIT_ASSERT( it != m.end() );
290 CPPUNIT_ASSERT( it->second.m_val == 120 * 5 );
292 # ifdef CDS_EMPLACE_SUPPORT
294 it = m.emplace( 151 ) ; // key = 151, val = 0
295 CPPUNIT_ASSERT( it != m.end() );
296 CPPUNIT_ASSERT( it->first == 151 );
297 CPPUNIT_ASSERT( it->second.m_val == 0 );
299 it = m.emplace( 174, 471 ) ; // key == 174, val = 471
300 CPPUNIT_ASSERT( it != m.end() );
301 CPPUNIT_ASSERT( it->first == 174 );
302 CPPUNIT_ASSERT( it->second.m_val == 471 );
304 it = m.emplace( 190, value_type(91)) ; // key == 190, val = 19
305 CPPUNIT_ASSERT( it != m.end() );
306 CPPUNIT_ASSERT( it->first == 190 );
307 CPPUNIT_ASSERT( it->second.m_val == 91 );
309 it = m.emplace( 151, 1051 );
310 CPPUNIT_ASSERT( it == m.end());
313 CPPUNIT_ASSERT( it != m.end() );
314 CPPUNIT_ASSERT( it->first == 174 );
315 CPPUNIT_ASSERT( it->second.m_val == 471 );
318 CPPUNIT_ASSERT( it != m.end() );
319 CPPUNIT_ASSERT( it->first == 190 );
320 CPPUNIT_ASSERT( it->second.m_val == 91 );
323 CPPUNIT_ASSERT( it != m.end() );
324 CPPUNIT_ASSERT( it->first == 151 );
325 CPPUNIT_ASSERT( it->second.m_val == 0 );
329 CPPUNIT_ASSERT( m.empty() );
330 CPPUNIT_ASSERT( check_size( m, 0 ));
333 for ( int i = 500; i > 0; --i ) {
334 CPPUNIT_ASSERT( m.insert( i, i * 2 ) != m.end() );
336 typename Map::value_type * pVal = m.get_min();
337 CPPUNIT_ASSERT( pVal != NULL );
338 CPPUNIT_CHECK( pVal->first == i );
339 CPPUNIT_CHECK( pVal->second.m_val == i * 2 );
342 CPPUNIT_ASSERT( m.empty() );
343 CPPUNIT_ASSERT( check_size( m, 0 ));
344 CPPUNIT_CHECK( m.get_min() == NULL );
345 CPPUNIT_CHECK( m.get_max() == NULL );
349 for ( int i = 0; i < 500; ++i ) {
350 CPPUNIT_ASSERT( m.insert( i, i * 2 ) != m.end() );
352 typename Map::value_type * pVal = m.get_max();
353 CPPUNIT_ASSERT( pVal != NULL );
354 CPPUNIT_CHECK( pVal->first == i );
355 CPPUNIT_CHECK( pVal->second.m_val == i * 2 );
357 CPPUNIT_ASSERT( check_size( m, 500 ));
359 for ( iterator it = m.begin(), itEnd = m.end(); it != itEnd; ++it ) {
360 CPPUNIT_ASSERT( it->first * 2 == (*it).second.m_val );
361 it->second = it->first;
364 Map const& refMap = m;
365 for ( const_iterator it = refMap.begin(), itEnd = refMap.end(); it != itEnd; ++it ) {
366 CPPUNIT_ASSERT( it->first == it->second.m_val );
367 CPPUNIT_ASSERT( (*it).first == (*it).second.m_val );
370 CPPUNIT_MSG( PrintStat()(m, "SkipListMap statistics") );
374 void SkipList_HP_less();
375 void SkipList_HP_cmp();
376 void SkipList_HP_cmpless();
377 void SkipList_HP_less_stat();
378 void SkipList_HP_cmp_stat();
379 void SkipList_HP_cmpless_stat();
380 void SkipList_HP_xorshift_less();
381 void SkipList_HP_xorshift_cmp();
382 void SkipList_HP_xorshift_cmpless();
383 void SkipList_HP_xorshift_less_stat();
384 void SkipList_HP_xorshift_cmp_stat();
385 void SkipList_HP_xorshift_cmpless_stat();
386 void SkipList_HP_turbopas_less();
387 void SkipList_HP_turbopas_cmp();
388 void SkipList_HP_turbopas_cmpless();
389 void SkipList_HP_turbopas_less_stat();
390 void SkipList_HP_turbopas_cmp_stat();
391 void SkipList_HP_turbopas_cmpless_stat();
392 void SkipList_HP_michaelalloc_less();
393 void SkipList_HP_michaelalloc_cmp();
394 void SkipList_HP_michaelalloc_cmpless();
395 void SkipList_HP_michaelalloc_less_stat();
396 void SkipList_HP_michaelalloc_cmp_stat();
397 void SkipList_HP_michaelalloc_cmpless_stat();
399 void SkipList_HRC_less();
400 void SkipList_HRC_cmp();
401 void SkipList_HRC_cmpless();
402 void SkipList_HRC_less_stat();
403 void SkipList_HRC_cmp_stat();
404 void SkipList_HRC_cmpless_stat();
405 void SkipList_HRC_xorshift_less();
406 void SkipList_HRC_xorshift_cmp();
407 void SkipList_HRC_xorshift_cmpless();
408 void SkipList_HRC_xorshift_less_stat();
409 void SkipList_HRC_xorshift_cmp_stat();
410 void SkipList_HRC_xorshift_cmpless_stat();
411 void SkipList_HRC_turbopas_less();
412 void SkipList_HRC_turbopas_cmp();
413 void SkipList_HRC_turbopas_cmpless();
414 void SkipList_HRC_turbopas_less_stat();
415 void SkipList_HRC_turbopas_cmp_stat();
416 void SkipList_HRC_turbopas_cmpless_stat();
417 void SkipList_HRC_michaelalloc_less();
418 void SkipList_HRC_michaelalloc_cmp();
419 void SkipList_HRC_michaelalloc_cmpless();
420 void SkipList_HRC_michaelalloc_less_stat();
421 void SkipList_HRC_michaelalloc_cmp_stat();
422 void SkipList_HRC_michaelalloc_cmpless_stat();
424 void SkipList_PTB_less();
425 void SkipList_PTB_cmp();
426 void SkipList_PTB_cmpless();
427 void SkipList_PTB_less_stat();
428 void SkipList_PTB_cmp_stat();
429 void SkipList_PTB_cmpless_stat();
430 void SkipList_PTB_xorshift_less();
431 void SkipList_PTB_xorshift_cmp();
432 void SkipList_PTB_xorshift_cmpless();
433 void SkipList_PTB_xorshift_less_stat();
434 void SkipList_PTB_xorshift_cmp_stat();
435 void SkipList_PTB_xorshift_cmpless_stat();
436 void SkipList_PTB_turbopas_less();
437 void SkipList_PTB_turbopas_cmp();
438 void SkipList_PTB_turbopas_cmpless();
439 void SkipList_PTB_turbopas_less_stat();
440 void SkipList_PTB_turbopas_cmp_stat();
441 void SkipList_PTB_turbopas_cmpless_stat();
442 void SkipList_PTB_michaelalloc_less();
443 void SkipList_PTB_michaelalloc_cmp();
444 void SkipList_PTB_michaelalloc_cmpless();
445 void SkipList_PTB_michaelalloc_less_stat();
446 void SkipList_PTB_michaelalloc_cmp_stat();
447 void SkipList_PTB_michaelalloc_cmpless_stat();
449 void SkipList_NOGC_less();
450 void SkipList_NOGC_cmp();
451 void SkipList_NOGC_cmpless();
452 void SkipList_NOGC_less_stat();
453 void SkipList_NOGC_cmp_stat();
454 void SkipList_NOGC_cmpless_stat();
455 void SkipList_NOGC_xorshift_less();
456 void SkipList_NOGC_xorshift_cmp();
457 void SkipList_NOGC_xorshift_cmpless();
458 void SkipList_NOGC_xorshift_less_stat();
459 void SkipList_NOGC_xorshift_cmp_stat();
460 void SkipList_NOGC_xorshift_cmpless_stat();
461 void SkipList_NOGC_turbopas_less();
462 void SkipList_NOGC_turbopas_cmp();
463 void SkipList_NOGC_turbopas_cmpless();
464 void SkipList_NOGC_turbopas_less_stat();
465 void SkipList_NOGC_turbopas_cmp_stat();
466 void SkipList_NOGC_turbopas_cmpless_stat();
467 void SkipList_NOGC_michaelalloc_less();
468 void SkipList_NOGC_michaelalloc_cmp();
469 void SkipList_NOGC_michaelalloc_cmpless();
470 void SkipList_NOGC_michaelalloc_less_stat();
471 void SkipList_NOGC_michaelalloc_cmp_stat();
472 void SkipList_NOGC_michaelalloc_cmpless_stat();
474 CPPUNIT_TEST_SUITE(SkipListMapHdrTest)
475 CPPUNIT_TEST(SkipList_HP_less)
476 CPPUNIT_TEST(SkipList_HP_cmp)
477 CPPUNIT_TEST(SkipList_HP_cmpless)
478 CPPUNIT_TEST(SkipList_HP_less_stat)
479 CPPUNIT_TEST(SkipList_HP_cmp_stat)
480 CPPUNIT_TEST(SkipList_HP_cmpless_stat)
481 CPPUNIT_TEST(SkipList_HP_xorshift_less)
482 CPPUNIT_TEST(SkipList_HP_xorshift_cmp)
483 CPPUNIT_TEST(SkipList_HP_xorshift_cmpless)
484 CPPUNIT_TEST(SkipList_HP_xorshift_less_stat)
485 CPPUNIT_TEST(SkipList_HP_xorshift_cmp_stat)
486 CPPUNIT_TEST(SkipList_HP_xorshift_cmpless_stat)
487 CPPUNIT_TEST(SkipList_HP_turbopas_less)
488 CPPUNIT_TEST(SkipList_HP_turbopas_cmp)
489 CPPUNIT_TEST(SkipList_HP_turbopas_cmpless)
490 CPPUNIT_TEST(SkipList_HP_turbopas_less_stat)
491 CPPUNIT_TEST(SkipList_HP_turbopas_cmp_stat)
492 CPPUNIT_TEST(SkipList_HP_turbopas_cmpless_stat)
493 CPPUNIT_TEST(SkipList_HP_michaelalloc_less)
494 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmp)
495 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmpless)
496 CPPUNIT_TEST(SkipList_HP_michaelalloc_less_stat)
497 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmp_stat)
498 CPPUNIT_TEST(SkipList_HP_michaelalloc_cmpless_stat)
500 CPPUNIT_TEST(SkipList_HRC_less)
501 CPPUNIT_TEST(SkipList_HRC_cmp)
502 CPPUNIT_TEST(SkipList_HRC_cmpless)
503 CPPUNIT_TEST(SkipList_HRC_less_stat)
504 CPPUNIT_TEST(SkipList_HRC_cmp_stat)
505 CPPUNIT_TEST(SkipList_HRC_cmpless_stat)
506 CPPUNIT_TEST(SkipList_HRC_xorshift_less)
507 CPPUNIT_TEST(SkipList_HRC_xorshift_cmp)
508 CPPUNIT_TEST(SkipList_HRC_xorshift_cmpless)
509 CPPUNIT_TEST(SkipList_HRC_xorshift_less_stat)
510 CPPUNIT_TEST(SkipList_HRC_xorshift_cmp_stat)
511 CPPUNIT_TEST(SkipList_HRC_xorshift_cmpless_stat)
512 CPPUNIT_TEST(SkipList_HRC_turbopas_less)
513 CPPUNIT_TEST(SkipList_HRC_turbopas_cmp)
514 CPPUNIT_TEST(SkipList_HRC_turbopas_cmpless)
515 CPPUNIT_TEST(SkipList_HRC_turbopas_less_stat)
516 CPPUNIT_TEST(SkipList_HRC_turbopas_cmp_stat)
517 CPPUNIT_TEST(SkipList_HRC_turbopas_cmpless_stat)
518 CPPUNIT_TEST(SkipList_HRC_michaelalloc_less)
519 CPPUNIT_TEST(SkipList_HRC_michaelalloc_cmp)
520 CPPUNIT_TEST(SkipList_HRC_michaelalloc_cmpless)
521 CPPUNIT_TEST(SkipList_HRC_michaelalloc_less_stat)
522 CPPUNIT_TEST(SkipList_HRC_michaelalloc_cmp_stat)
523 CPPUNIT_TEST(SkipList_HRC_michaelalloc_cmpless_stat)
525 CPPUNIT_TEST(SkipList_PTB_less)
526 CPPUNIT_TEST(SkipList_PTB_cmp)
527 CPPUNIT_TEST(SkipList_PTB_cmpless)
528 CPPUNIT_TEST(SkipList_PTB_less_stat)
529 CPPUNIT_TEST(SkipList_PTB_cmp_stat)
530 CPPUNIT_TEST(SkipList_PTB_cmpless_stat)
531 CPPUNIT_TEST(SkipList_PTB_xorshift_less)
532 CPPUNIT_TEST(SkipList_PTB_xorshift_cmp)
533 CPPUNIT_TEST(SkipList_PTB_xorshift_cmpless)
534 CPPUNIT_TEST(SkipList_PTB_xorshift_less_stat)
535 CPPUNIT_TEST(SkipList_PTB_xorshift_cmp_stat)
536 CPPUNIT_TEST(SkipList_PTB_xorshift_cmpless_stat)
537 CPPUNIT_TEST(SkipList_PTB_turbopas_less)
538 CPPUNIT_TEST(SkipList_PTB_turbopas_cmp)
539 CPPUNIT_TEST(SkipList_PTB_turbopas_cmpless)
540 CPPUNIT_TEST(SkipList_PTB_turbopas_less_stat)
541 CPPUNIT_TEST(SkipList_PTB_turbopas_cmp_stat)
542 CPPUNIT_TEST(SkipList_PTB_turbopas_cmpless_stat)
543 CPPUNIT_TEST(SkipList_PTB_michaelalloc_less)
544 CPPUNIT_TEST(SkipList_PTB_michaelalloc_cmp)
545 CPPUNIT_TEST(SkipList_PTB_michaelalloc_cmpless)
546 CPPUNIT_TEST(SkipList_PTB_michaelalloc_less_stat)
547 CPPUNIT_TEST(SkipList_PTB_michaelalloc_cmp_stat)
548 CPPUNIT_TEST(SkipList_PTB_michaelalloc_cmpless_stat)
550 CPPUNIT_TEST(SkipList_NOGC_less)
551 CPPUNIT_TEST(SkipList_NOGC_cmp)
552 CPPUNIT_TEST(SkipList_NOGC_cmpless)
553 CPPUNIT_TEST(SkipList_NOGC_less_stat)
554 CPPUNIT_TEST(SkipList_NOGC_cmp_stat)
555 CPPUNIT_TEST(SkipList_NOGC_cmpless_stat)
556 CPPUNIT_TEST(SkipList_NOGC_xorshift_less)
557 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmp)
558 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmpless)
559 CPPUNIT_TEST(SkipList_NOGC_xorshift_less_stat)
560 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmp_stat)
561 CPPUNIT_TEST(SkipList_NOGC_xorshift_cmpless_stat)
562 CPPUNIT_TEST(SkipList_NOGC_turbopas_less)
563 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmp)
564 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmpless)
565 CPPUNIT_TEST(SkipList_NOGC_turbopas_less_stat)
566 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmp_stat)
567 CPPUNIT_TEST(SkipList_NOGC_turbopas_cmpless_stat)
568 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_less)
569 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmp)
570 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmpless)
571 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_less_stat)
572 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmp_stat)
573 CPPUNIT_TEST(SkipList_NOGC_michaelalloc_cmpless_stat)
575 CPPUNIT_TEST_SUITE_END()
581 #endif // #ifndef __CDSTEST_HDR_SKIPLIST_MAP_H