| 1151 CX_TEST_ASSERT(cxMapGet(s1, "k5") == NULL); |
1151 CX_TEST_ASSERT(cxMapGet(s1, "k5") == NULL); |
| 1152 CX_TEST_ASSERT(*((int*)cxMapGet(s1, "k6")) == 27); |
1152 CX_TEST_ASSERT(*((int*)cxMapGet(s1, "k6")) == 27); |
| 1153 } |
1153 } |
| 1154 cxMapFree(s1); |
1154 cxMapFree(s1); |
| 1155 cxMapFree(s2); |
1155 cxMapFree(s2); |
| |
1156 } |
| |
1157 |
| |
1158 CX_TEST(test_hash_map_simple_clones) { |
| |
1159 CxMap *a = cxHashMapCreateSimple(sizeof(int)); |
| |
1160 cxMapPut(a, "k1", "v1"); |
| |
1161 cxMapPut(a, "k2", "v2"); |
| |
1162 cxMapPut(a, "k3", "v3"); |
| |
1163 cxMapPut(a, "k4", "v4"); |
| |
1164 |
| |
1165 CxMap *b = cxHashMapCreateSimple(sizeof(int)); |
| |
1166 cxMapPut(b, "k0", "v0"); |
| |
1167 cxMapPut(b, "k2", "v2"); |
| |
1168 cxMapPut(b, "k5", "v5"); |
| |
1169 |
| |
1170 CxMap *c = cxHashMapCreateSimple(sizeof(int)); |
| |
1171 cxMapPut(c, "k3", "v3"); |
| |
1172 cxMapPut(c, "k4", "v4"); |
| |
1173 cxMapPut(c, "k5", "v5"); |
| |
1174 |
| |
1175 |
| |
1176 CxHashKey k; |
| |
1177 CxList *kl1 = cxArrayListCreateSimple(sizeof(CxHashKey), 4); |
| |
1178 cxCollectionCompareFunc(kl1, cx_hash_key_cmp); |
| |
1179 k = CX_HASH_KEY("k0"); |
| |
1180 cxListAdd(kl1, &k); |
| |
1181 k = CX_HASH_KEY("k2"); |
| |
1182 cxListAdd(kl1, &k); |
| |
1183 k = CX_HASH_KEY("k5"); |
| |
1184 cxListAdd(kl1, &k); |
| |
1185 |
| |
1186 CxList *kl2 = cxArrayListCreateSimple(sizeof(CxHashKey), 4); |
| |
1187 cxCollectionCompareFunc(kl2, cx_hash_key_cmp); |
| |
1188 k = CX_HASH_KEY("k3"); |
| |
1189 cxListAdd(kl2, &k); |
| |
1190 k = CX_HASH_KEY("k4"); |
| |
1191 cxListAdd(kl2, &k); |
| |
1192 k = CX_HASH_KEY("k5"); |
| |
1193 cxListAdd(kl2, &k); |
| |
1194 |
| |
1195 CxMap *d1 = cxHashMapCreateSimple(CX_STORE_POINTERS); |
| |
1196 cxDefineAdvancedDestructor(d1, cxFree, (void*)cxDefaultAllocator); |
| |
1197 CxMap *d2 = cxHashMapCreateSimple(CX_STORE_POINTERS); |
| |
1198 cxDefineAdvancedDestructor(d2, cxFree, (void*)cxDefaultAllocator); |
| |
1199 |
| |
1200 CX_TEST_DO { |
| |
1201 CX_TEST_ASSERT(0 == cxMapCloneSimple(d1, a)); |
| |
1202 CX_TEST_ASSERT(!cxMapContains(d1, "k0")); |
| |
1203 CX_TEST_ASSERT(cxMapContains(d1, "k1")); |
| |
1204 CX_TEST_ASSERT(cxMapContains(d1, "k2")); |
| |
1205 CX_TEST_ASSERT(cxMapContains(d1, "k3")); |
| |
1206 CX_TEST_ASSERT(cxMapContains(d1, "k4")); |
| |
1207 CX_TEST_ASSERT(!cxMapContains(d1, "k5")); |
| |
1208 |
| |
1209 CX_TEST_ASSERT(0 == cxMapListDifferenceSimple(d2, d1, kl1)); |
| |
1210 CX_TEST_ASSERT(!cxMapContains(d2, "k0")); |
| |
1211 CX_TEST_ASSERT(cxMapContains(d2, "k1")); |
| |
1212 CX_TEST_ASSERT(!cxMapContains(d2, "k2")); |
| |
1213 CX_TEST_ASSERT(cxMapContains(d2, "k3")); |
| |
1214 CX_TEST_ASSERT(cxMapContains(d2, "k4")); |
| |
1215 CX_TEST_ASSERT(!cxMapContains(d2, "k5")); |
| |
1216 |
| |
1217 cxMapClear(d1); |
| |
1218 CX_TEST_ASSERT(0 == cxMapListIntersectionSimple(d1, d2, kl2)); |
| |
1219 CX_TEST_ASSERT(!cxMapContains(d1, "k0")); |
| |
1220 CX_TEST_ASSERT(!cxMapContains(d1, "k1")); |
| |
1221 CX_TEST_ASSERT(!cxMapContains(d1, "k2")); |
| |
1222 CX_TEST_ASSERT(cxMapContains(d1, "k3")); |
| |
1223 CX_TEST_ASSERT(cxMapContains(d1, "k4")); |
| |
1224 |
| |
1225 CX_TEST_ASSERT(0 == cxMapUnionSimple(d1, b)); |
| |
1226 CX_TEST_ASSERT(cxMapContains(d1, "k0")); |
| |
1227 CX_TEST_ASSERT(!cxMapContains(d1, "k1")); |
| |
1228 CX_TEST_ASSERT(cxMapContains(d1, "k2")); |
| |
1229 CX_TEST_ASSERT(cxMapContains(d1, "k3")); |
| |
1230 CX_TEST_ASSERT(cxMapContains(d1, "k4")); |
| |
1231 CX_TEST_ASSERT(cxMapContains(d1, "k5")); |
| |
1232 |
| |
1233 cxMapClear(d2); |
| |
1234 CX_TEST_ASSERT(0 == cxMapDifferenceSimple(d2, d1, a)); |
| |
1235 CX_TEST_ASSERT(cxMapContains(d2, "k0")); |
| |
1236 CX_TEST_ASSERT(!cxMapContains(d2, "k1")); |
| |
1237 CX_TEST_ASSERT(!cxMapContains(d2, "k2")); |
| |
1238 CX_TEST_ASSERT(!cxMapContains(d2, "k3")); |
| |
1239 CX_TEST_ASSERT(!cxMapContains(d2, "k4")); |
| |
1240 CX_TEST_ASSERT(cxMapContains(d2, "k5")); |
| |
1241 |
| |
1242 cxMapClear(d1); |
| |
1243 CX_TEST_ASSERT(0 == cxMapIntersectionSimple(d1, d2, c)); |
| |
1244 CX_TEST_ASSERT(!cxMapContains(d1, "k0")); |
| |
1245 CX_TEST_ASSERT(!cxMapContains(d1, "k1")); |
| |
1246 CX_TEST_ASSERT(!cxMapContains(d1, "k2")); |
| |
1247 CX_TEST_ASSERT(!cxMapContains(d1, "k3")); |
| |
1248 CX_TEST_ASSERT(!cxMapContains(d1, "k4")); |
| |
1249 CX_TEST_ASSERT(cxMapContains(d1, "k5")); |
| |
1250 } |
| |
1251 |
| |
1252 cxMapFree(a); |
| |
1253 cxMapFree(b); |
| |
1254 cxMapFree(c); |
| |
1255 cxListFree(kl1); |
| |
1256 cxListFree(kl2); |
| |
1257 cxMapFree(d1); |
| |
1258 cxMapFree(d2); |
| 1156 } |
1259 } |
| 1157 |
1260 |
| 1158 CX_TEST(test_empty_map_size) { |
1261 CX_TEST(test_empty_map_size) { |
| 1159 CX_TEST_DO { |
1262 CX_TEST_DO { |
| 1160 CX_TEST_ASSERT(cxEmptyMap->collection.size == 0); |
1263 CX_TEST_ASSERT(cxEmptyMap->collection.size == 0); |
| 1518 cx_test_register(suite, test_hash_map_intersection_non_empty_target); |
1621 cx_test_register(suite, test_hash_map_intersection_non_empty_target); |
| 1519 cx_test_register(suite, test_hash_map_list_intersection_non_empty_target); |
1622 cx_test_register(suite, test_hash_map_list_intersection_non_empty_target); |
| 1520 cx_test_register(suite, test_hash_map_union); |
1623 cx_test_register(suite, test_hash_map_union); |
| 1521 cx_test_register(suite, test_hash_map_union_ptr); |
1624 cx_test_register(suite, test_hash_map_union_ptr); |
| 1522 cx_test_register(suite, test_hash_map_union_alloc_fail); |
1625 cx_test_register(suite, test_hash_map_union_alloc_fail); |
| |
1626 cx_test_register(suite, test_hash_map_simple_clones); |
| 1523 cx_test_register(suite, test_empty_map_no_ops); |
1627 cx_test_register(suite, test_empty_map_no_ops); |
| 1524 cx_test_register(suite, test_empty_map_size); |
1628 cx_test_register(suite, test_empty_map_size); |
| 1525 cx_test_register(suite, test_empty_map_get); |
1629 cx_test_register(suite, test_empty_map_get); |
| 1526 cx_test_register(suite, test_empty_map_iterator); |
1630 cx_test_register(suite, test_empty_map_iterator); |
| 1527 cx_test_register(suite, test_null_map_iterator); |
1631 cx_test_register(suite, test_null_map_iterator); |