Updated copyright
[libcds.git] / test / stress / map / map_type_cuckoo.h
1 /*
2     This file is a part of libcds - Concurrent Data Structures library
3
4     (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017
5
6     Source code repo: http://github.com/khizmax/libcds/
7     Download: http://sourceforge.net/projects/libcds/files/
8
9     Redistribution and use in source and binary forms, with or without
10     modification, are permitted provided that the following conditions are met:
11
12     * Redistributions of source code must retain the above copyright notice, this
13       list of conditions and the following disclaimer.
14
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.
18
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.
29 */
30
31 #ifndef CDSUNIT_MAP_TYPE_CUCKOO_H
32 #define CDSUNIT_MAP_TYPE_CUCKOO_H
33
34 #include "map_type.h"
35 #include <cds/container/cuckoo_map.h>
36 #include <cds_test/stat_cuckoo_out.h>
37 #include <cds_test/hash_func.h>
38
39 namespace map {
40
41     template <typename K, typename V, typename Traits>
42     class CuckooMap: public cc::CuckooMap< K, V, Traits >
43     {
44     public:
45         typedef cc::CuckooMap< K, V, Traits > base_class;
46
47     public:
48         template <typename Config>
49         CuckooMap( Config const& cfg )
50             : base_class(
51                 cfg.s_nCuckooInitialSize,
52                 static_cast<unsigned int>( cfg.s_nCuckooProbesetSize ),
53                 static_cast<unsigned int>( cfg.s_nCuckooProbesetThreshold )
54             )
55         {}
56
57         template <typename Q, typename Pred>
58         bool erase_with( Q const& key, Pred /*pred*/ )
59         {
60             return base_class::erase_with( key, typename std::conditional< base_class::c_isSorted, Pred, typename Pred::equal_to>::type());
61         }
62
63         // for testing
64         static CDS_CONSTEXPR bool const c_bExtractSupported = false;
65         static CDS_CONSTEXPR bool const c_bLoadFactorDepended = false;
66         static CDS_CONSTEXPR bool const c_bEraseExactKey = false;
67     };
68
69     struct tag_CuckooMap;
70
71     template <typename Key, typename Value>
72     struct map_type< tag_CuckooMap, Key, Value >: public map_type_base< Key, Value >
73     {
74         typedef map_type_base< Key, Value > base_class;
75         typedef typename base_class::key_compare compare;
76         typedef typename base_class::key_less    less;
77         typedef typename base_class::equal_to    equal_to;
78         typedef typename base_class::key_hash    hash;
79         typedef typename base_class::hash2       hash2;
80
81         template <typename Traits>
82         struct traits_CuckooStripedMap: public Traits
83         {
84             typedef cc::cuckoo::striping<> mutex_policy;
85         };
86         template <typename Traits>
87         struct traits_CuckooRefinableMap : public Traits
88         {
89             typedef cc::cuckoo::refinable<> mutex_policy;
90         };
91
92         struct traits_CuckooMap_list_unord :
93             public cc::cuckoo::make_traits <
94                 cc::cuckoo::probeset_type< cc::cuckoo::list >
95                 , co::equal_to< equal_to >
96                 , co::hash< std::tuple< hash, hash2 > >
97             > ::type
98         {};
99         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_unord>> CuckooStripedMap_list_unord;
100         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_unord>> CuckooRefinableMap_list_unord;
101
102         struct traits_CuckooMap_list_unord_stat : public traits_CuckooMap_list_unord
103         {
104             typedef cc::cuckoo::stat stat;
105         };
106         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_unord_stat>> CuckooStripedMap_list_unord_stat;
107         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_unord_stat>> CuckooRefinableMap_list_unord_stat;
108
109         struct traits_CuckooMap_list_unord_storehash : public traits_CuckooMap_list_unord
110         {
111             static CDS_CONSTEXPR const bool store_hash = true;
112         };
113         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_unord_storehash>> CuckooStripedMap_list_unord_storehash;
114         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_unord_storehash>> CuckooRefinableMap_list_unord_storehash;
115
116         struct traits_CuckooMap_list_ord :
117             public cc::cuckoo::make_traits <
118                 cc::cuckoo::probeset_type< cc::cuckoo::list >
119                 , co::compare< compare >
120                 , co::hash< std::tuple< hash, hash2 > >
121             >::type
122         {};
123         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_ord>> CuckooStripedMap_list_ord;
124         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_ord>> CuckooRefinableMap_list_ord;
125
126         struct traits_CuckooMap_list_ord_stat : public traits_CuckooMap_list_ord
127         {
128             typedef cc::cuckoo::stat stat;
129         };
130         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_ord_stat>> CuckooStripedMap_list_ord_stat;
131         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_ord_stat>> CuckooRefinableMap_list_ord_stat;
132
133         struct traits_CuckooMap_list_ord_storehash : public traits_CuckooMap_list_ord
134         {
135             static CDS_CONSTEXPR const bool store_hash = true;
136         };
137         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_ord_storehash>> CuckooStripedMap_list_ord_storehash;
138         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_ord_storehash>> CuckooRefinableMap_list_ord_storehash;
139
140         struct traits_CuckooMap_vector_unord :
141             public cc::cuckoo::make_traits <
142                 cc::cuckoo::probeset_type< cc::cuckoo::vector<4> >
143                 , co::equal_to< equal_to >
144                 , co::hash< std::tuple< hash, hash2 > >
145             >::type
146         {};
147         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_unord>> CuckooStripedMap_vector_unord;
148         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_unord>> CuckooRefinableMap_vector_unord;
149
150         struct traits_CuckooMap_vector_unord_stat : public traits_CuckooMap_vector_unord
151         {
152             typedef cc::cuckoo::stat stat;
153         };
154         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_unord_stat>> CuckooStripedMap_vector_unord_stat;
155         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_unord_stat>> CuckooRefinableMap_vector_unord_stat;
156
157         struct traits_CuckooMap_vector_unord_storehash : public traits_CuckooMap_vector_unord
158         {
159             static CDS_CONSTEXPR const bool store_hash = true;
160         };
161         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_unord_storehash>> CuckooStripedMap_vector_unord_storehash;
162         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_unord_storehash>> CuckooRefinableMap_vector_unord_storehash;
163
164         struct traits_CuckooMap_vector_ord :
165             public cc::cuckoo::make_traits <
166                 cc::cuckoo::probeset_type< cc::cuckoo::vector<4> >
167                 , co::compare< compare >
168                 , co::hash< std::tuple< hash, hash2 > >
169             >::type
170         {};
171         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_ord>> CuckooStripedMap_vector_ord;
172         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_ord>> CuckooRefinableMap_vector_ord;
173
174         struct traits_CuckooMap_vector_ord_stat : public traits_CuckooMap_vector_ord
175         {
176             typedef cc::cuckoo::stat stat;
177         };
178         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_ord_stat>> CuckooStripedMap_vector_ord_stat;
179         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_ord_stat>> CuckooRefinableMap_vector_ord_stat;
180
181         struct traits_CuckooMap_vector_ord_storehash : public traits_CuckooMap_vector_ord
182         {
183             static CDS_CONSTEXPR const bool store_hash = true;
184         };
185         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_ord_storehash>> CuckooStripedMap_vector_ord_storehash;
186         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_ord_storehash>> CuckooRefinableMap_vector_ord_storehash;
187
188 #if CDS_BUILD_BITS == 64
189
190         struct traits_CuckooMap_list_unord_city64:
191             public cc::cuckoo::make_traits <
192                 cc::cuckoo::probeset_type< cc::cuckoo::list >
193                 , co::equal_to< equal_to >
194                 , co::hash< std::tuple< cds_test::city64, hash2 > >
195             > ::type
196         {};
197         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_unord_city64>> CuckooStripedMap_list_unord_city64;
198         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_unord_city64>> CuckooRefinableMap_list_unord_city64;
199
200         struct traits_CuckooMap_list_unord_city64_stat: public traits_CuckooMap_list_unord_city64
201         {
202             typedef cc::cuckoo::stat stat;
203         };
204         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_unord_city64_stat>> CuckooStripedMap_list_unord_city64_stat;
205         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_unord_city64_stat>> CuckooRefinableMap_list_unord_city64_stat;
206
207         struct traits_CuckooMap_list_unord_city64_storehash: public traits_CuckooMap_list_unord_city64
208         {
209             static CDS_CONSTEXPR const bool store_hash = true;
210         };
211         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_unord_city64_storehash>> CuckooStripedMap_list_unord_city64_storehash;
212         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_unord_city64_storehash>> CuckooRefinableMap_list_unord_city64_storehash;
213
214         struct traits_CuckooMap_list_ord_city64:
215             public cc::cuckoo::make_traits <
216             cc::cuckoo::probeset_type< cc::cuckoo::list >
217             , co::compare< compare >
218             , co::hash< std::tuple< cds_test::city64, hash2 > >
219             >::type
220         {};
221         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_ord_city64>> CuckooStripedMap_list_ord_city64;
222         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_ord_city64>> CuckooRefinableMap_list_ord_city64;
223
224         struct traits_CuckooMap_list_ord_city64_stat: public traits_CuckooMap_list_ord_city64
225         {
226             typedef cc::cuckoo::stat stat;
227         };
228         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_ord_city64_stat>> CuckooStripedMap_list_ord_city64_stat;
229         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_ord_city64_stat>> CuckooRefinableMap_list_ord_city64_stat;
230
231         struct traits_CuckooMap_list_ord_city64_storehash: public traits_CuckooMap_list_ord_city64
232         {
233             static CDS_CONSTEXPR const bool store_hash = true;
234         };
235         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_list_ord_city64_storehash>> CuckooStripedMap_list_ord_city64_storehash;
236         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_list_ord_city64_storehash>> CuckooRefinableMap_list_ord_city64_storehash;
237
238         struct traits_CuckooMap_vector_unord_city64:
239             public cc::cuckoo::make_traits <
240             cc::cuckoo::probeset_type< cc::cuckoo::vector<4> >
241             , co::equal_to< equal_to >
242             , co::hash< std::tuple< cds_test::city64, hash2 > >
243             >::type
244         {};
245         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_unord_city64>> CuckooStripedMap_vector_unord_city64;
246         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_unord_city64>> CuckooRefinableMap_vector_unord_city64;
247
248         struct traits_CuckooMap_vector_unord_city64_stat: public traits_CuckooMap_vector_unord_city64
249         {
250             typedef cc::cuckoo::stat stat;
251         };
252         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_unord_city64_stat>> CuckooStripedMap_vector_unord_city64_stat;
253         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_unord_city64_stat>> CuckooRefinableMap_vector_unord_city64_stat;
254
255         struct traits_CuckooMap_vector_unord_city64_storehash: public traits_CuckooMap_vector_unord_city64
256         {
257             static CDS_CONSTEXPR const bool store_hash = true;
258         };
259         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_unord_city64_storehash>> CuckooStripedMap_vector_unord_city64_storehash;
260         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_unord_city64_storehash>> CuckooRefinableMap_vector_unord_city64_storehash;
261
262         struct traits_CuckooMap_vector_ord_city64:
263             public cc::cuckoo::make_traits <
264             cc::cuckoo::probeset_type< cc::cuckoo::vector<4> >
265             , co::compare< compare >
266             , co::hash< std::tuple< cds_test::city64, hash2 > >
267             >::type
268         {};
269         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_ord_city64>> CuckooStripedMap_vector_ord_city64;
270         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_ord_city64>> CuckooRefinableMap_vector_ord_city64;
271
272         struct traits_CuckooMap_vector_ord_city64_stat: public traits_CuckooMap_vector_ord_city64
273         {
274             typedef cc::cuckoo::stat stat;
275         };
276         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_ord_city64_stat>> CuckooStripedMap_vector_ord_city64_stat;
277         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_ord_city64_stat>> CuckooRefinableMap_vector_ord_city64_stat;
278
279         struct traits_CuckooMap_vector_ord_city64_storehash: public traits_CuckooMap_vector_ord_city64
280         {
281             static CDS_CONSTEXPR const bool store_hash = true;
282         };
283         typedef CuckooMap< Key, Value, traits_CuckooStripedMap<traits_CuckooMap_vector_ord_city64_storehash>> CuckooStripedMap_vector_ord_city64_storehash;
284         typedef CuckooMap< Key, Value, traits_CuckooRefinableMap<traits_CuckooMap_vector_ord_city64_storehash>> CuckooRefinableMap_vector_ord_city64_storehash;
285 #endif // CDS_BUILD_BITS == 64
286     };
287
288     template <typename Key, typename T, typename Traits >
289     static inline void print_stat( cds_test::property_stream& o, cc::CuckooMap< Key, T, Traits > const& s )
290     {
291         o << s.statistics() << s.mutex_policy_statistics();
292     }
293
294     template <typename Key, typename V, typename Traits>
295     static inline void print_stat( cds_test::property_stream& o, CuckooMap< Key, V, Traits > const& s )
296     {
297         typedef CuckooMap< Key, V, Traits > map_type;
298         print_stat( o, static_cast<typename map_type::base_class const&>(s));
299     }
300
301 }   // namespace map
302
303
304 #define CDSSTRESS_CuckooMap_case( fixture, test_case, cuckoo_map_type, key_type, value_type ) \
305     TEST_F( fixture, cuckoo_map_type ) \
306     { \
307         typedef map::map_type< tag_CuckooMap, key_type, value_type >::cuckoo_map_type map_type; \
308         test_case<map_type>(); \
309     }
310
311 #define CDSSTRESS_CuckooMap( fixture, test_case, key_type, value_type ) \
312     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_unord,              key_type, value_type ) \
313     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_unord,            key_type, value_type ) \
314     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_unord_stat,         key_type, value_type ) \
315     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_unord_stat,       key_type, value_type ) \
316     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_unord_storehash,    key_type, value_type ) \
317     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_unord_storehash,  key_type, value_type ) \
318     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_ord,                key_type, value_type ) \
319     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_ord,              key_type, value_type ) \
320     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_ord_stat,           key_type, value_type ) \
321     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_ord_stat,         key_type, value_type ) \
322     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_ord_storehash,      key_type, value_type ) \
323     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_ord_storehash,    key_type, value_type ) \
324     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_unord,            key_type, value_type ) \
325     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_unord,          key_type, value_type ) \
326     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_unord_stat,       key_type, value_type ) \
327     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_unord_stat,     key_type, value_type ) \
328     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_unord_storehash,  key_type, value_type ) \
329     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_unord_storehash, key_type, value_type ) \
330     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_ord,              key_type, value_type ) \
331     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_ord,            key_type, value_type ) \
332     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_ord_stat,         key_type, value_type ) \
333     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_ord_stat,       key_type, value_type ) \
334     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_ord_storehash,    key_type, value_type ) \
335     CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_ord_storehash,  key_type, value_type )
336
337 #if CDS_BUILD_BITS == 64
338 #   define CDSSTRESS_CuckooMap_city64( fixture, test_case, key_type, value_type ) \
339         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_unord_city64,              key_type, value_type ) \
340         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_unord_city64,            key_type, value_type ) \
341         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_unord_city64_stat,         key_type, value_type ) \
342         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_unord_city64_stat,       key_type, value_type ) \
343         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_unord_city64_storehash,    key_type, value_type ) \
344         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_unord_city64_storehash,  key_type, value_type ) \
345         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_ord_city64,                key_type, value_type ) \
346         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_ord_city64,              key_type, value_type ) \
347         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_ord_city64_stat,           key_type, value_type ) \
348         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_ord_city64_stat,         key_type, value_type ) \
349         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_list_ord_city64_storehash,      key_type, value_type ) \
350         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_list_ord_city64_storehash,    key_type, value_type ) \
351         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_unord_city64,            key_type, value_type ) \
352         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_unord_city64,          key_type, value_type ) \
353         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_unord_city64_stat,       key_type, value_type ) \
354         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_unord_city64_stat,     key_type, value_type ) \
355         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_unord_city64_storehash,  key_type, value_type ) \
356         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_unord_city64_storehash, key_type, value_type ) \
357         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_ord_city64,              key_type, value_type ) \
358         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_ord_city64,            key_type, value_type ) \
359         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_ord_city64_stat,         key_type, value_type ) \
360         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_ord_city64_stat,       key_type, value_type ) \
361         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooStripedMap_vector_ord_city64_storehash,    key_type, value_type ) \
362         CDSSTRESS_CuckooMap_case( fixture, test_case, CuckooRefinableMap_vector_ord_city64_storehash,  key_type, value_type )
363 #endif
364 #endif // ifndef CDSUNIT_MAP_TYPE_CUCKOO_H