2 This file is a part of libcds - Concurrent Data Structures library
4 (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
6 Source code repo: http://github.com/khizmax/libcds/
7 Download: http://sourceforge.net/projects/libcds/files/
9 Redistribution and use in source and binary forms, with or without
10 modification, are permitted provided that the following conditions are met:
12 * Redistributions of source code must retain the above copyright notice, this
13 list of conditions and the following disclaimer.
15 * Redistributions in binary form must reproduce the above copyright notice,
16 this list of conditions and the following disclaimer in the documentation
17 and/or other materials provided with the distribution.
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 #include "set/hdr_intrusive_cuckoo_set.h"
32 #include <cds/intrusive/cuckoo_set.h>
34 #include "set/intrusive_cuckoo_set_common.h"
35 #include "../unit/print_cuckoo_stat.h"
39 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_basehook_equal()
41 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::list, 0 > > item_type;
42 struct set_traits : public ci::cuckoo::traits {
43 typedef co::hash_tuple< hash1, hash2 > hash;
44 typedef set::equal_to<item_type> equal_to;
46 typedef ci::CuckooSet< item_type, set_traits > set_type;
48 test_cuckoo<set_type>();
51 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_equal()
53 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<4>, 0 > > item_type;
55 struct set_traits : public ci::cuckoo::traits {
56 typedef ci::cuckoo::base_hook< ci::cuckoo::probeset_type< item_type::probeset_type >> hook;
57 typedef co::hash_tuple< hash1, hash2 > hash;
58 typedef set::equal_to<item_type> equal_to;
60 typedef ci::CuckooSet< item_type, set_traits > set_type;
62 test_cuckoo<set_type>();
65 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_basehook_sort_cmp()
67 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::list, 0 > > item_type;
69 typedef ci::CuckooSet< item_type
70 ,ci::cuckoo::make_traits<
71 ci::opt::hook< ci::cuckoo::base_hook<
72 ci::cuckoo::probeset_type< item_type::probeset_type >
74 ,co::hash< std::tuple< hash1, hash2 > >
75 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
79 test_cuckoo<set_type>();
82 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_sort_cmp()
84 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<4>, 0 > > item_type;
86 typedef ci::CuckooSet< item_type
87 ,ci::cuckoo::make_traits<
88 ci::opt::hook< ci::cuckoo::base_hook<
89 ci::cuckoo::probeset_type< item_type::probeset_type >
91 ,co::hash< std::tuple< hash1, hash2 > >
92 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
96 test_cuckoo<set_type>();
99 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_basehook_sort_less()
101 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::list, 0 > > item_type;
103 typedef ci::CuckooSet< item_type
104 ,ci::cuckoo::make_traits<
105 ci::opt::hook< ci::cuckoo::base_hook<
106 ci::cuckoo::probeset_type< item_type::probeset_type >
108 ,co::hash< std::tuple< hash1, hash2 > >
109 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
113 test_cuckoo<set_type>();
116 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_sort_less()
118 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<4>, 0 > > item_type;
120 typedef ci::CuckooSet< item_type
121 ,ci::cuckoo::make_traits<
122 ci::opt::hook< ci::cuckoo::base_hook<
123 ci::cuckoo::probeset_type< item_type::probeset_type >
125 ,co::hash< std::tuple< hash1, hash2 > >
126 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
130 test_cuckoo<set_type>();
133 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_basehook_sort_cmpmix()
135 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::list, 0 > > item_type;
137 typedef ci::CuckooSet< item_type
138 ,ci::cuckoo::make_traits<
139 ci::opt::hook< ci::cuckoo::base_hook<
140 ci::cuckoo::probeset_type< item_type::probeset_type >
142 ,co::hash< std::tuple< hash1, hash2 > >
143 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
144 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
148 test_cuckoo<set_type>();
151 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_sort_cmpmix()
153 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<8>, 0 > > item_type;
155 typedef ci::CuckooSet< item_type
156 ,ci::cuckoo::make_traits<
157 ci::opt::hook< ci::cuckoo::base_hook<
158 ci::cuckoo::probeset_type< item_type::probeset_type >
160 ,co::hash< std::tuple< hash1, hash2 > >
161 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
162 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
166 test_cuckoo<set_type>();
169 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_sort_cmpmix_stat()
171 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<8>, 0 > > item_type;
173 typedef ci::CuckooSet< item_type
174 ,ci::cuckoo::make_traits<
175 ci::opt::hook< ci::cuckoo::base_hook<
176 ci::cuckoo::probeset_type< item_type::probeset_type >
178 ,co::hash< std::tuple< hash1, hash2 > >
179 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
180 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
181 ,co::stat< ci::cuckoo::stat >
185 unsigned int nProbesetSize = set_type::node_type::probeset_size ? set_type::node_type::probeset_size : 4;
186 set_type s( 256, nProbesetSize, nProbesetSize / 2 );
188 CPPUNIT_MSG( s.statistics() << s.mutex_policy_statistics() );
192 // base hook, store hash
193 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_basehook_equal_storehash()
195 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::list, 2 > > item_type;
196 typedef ci::CuckooSet< item_type
197 ,ci::cuckoo::make_traits<
198 ci::opt::hook< ci::cuckoo::base_hook<
199 ci::cuckoo::probeset_type< item_type::probeset_type >
200 ,ci::cuckoo::store_hash< item_type::hash_array_size >
202 ,co::hash< std::tuple< hash1, hash2 > >
203 ,co::equal_to< equal_to<item_type> >
207 test_cuckoo<set_type>();
210 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_equal_storehash()
212 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<4>, 2 > > item_type;
214 typedef ci::CuckooSet< item_type
215 ,ci::cuckoo::make_traits<
216 ci::opt::hook< ci::cuckoo::base_hook<
217 ci::cuckoo::probeset_type< item_type::probeset_type >
218 ,ci::cuckoo::store_hash< item_type::hash_array_size >
220 ,co::hash< std::tuple< hash1, hash2 > >
221 ,co::equal_to< equal_to<item_type> >
225 test_cuckoo<set_type>();
228 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_basehook_sort_cmp_storehash()
230 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::list, 2 > > item_type;
232 typedef ci::CuckooSet< item_type
233 ,ci::cuckoo::make_traits<
234 ci::opt::hook< ci::cuckoo::base_hook<
235 ci::cuckoo::probeset_type< item_type::probeset_type >
236 ,ci::cuckoo::store_hash< item_type::hash_array_size >
238 ,co::hash< std::tuple< hash1, hash2 > >
239 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
243 test_cuckoo<set_type>();
246 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_sort_cmp_storehash()
248 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<4>, 2 > > item_type;
250 typedef ci::CuckooSet< item_type
251 ,ci::cuckoo::make_traits<
252 ci::opt::hook< ci::cuckoo::base_hook<
253 ci::cuckoo::probeset_type< item_type::probeset_type >
254 ,ci::cuckoo::store_hash< item_type::hash_array_size >
256 ,co::hash< std::tuple< hash1, hash2 > >
257 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
261 test_cuckoo<set_type>();
264 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_basehook_sort_less_storehash()
266 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::list, 2 > > item_type;
268 typedef ci::CuckooSet< item_type
269 ,ci::cuckoo::make_traits<
270 ci::opt::hook< ci::cuckoo::base_hook<
271 ci::cuckoo::probeset_type< item_type::probeset_type >
272 ,ci::cuckoo::store_hash< item_type::hash_array_size >
274 ,co::hash< std::tuple< hash1, hash2 > >
275 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
279 test_cuckoo<set_type>();
282 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_sort_less_storehash()
284 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<4>, 2 > > item_type;
286 typedef ci::CuckooSet< item_type
287 ,ci::cuckoo::make_traits<
288 ci::opt::hook< ci::cuckoo::base_hook<
289 ci::cuckoo::probeset_type< item_type::probeset_type >
290 ,ci::cuckoo::store_hash< item_type::hash_array_size >
292 ,co::hash< std::tuple< hash1, hash2 > >
293 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
297 test_cuckoo<set_type>();
300 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_basehook_sort_cmpmix_storehash()
302 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::list, 2 > > item_type;
304 typedef ci::CuckooSet< item_type
305 ,ci::cuckoo::make_traits<
306 ci::opt::hook< ci::cuckoo::base_hook<
307 ci::cuckoo::probeset_type< item_type::probeset_type >
308 ,ci::cuckoo::store_hash< item_type::hash_array_size >
310 ,co::hash< std::tuple< hash1, hash2 > >
311 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
312 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
316 test_cuckoo<set_type>();
319 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_basehook_sort_cmpmix_storehash()
321 typedef IntrusiveCuckooSetHdrTest::base_item< ci::cuckoo::node< ci::cuckoo::vector<8>, 2 > > item_type;
323 typedef ci::CuckooSet< item_type
324 ,ci::cuckoo::make_traits<
325 ci::opt::hook< ci::cuckoo::base_hook<
326 ci::cuckoo::probeset_type< item_type::probeset_type >
327 ,ci::cuckoo::store_hash< item_type::hash_array_size >
329 ,co::hash< std::tuple< hash1, hash2 > >
330 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
331 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
335 test_cuckoo<set_type>();
340 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_memberhook_equal()
342 typedef IntrusiveCuckooSetHdrTest::member_item< ci::cuckoo::node< ci::cuckoo::list, 0 > > item_type;
343 typedef ci::CuckooSet< item_type
344 ,ci::cuckoo::make_traits<
345 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember)> >
346 ,co::hash< std::tuple< hash1, hash2 > >
347 ,co::equal_to< equal_to<item_type> >
351 test_cuckoo<set_type>();
354 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_memberhook_equal()
356 typedef ci::cuckoo::node< ci::cuckoo::vector<4>, 0 > node_type;
357 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
359 typedef ci::CuckooSet< item_type
360 ,ci::cuckoo::make_traits<
361 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
362 ci::cuckoo::probeset_type< node_type::probeset_type >
364 ,co::hash< std::tuple< hash1, hash2 > >
365 ,co::equal_to< equal_to<item_type> >
369 test_cuckoo<set_type>();
372 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_memberhook_sort_cmp()
374 typedef ci::cuckoo::node< ci::cuckoo::list, 0 > node_type;
375 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
377 typedef ci::CuckooSet< item_type
378 ,ci::cuckoo::make_traits<
379 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
380 ci::cuckoo::probeset_type< node_type::probeset_type >
382 ,co::hash< std::tuple< hash1, hash2 > >
383 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
387 test_cuckoo<set_type>();
390 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_memberhook_sort_cmp()
392 typedef ci::cuckoo::node< ci::cuckoo::vector<4>, 0 > node_type;
393 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
395 typedef ci::CuckooSet< item_type
396 ,ci::cuckoo::make_traits<
397 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
398 ci::cuckoo::probeset_type< node_type::probeset_type >
400 ,co::hash< std::tuple< hash1, hash2 > >
401 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
405 test_cuckoo<set_type>();
408 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_memberhook_sort_less()
410 typedef ci::cuckoo::node< ci::cuckoo::list, 0 > node_type;
411 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
413 typedef ci::CuckooSet< item_type
414 ,ci::cuckoo::make_traits<
415 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
416 ci::cuckoo::probeset_type< node_type::probeset_type >
418 ,co::hash< std::tuple< hash1, hash2 > >
419 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
423 test_cuckoo<set_type>();
426 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_memberhook_sort_less()
428 typedef ci::cuckoo::node< ci::cuckoo::vector<4>, 0 > node_type;
429 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
431 typedef ci::CuckooSet< item_type
432 ,ci::cuckoo::make_traits<
433 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
434 ci::cuckoo::probeset_type< node_type::probeset_type >
436 ,co::hash< std::tuple< hash1, hash2 > >
437 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
441 test_cuckoo<set_type>();
444 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_memberhook_sort_cmpmix()
446 typedef ci::cuckoo::node< ci::cuckoo::list, 0 > node_type;
447 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
449 typedef ci::CuckooSet< item_type
450 ,ci::cuckoo::make_traits<
451 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
452 ci::cuckoo::probeset_type< node_type::probeset_type >
454 ,co::hash< std::tuple< hash1, hash2 > >
455 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
456 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
460 test_cuckoo<set_type>();
463 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_memberhook_sort_cmpmix()
465 typedef ci::cuckoo::node< ci::cuckoo::vector<8>, 0 > node_type;
466 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
468 typedef ci::CuckooSet< item_type
469 ,ci::cuckoo::make_traits<
470 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
471 ci::cuckoo::probeset_type< node_type::probeset_type >
473 ,co::hash< std::tuple< hash1, hash2 > >
474 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
475 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
479 test_cuckoo<set_type>();
483 // member hook, store hash
484 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_memberhook_equal_storehash()
486 typedef ci::cuckoo::node< ci::cuckoo::list, 2 > node_type;
487 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
488 typedef ci::CuckooSet< item_type
489 ,ci::cuckoo::make_traits<
490 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
491 ci::cuckoo::probeset_type< node_type::probeset_type >
492 ,ci::cuckoo::store_hash< node_type::hash_array_size >
494 ,co::hash< std::tuple< hash1, hash2 > >
495 ,co::equal_to< equal_to<item_type> >
499 test_cuckoo<set_type>();
502 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_memberhook_equal_storehash()
504 typedef ci::cuckoo::node< ci::cuckoo::vector<4>, 2 > node_type;
505 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
507 typedef ci::CuckooSet< item_type
508 ,ci::cuckoo::make_traits<
509 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
510 ci::cuckoo::probeset_type< node_type::probeset_type >
511 ,ci::cuckoo::store_hash< node_type::hash_array_size >
513 ,co::hash< std::tuple< hash1, hash2 > >
514 ,co::equal_to< equal_to<item_type> >
518 test_cuckoo<set_type>();
521 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_memberhook_sort_cmp_storehash()
523 typedef ci::cuckoo::node< ci::cuckoo::list, 2 > node_type;
524 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
526 typedef ci::CuckooSet< item_type
527 ,ci::cuckoo::make_traits<
528 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
529 ci::cuckoo::probeset_type< node_type::probeset_type >
530 ,ci::cuckoo::store_hash< node_type::hash_array_size >
532 ,co::hash< std::tuple< hash1, hash2 > >
533 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
537 test_cuckoo<set_type>();
540 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_memberhook_sort_cmp_storehash()
542 typedef ci::cuckoo::node< ci::cuckoo::vector<4>, 2 > node_type;
543 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
545 typedef ci::CuckooSet< item_type
546 ,ci::cuckoo::make_traits<
547 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
548 ci::cuckoo::probeset_type< node_type::probeset_type >
549 ,ci::cuckoo::store_hash< node_type::hash_array_size >
551 ,co::hash< std::tuple< hash1, hash2 > >
552 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
556 test_cuckoo<set_type>();
559 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_memberhook_sort_less_storehash()
561 typedef ci::cuckoo::node< ci::cuckoo::list, 2 > node_type;
562 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
564 typedef ci::CuckooSet< item_type
565 ,ci::cuckoo::make_traits<
566 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
567 ci::cuckoo::probeset_type< node_type::probeset_type >
568 ,ci::cuckoo::store_hash< node_type::hash_array_size >
570 ,co::hash< std::tuple< hash1, hash2 > >
571 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
575 test_cuckoo<set_type>();
578 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_memberhook_sort_less_storehash()
580 typedef ci::cuckoo::node< ci::cuckoo::vector<4>, 2 > node_type;
581 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
583 typedef ci::CuckooSet< item_type
584 ,ci::cuckoo::make_traits<
585 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
586 ci::cuckoo::probeset_type< node_type::probeset_type >
587 ,ci::cuckoo::store_hash< node_type::hash_array_size >
589 ,co::hash< std::tuple< hash1, hash2 > >
590 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
594 test_cuckoo<set_type>();
597 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_list_memberhook_sort_cmpmix_storehash()
599 typedef ci::cuckoo::node< ci::cuckoo::list, 2 > node_type;
600 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
602 typedef ci::CuckooSet< item_type
603 ,ci::cuckoo::make_traits<
604 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
605 ci::cuckoo::probeset_type< node_type::probeset_type >
606 ,ci::cuckoo::store_hash< node_type::hash_array_size >
608 ,co::hash< std::tuple< hash1, hash2 > >
609 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
610 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
614 test_cuckoo<set_type>();
617 void IntrusiveCuckooSetHdrTest::Cuckoo_striped_vector_memberhook_sort_cmpmix_storehash()
619 typedef ci::cuckoo::node< ci::cuckoo::vector<8>, 2 > node_type;
620 typedef IntrusiveCuckooSetHdrTest::member_item< node_type > item_type;
622 typedef ci::CuckooSet< item_type
623 ,ci::cuckoo::make_traits<
624 ci::opt::hook< ci::cuckoo::member_hook< offsetof(item_type, hMember),
625 ci::cuckoo::probeset_type< node_type::probeset_type >
626 ,ci::cuckoo::store_hash< node_type::hash_array_size >
628 ,co::hash< std::tuple< hash1, hash2 > >
629 ,co::less< IntrusiveCuckooSetHdrTest::less<item_type> >
630 ,co::compare< IntrusiveCuckooSetHdrTest::cmp<item_type> >
634 test_cuckoo<set_type>();
639 CPPUNIT_TEST_SUITE_REGISTRATION(set::IntrusiveCuckooSetHdrTest);