- map_t *map = map_alloc(map_type_, NULL, NULL, NULL);
-
- ASSERT_EQUAL( 0, map_count(map) );
- ASSERT_EQUAL( DOES_NOT_EXIST, map_add(map, (void *)'a',10) );
- ASSERT_EQUAL( 1, map_count(map) );
- ASSERT_EQUAL( DOES_NOT_EXIST, map_add(map, (void *)'b',20) );
- ASSERT_EQUAL( 2, map_count(map) );
- ASSERT_EQUAL( 20, map_get(map, (void *)'b') );
- ASSERT_EQUAL( 10, map_set(map, (void *)'a',11) );
- ASSERT_EQUAL( 20, map_set(map, (void *)'b',21) );
- ASSERT_EQUAL( 2, map_count(map) );
- ASSERT_EQUAL( 21, map_add(map, (void *)'b',22) );
- ASSERT_EQUAL( 11, map_remove(map, (void *)'a') );
- ASSERT_EQUAL( DOES_NOT_EXIST, map_get(map, (void *)'a') );
- ASSERT_EQUAL( 1, map_count(map) );
- ASSERT_EQUAL( DOES_NOT_EXIST, map_remove(map, (void *)'a') );
- ASSERT_EQUAL( 21, map_remove(map, (void *)'b') );
- ASSERT_EQUAL( 0, map_count(map) );
- ASSERT_EQUAL( DOES_NOT_EXIST, map_remove(map, (void *)'b') );
- ASSERT_EQUAL( DOES_NOT_EXIST, map_remove(map, (void *)'c') );
- ASSERT_EQUAL( 0, map_count(map) );
+#ifdef TEST_STRING_KEYS
+ map_t *map = map_alloc(map_type_, &DATATYPE_NSTRING);
+ nstring_t *k1 = ns_alloc(3); strcpy(k1->data, "k1");
+ nstring_t *k2 = ns_alloc(3); strcpy(k1->data, "k2");
+ nstring_t *k3 = ns_alloc(3); strcpy(k1->data, "k3");
+ nstring_t *k4 = ns_alloc(3); strcpy(k1->data, "k4");
+#else
+ map_t *map = map_alloc(map_type_, NULL);
+ void *k1 = (void *)1;
+ void *k2 = (void *)2;
+ void *k3 = (void *)3;
+ void *k4 = (void *)4;
+#endif
+
+ ASSERT_EQUAL( 0, map_count (map) );
+ ASSERT_EQUAL( DOES_NOT_EXIST, map_add (map, k1,10) );
+ ASSERT_EQUAL( 1, map_count (map) );
+ ASSERT_EQUAL( DOES_NOT_EXIST, map_add (map, k2,20) );
+ ASSERT_EQUAL( 2, map_count (map) );
+ ASSERT_EQUAL( 20, map_get (map, k2) );
+ ASSERT_EQUAL( 10, map_set (map, k1,11) );
+ ASSERT_EQUAL( 20, map_set (map, k2,21) );
+ ASSERT_EQUAL( 2, map_count (map) );
+ ASSERT_EQUAL( 21, map_add (map, k2,22) );
+ ASSERT_EQUAL( 11, map_remove (map, k1) );
+ ASSERT_EQUAL( DOES_NOT_EXIST, map_get (map, k1) );
+ ASSERT_EQUAL( 1, map_count (map) );
+ ASSERT_EQUAL( DOES_NOT_EXIST, map_remove (map, k1) );
+ ASSERT_EQUAL( 21, map_remove (map, k2) );
+ ASSERT_EQUAL( 0, map_count (map) );
+ ASSERT_EQUAL( DOES_NOT_EXIST, map_remove (map, k2) );
+ ASSERT_EQUAL( DOES_NOT_EXIST, map_remove (map, k3) );
+ ASSERT_EQUAL( 0, map_count (map) );