Replace NULL with nullptr
[libcds.git] / tests / test-hdr / map / hdr_michael_map_hp.cpp
1 //$$CDS-header$$
2
3 #include "map/hdr_map.h"
4 #include <cds/container/michael_kvlist_hp.h>
5 #include <cds/container/michael_map.h>
6
7 namespace map {
8     namespace {
9         struct map_traits: public cc::michael_map::type_traits
10         {
11             typedef HashMapHdrTest::hash_int            hash;
12             typedef HashMapHdrTest::simple_item_counter item_counter;
13         };
14
15         struct HP_cmp_traits: public cc::michael_list::type_traits
16         {
17             typedef HashMapHdrTest::cmp   compare;
18         };
19
20         struct HP_less_traits: public cc::michael_list::type_traits
21         {
22             typedef HashMapHdrTest::less  less;
23         };
24
25         struct HP_cmpmix_traits: public cc::michael_list::type_traits
26         {
27             typedef HashMapHdrTest::cmp   compare;
28             typedef HashMapHdrTest::less  less;
29         };
30     }
31
32     void HashMapHdrTest::Michael_HP_cmp()
33     {
34         typedef cc::MichaelKVList< cds::gc::HP, int, HashMapHdrTest::value_type, HP_cmp_traits > list;
35
36         // traits-based version
37         typedef cc::MichaelHashMap< cds::gc::HP, list, map_traits > map;
38         test_int< map >();
39
40         // option-based version
41         typedef cc::MichaelHashMap< cds::gc::HP, list,
42             cc::michael_map::make_traits<
43                 cc::opt::hash< hash_int >
44                 ,cc::opt::item_counter< simple_item_counter >
45             >::type
46         > opt_map;
47         test_int< opt_map >();
48     }
49
50     void HashMapHdrTest::Michael_HP_less()
51     {
52         typedef cc::MichaelKVList< cds::gc::HP, int, HashMapHdrTest::value_type, HP_less_traits > list;
53
54         // traits-based version
55         typedef cc::MichaelHashMap< cds::gc::HP, list, map_traits > map;
56         test_int< map >();
57
58         // option-based version
59         typedef cc::MichaelHashMap< cds::gc::HP, list,
60             cc::michael_map::make_traits<
61                 cc::opt::hash< hash_int >
62                 ,cc::opt::item_counter< simple_item_counter >
63             >::type
64         > opt_map;
65         test_int< opt_map >();
66     }
67
68     void HashMapHdrTest::Michael_HP_cmpmix()
69     {
70         typedef cc::MichaelKVList< cds::gc::HP, int, HashMapHdrTest::value_type, HP_cmpmix_traits > list;
71
72         // traits-based version
73         typedef cc::MichaelHashMap< cds::gc::HP, list, map_traits > map;
74         test_int< map >();
75
76         // option-based version
77         typedef cc::MichaelHashMap< cds::gc::HP, list,
78             cc::michael_map::make_traits<
79                 cc::opt::hash< hash_int >
80                 ,cc::opt::item_counter< simple_item_counter >
81             >::type
82         > opt_map;
83         test_int< opt_map >();
84     }
85
86
87 } // namespace map
88
89 CPPUNIT_TEST_SUITE_REGISTRATION(map::HashMapHdrTest);
90