Added hash_size option support to FeldmanHashMap
[libcds.git] / test / unit / map / feldman_hashmap_hp.cpp
index dd25281e0e2db34d89ae1f818889e543d9ce89df..5f5d09a651900e6952581c869564ca5995f04e92 100644 (file)
@@ -139,4 +139,23 @@ namespace {
         test( m );
     }
 
+    TEST_F( FeldmanHashMap_HP, explicit_key_size )
+    {
+        struct map_traits: public cc::feldman_hashmap::traits
+        {
+            enum: size_t {
+                hash_size = sizeof(int) + sizeof( uint16_t)
+            };
+            typedef hash2 hash;
+            typedef less2 less;
+            typedef cc::feldman_hashmap::stat<> stat;
+        };
+        typedef cc::FeldmanHashMap< gc_type, key_type2, value_type, map_traits > map_type;
+
+        map_type m( 5, 3 );
+        EXPECT_EQ( m.head_size(), static_cast<size_t>(1 << 6) );
+        EXPECT_EQ( m.array_node_size(), static_cast<size_t>(1 << 3) );
+        test( m );
+    }
+
 } // namespace