238 cxMapPut(map, "key 3", (void *) "val 3"); |
238 cxMapPut(map, "key 3", (void *) "val 3"); |
239 cxMapPut(map, "key 4", (void *) "val 4"); |
239 cxMapPut(map, "key 4", (void *) "val 4"); |
240 cxMapPut(map, "key 5", (void *) "val 5"); |
240 cxMapPut(map, "key 5", (void *) "val 5"); |
241 cxMapPut(map, "key 6", (void *) "val 6"); |
241 cxMapPut(map, "key 6", (void *) "val 6"); |
242 |
242 |
243 CxMutIterator iter = cxMapMutIterator(map); |
243 CxIterator iter = cxMapMutIterator(map); |
244 cx_foreach(CxMapEntry*, entry, iter) { |
244 cx_foreach(CxMapEntry*, entry, iter) { |
245 if (((char const *)entry->key->data)[4] % 2 == 1) cxIteratorFlagRemoval(iter); |
245 if (((char const *)entry->key->data)[4] % 2 == 1) cxIteratorFlagRemoval(iter); |
246 } |
246 } |
247 CX_TEST_ASSERT(map->size == 3); |
247 CX_TEST_ASSERT(map->size == 3); |
248 CX_TEST_ASSERT(iter.index == map->size); |
248 CX_TEST_ASSERT(iter.index == map->size); |
311 cxMapPut(map, k1, (void *) v1); |
311 cxMapPut(map, k1, (void *) v1); |
312 cxMapPut(map, k3, (void *) v3); |
312 cxMapPut(map, k3, (void *) v3); |
313 cxMapPut(map, k5, (void *) v5); |
313 cxMapPut(map, k5, (void *) v5); |
314 |
314 |
315 { |
315 { |
316 CxMutIterator iter = cxMapMutIteratorKeys(map); |
316 CxIterator iter = cxMapMutIteratorKeys(map); |
317 cx_foreach(CxHashKey*, key, iter) { |
317 cx_foreach(CxHashKey*, key, iter) { |
318 if (((char*)key->data)[4] == '1') cxIteratorFlagRemoval(iter); |
318 if (((char*)key->data)[4] == '1') cxIteratorFlagRemoval(iter); |
319 } |
319 } |
320 } |
320 } |
321 { |
321 { |
322 CxMutIterator iter = cxMapMutIteratorValues(map); |
322 CxIterator iter = cxMapMutIteratorValues(map); |
323 cx_foreach(char*, v, iter) { |
323 cx_foreach(char*, v, iter) { |
324 if (v[4] == '5') cxIteratorFlagRemoval(iter); |
324 if (v[4] == '5') cxIteratorFlagRemoval(iter); |
325 } |
325 } |
326 } |
326 } |
327 |
327 |
378 CxMap *map = cxEmptyMap; |
378 CxMap *map = cxEmptyMap; |
379 |
379 |
380 CxIterator it1 = cxMapIterator(map); |
380 CxIterator it1 = cxMapIterator(map); |
381 CxIterator it2 = cxMapIteratorValues(map); |
381 CxIterator it2 = cxMapIteratorValues(map); |
382 CxIterator it3 = cxMapIteratorKeys(map); |
382 CxIterator it3 = cxMapIteratorKeys(map); |
383 CxMutIterator it4 = cxMapMutIterator(map); |
383 CxIterator it4 = cxMapMutIterator(map); |
384 CxMutIterator it5 = cxMapMutIteratorValues(map); |
384 CxIterator it5 = cxMapMutIteratorValues(map); |
385 CxMutIterator it6 = cxMapMutIteratorKeys(map); |
385 CxIterator it6 = cxMapMutIteratorKeys(map); |
386 |
386 |
387 CX_TEST_DO { |
387 CX_TEST_DO { |
388 CX_TEST_ASSERT(!cxIteratorValid(it1)); |
388 CX_TEST_ASSERT(!cxIteratorValid(it1)); |
389 CX_TEST_ASSERT(!cxIteratorValid(it2)); |
389 CX_TEST_ASSERT(!cxIteratorValid(it2)); |
390 CX_TEST_ASSERT(!cxIteratorValid(it3)); |
390 CX_TEST_ASSERT(!cxIteratorValid(it3)); |