3 #include "set/hdr_intrusive_multilevel_hashset.h"
4 #include <cds/intrusive/multilevel_hashset_hp.h>
5 #include "unit/print_multilevel_hashset_stat.h"
9 typedef cds::gc::HP gc_type;
12 void IntrusiveMultiLevelHashSetHdrTest::hp_stdhash()
14 typedef size_t hash_type;
16 struct traits: public ci::multilevel_hashset::traits
18 typedef get_hash<hash_type> hash_accessor;
19 typedef item_disposer disposer;
21 typedef ci::MultiLevelHashSet< gc_type, Item<hash_type>, traits > set_type;
22 static_assert(std::is_same< typename set_type::hash_type, size_t>::value, "set::hash_type != size_t!!!" );
23 test_hp<set_type, std::hash<hash_type>>(4, 2);
25 typedef ci::MultiLevelHashSet<
28 typename ci::multilevel_hashset::make_traits<
29 ci::multilevel_hashset::hash_accessor< get_hash<hash_type>>
30 , ci::opt::disposer< item_disposer >
33 test_hp<set_type2, std::hash<hash_type>>(4, 2);
36 void IntrusiveMultiLevelHashSetHdrTest::hp_stdhash_stat()
38 typedef size_t hash_type;
40 struct traits: public ci::multilevel_hashset::traits
42 typedef get_hash<hash_type> hash_accessor;
43 typedef item_disposer disposer;
44 typedef ci::multilevel_hashset::stat<> stat;
46 typedef ci::MultiLevelHashSet< gc_type, Item<hash_type>, traits > set_type;
47 static_assert(std::is_same< typename set_type::hash_type, size_t>::value, "set::hash_type != size_t!!!" );
48 test_hp<set_type, std::hash<hash_type>>(4, 2);
50 typedef ci::MultiLevelHashSet<
53 typename ci::multilevel_hashset::make_traits<
54 ci::multilevel_hashset::hash_accessor< get_hash<hash_type>>
55 , ci::opt::disposer< item_disposer >
56 ,co::stat< ci::multilevel_hashset::stat<>>
59 test_hp<set_type2, std::hash<hash_type>>(4, 2);
62 void IntrusiveMultiLevelHashSetHdrTest::hp_stdhash_5_3()
64 typedef size_t hash_type;
66 struct traits: public ci::multilevel_hashset::traits
68 typedef get_hash<hash_type> hash_accessor;
69 typedef item_disposer disposer;
71 typedef ci::MultiLevelHashSet< gc_type, Item<hash_type>, traits > set_type;
72 static_assert(std::is_same< typename set_type::hash_type, size_t>::value, "set::hash_type != size_t!!!" );
73 test_hp<set_type, std::hash<hash_type>>(5, 3);
75 typedef ci::MultiLevelHashSet<
78 typename ci::multilevel_hashset::make_traits<
79 ci::multilevel_hashset::hash_accessor< get_hash<hash_type>>
80 , ci::opt::disposer< item_disposer >
83 test_hp<set_type2, std::hash<hash_type>>(5, 3);
86 void IntrusiveMultiLevelHashSetHdrTest::hp_stdhash_5_3_stat()
88 typedef size_t hash_type;
90 struct traits: public ci::multilevel_hashset::traits
92 typedef get_hash<hash_type> hash_accessor;
93 typedef item_disposer disposer;
94 typedef ci::multilevel_hashset::stat<> stat;
96 typedef ci::MultiLevelHashSet< gc_type, Item<hash_type>, traits > set_type;
97 static_assert(std::is_same< typename set_type::hash_type, size_t>::value, "set::hash_type != size_t!!!" );
98 test_hp<set_type, std::hash<hash_type>>(5, 3);
100 typedef ci::MultiLevelHashSet<
103 typename ci::multilevel_hashset::make_traits<
104 ci::multilevel_hashset::hash_accessor< get_hash<hash_type>>
105 , ci::opt::disposer< item_disposer >
106 ,co::stat< ci::multilevel_hashset::stat<>>
109 test_hp<set_type2, std::hash<hash_type>>(5, 3);
114 CPPUNIT_TEST_SUITE_REGISTRATION(set::IntrusiveMultiLevelHashSetHdrTest);