tests/test_hash_map.c

changeset 1483
97a6cf1520ba
parent 1480
83146195a1db
equal deleted inserted replaced
1482:6769cb72521b 1483:97a6cf1520ba
1154 cxMapFree(s1); 1154 cxMapFree(s1);
1155 cxMapFree(s2); 1155 cxMapFree(s2);
1156 } 1156 }
1157 1157
1158 CX_TEST(test_hash_map_simple_clones) { 1158 CX_TEST(test_hash_map_simple_clones) {
1159 int v = 47; // the value does not matter in this test
1159 CxMap *a = cxHashMapCreateSimple(sizeof(int)); 1160 CxMap *a = cxHashMapCreateSimple(sizeof(int));
1160 cxMapPut(a, "k1", "v1"); 1161 cxMapPut(a, "k1", &v);
1161 cxMapPut(a, "k2", "v2"); 1162 cxMapPut(a, "k2", &v);
1162 cxMapPut(a, "k3", "v3"); 1163 cxMapPut(a, "k3", &v);
1163 cxMapPut(a, "k4", "v4"); 1164 cxMapPut(a, "k4", &v);
1164 1165
1165 CxMap *b = cxHashMapCreateSimple(sizeof(int)); 1166 CxMap *b = cxHashMapCreateSimple(sizeof(int));
1166 cxMapPut(b, "k0", "v0"); 1167 cxMapPut(b, "k0", &v);
1167 cxMapPut(b, "k2", "v2"); 1168 cxMapPut(b, "k2", &v);
1168 cxMapPut(b, "k5", "v5"); 1169 cxMapPut(b, "k5", &v);
1169 1170
1170 CxMap *c = cxHashMapCreateSimple(sizeof(int)); 1171 CxMap *c = cxHashMapCreateSimple(sizeof(int));
1171 cxMapPut(c, "k3", "v3"); 1172 cxMapPut(c, "k3", &v);
1172 cxMapPut(c, "k4", "v4"); 1173 cxMapPut(c, "k4", &v);
1173 cxMapPut(c, "k5", "v5"); 1174 cxMapPut(c, "k5", &v);
1174 1175
1175 1176
1176 CxHashKey k; 1177 CxHashKey k;
1177 CxList *kl1 = cxArrayListCreateSimple(sizeof(CxHashKey), 4); 1178 CxList *kl1 = cxArrayListCreateSimple(sizeof(CxHashKey), 4);
1178 cxCollectionCompareFunc(kl1, cx_hash_key_cmp); 1179 cxCollectionCompareFunc(kl1, cx_hash_key_cmp);
1190 k = CX_HASH_KEY("k4"); 1191 k = CX_HASH_KEY("k4");
1191 cxListAdd(kl2, &k); 1192 cxListAdd(kl2, &k);
1192 k = CX_HASH_KEY("k5"); 1193 k = CX_HASH_KEY("k5");
1193 cxListAdd(kl2, &k); 1194 cxListAdd(kl2, &k);
1194 1195
1195 CxMap *d1 = cxHashMapCreateSimple(CX_STORE_POINTERS); 1196 CxMap *d1 = cxHashMapCreateSimple(sizeof(int));
1196 cxDefineAdvancedDestructor(d1, cxFree, (void*)cxDefaultAllocator); 1197 CxMap *d2 = cxHashMapCreateSimple(sizeof(int));
1197 CxMap *d2 = cxHashMapCreateSimple(CX_STORE_POINTERS);
1198 cxDefineAdvancedDestructor(d2, cxFree, (void*)cxDefaultAllocator);
1199 1198
1200 CX_TEST_DO { 1199 CX_TEST_DO {
1201 CX_TEST_ASSERT(0 == cxMapCloneSimple(d1, a)); 1200 CX_TEST_ASSERT(0 == cxMapCloneSimple(d1, a));
1202 CX_TEST_ASSERT(!cxMapContains(d1, "k0")); 1201 CX_TEST_ASSERT(!cxMapContains(d1, "k0"));
1203 CX_TEST_ASSERT(cxMapContains(d1, "k1")); 1202 CX_TEST_ASSERT(cxMapContains(d1, "k1"));

mercurial