630 CX_TEST(test_empty_list_iterator) { |
630 CX_TEST(test_empty_list_iterator) { |
631 CxList *list = cxEmptyList; |
631 CxList *list = cxEmptyList; |
632 |
632 |
633 CxIterator it1 = cxListIterator(list); |
633 CxIterator it1 = cxListIterator(list); |
634 CxIterator it2 = cxListBackwardsIterator(list); |
634 CxIterator it2 = cxListBackwardsIterator(list); |
635 CxMutIterator it3 = cxListMutIterator(list); |
635 CxIterator it3 = cxListMutIterator(list); |
636 CxMutIterator it4 = cxListMutBackwardsIterator(list); |
636 CxIterator it4 = cxListMutBackwardsIterator(list); |
637 |
637 |
638 CX_TEST_DO { |
638 CX_TEST_DO { |
639 CX_TEST_ASSERT(!cxIteratorValid(it1)); |
639 CX_TEST_ASSERT(!cxIteratorValid(it1)); |
640 CX_TEST_ASSERT(!cxIteratorValid(it2)); |
640 CX_TEST_ASSERT(!cxIteratorValid(it2)); |
641 CX_TEST_ASSERT(!cxIteratorValid(it3)); |
641 CX_TEST_ASSERT(!cxIteratorValid(it3)); |
1222 CX_TEST_ASSERT(*x == testdata[iter.index]); |
1222 CX_TEST_ASSERT(*x == testdata[iter.index]); |
1223 i--; |
1223 i--; |
1224 } |
1224 } |
1225 CX_TEST_ASSERT(i == 0); |
1225 CX_TEST_ASSERT(i == 0); |
1226 i = len / 2; |
1226 i = len / 2; |
1227 CxMutIterator mut_iter = cxListMutIteratorAt(list, i); |
1227 CxIterator mut_iter = cxListMutIteratorAt(list, i); |
1228 CX_TEST_ASSERT(mut_iter.elem_size == list->item_size); |
1228 CX_TEST_ASSERT(mut_iter.elem_size == list->item_size); |
1229 CX_TEST_ASSERT(mut_iter.elem_count == list->size); |
1229 CX_TEST_ASSERT(mut_iter.elem_count == list->size); |
1230 size_t j = 0; |
1230 size_t j = 0; |
1231 cx_foreach(int*, x, mut_iter) { |
1231 cx_foreach(int*, x, mut_iter) { |
1232 CX_TEST_ASSERT(mut_iter.index == len / 2 + j / 2); |
1232 CX_TEST_ASSERT(mut_iter.index == len / 2 + j / 2); |
1256 roll_out_test_combos(insert_with_iterator, { |
1256 roll_out_test_combos(insert_with_iterator, { |
1257 int fivenums[] = array_init(0, 1, 2, 3, 4); |
1257 int fivenums[] = array_init(0, 1, 2, 3, 4); |
1258 cx_for_n(i, 5) cxListAdd(list, &fivenums[i]); |
1258 cx_for_n(i, 5) cxListAdd(list, &fivenums[i]); |
1259 int newdata[] = array_init(10, 20, 30, 40, 50); |
1259 int newdata[] = array_init(10, 20, 30, 40, 50); |
1260 |
1260 |
1261 CxMutIterator iter = cxListMutIteratorAt(list, 2); |
1261 CxIterator iter = cxListMutIteratorAt(list, 2); |
1262 CX_TEST_ASSERT(cxIteratorValid(iter)); |
1262 CX_TEST_ASSERT(cxIteratorValid(iter)); |
1263 CX_TEST_ASSERT(iter.index == 2); |
1263 CX_TEST_ASSERT(iter.index == 2); |
1264 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 2); |
1264 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 2); |
1265 cxListInsertAfter(&iter, &newdata[0]); |
1265 cxListInsertAfter(&iter, &newdata[0]); |
1266 CX_TEST_ASSERT(cxIteratorValid(iter)); |
1266 CX_TEST_ASSERT(cxIteratorValid(iter)); |
1363 cxListRemove(list, 47); |
1363 cxListRemove(list, 47); |
1364 CX_TEST_ASSERT(2 == destr_test_ctr); |
1364 CX_TEST_ASSERT(2 == destr_test_ctr); |
1365 CX_TEST_ASSERT(testdata[48] == destr_last_value + off); |
1365 CX_TEST_ASSERT(testdata[48] == destr_last_value + off); |
1366 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list)); |
1366 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list)); |
1367 |
1367 |
1368 CxMutIterator iter = cxListMutIteratorAt(list, 7); |
1368 CxIterator iter = cxListMutIteratorAt(list, 7); |
1369 cxIteratorNext(iter); |
1369 cxIteratorNext(iter); |
1370 CX_TEST_ASSERT(2 == destr_test_ctr); |
1370 CX_TEST_ASSERT(2 == destr_test_ctr); |
1371 CX_TEST_ASSERT(testdata[48] == destr_last_value + off); |
1371 CX_TEST_ASSERT(testdata[48] == destr_last_value + off); |
1372 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list)); |
1372 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list)); |
1373 cxIteratorFlagRemoval(iter); |
1373 cxIteratorFlagRemoval(iter); |