1.1 --- a/test/test_list.c Sat Jan 22 19:10:04 2022 +0100 1.2 +++ b/test/test_list.c Sat Jan 29 12:46:07 2022 +0100 1.3 @@ -572,6 +572,21 @@ 1.4 CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.5 } 1.6 1.7 +void test_hl_ptr_linked_list_create(void) { 1.8 + cxTestingAllocatorReset(); 1.9 + 1.10 + CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.11 + 1.12 + CU_ASSERT_EQUAL(list->size, 0) 1.13 + CU_ASSERT_EQUAL(list->capacity, (size_t) -1) 1.14 + CU_ASSERT_PTR_EQUAL(list->allocator, cxTestingAllocator) 1.15 + CU_ASSERT_EQUAL(list->itemsize, sizeof(void *)) 1.16 + CU_ASSERT_PTR_EQUAL(list->cmpfunc, cmp_int) 1.17 + 1.18 + cxLinkedListDestroy(list); 1.19 + CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.20 +} 1.21 + 1.22 void test_hl_linked_list_from_array(void) { 1.23 cxTestingAllocatorReset(); 1.24 1.25 @@ -614,6 +629,36 @@ 1.26 CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.27 } 1.28 1.29 +void test_hl_ptr_linked_list_add(void) { 1.30 + cxTestingAllocatorReset(); 1.31 + 1.32 + CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.33 + 1.34 + int a = 5, b = 47, c = 13; 1.35 + 1.36 + CU_ASSERT_EQUAL(cxListAdd(list, &a), 0) 1.37 + CU_ASSERT_EQUAL(cxListAdd(list, &b), 0) 1.38 + CU_ASSERT_EQUAL(cxListAdd(list, &c), 0) 1.39 + 1.40 + CU_ASSERT_EQUAL(list->size, 3) 1.41 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.42 + 1.43 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 5) 1.44 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 47) 1.45 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 13) 1.46 + 1.47 + a = 9; 1.48 + b = 10; 1.49 + c = 11; 1.50 + 1.51 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 9) 1.52 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 10) 1.53 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 11) 1.54 + 1.55 + cxLinkedListDestroy(list); 1.56 + CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.57 +} 1.58 + 1.59 void test_hl_linked_list_insert(void) { 1.60 cxTestingAllocatorReset(); 1.61 1.62 @@ -646,6 +691,35 @@ 1.63 CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.64 } 1.65 1.66 +void test_hl_ptr_linked_list_insert(void) { 1.67 + cxTestingAllocatorReset(); 1.68 + 1.69 + CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.70 + 1.71 + int a = 5, b = 47, c = 13, d = 42; 1.72 + 1.73 + CU_ASSERT_NOT_EQUAL(cxListInsert(list, 1, &a), 0) 1.74 + CU_ASSERT_EQUAL(list->size, 0) 1.75 + CU_ASSERT_EQUAL(cxListInsert(list, 0, &a), 0) 1.76 + CU_ASSERT_EQUAL(list->size, 1) 1.77 + CU_ASSERT_EQUAL(cxListInsert(list, 0, &b), 0) 1.78 + CU_ASSERT_EQUAL(list->size, 2) 1.79 + CU_ASSERT_EQUAL(cxListInsert(list, 1, &c), 0) 1.80 + CU_ASSERT_EQUAL(list->size, 3) 1.81 + CU_ASSERT_EQUAL(cxListInsert(list, 3, &d), 0) 1.82 + 1.83 + CU_ASSERT_EQUAL(list->size, 4) 1.84 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.85 + 1.86 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47) 1.87 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 13) 1.88 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 5) 1.89 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 3), 42) 1.90 + 1.91 + cxLinkedListDestroy(list); 1.92 + CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.93 +} 1.94 + 1.95 void test_hl_linked_list_remove(void) { 1.96 cxTestingAllocatorReset(); 1.97 1.98 @@ -686,6 +760,50 @@ 1.99 CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.100 } 1.101 1.102 +void test_hl_ptr_linked_list_remove(void) { 1.103 + cxTestingAllocatorReset(); 1.104 + 1.105 + int a = 5, b = 47, c = 42, d = 13; 1.106 + CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.107 + 1.108 + cxListAdd(list, &a); 1.109 + cxListAdd(list, &b); 1.110 + cxListAdd(list, &c); 1.111 + cxListAdd(list, &d); 1.112 + 1.113 + CU_ASSERT_EQUAL(list->size, 4) 1.114 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.115 + 1.116 + CU_ASSERT_NOT_EQUAL(cxListRemove(list, 4), 0) 1.117 + 1.118 + CU_ASSERT_EQUAL(cxListRemove(list, 2), 0) 1.119 + CU_ASSERT_EQUAL(list->size, 3) 1.120 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.121 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 5) 1.122 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 47) 1.123 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 13) 1.124 + 1.125 + CU_ASSERT_EQUAL(cxListRemove(list, 0), 0) 1.126 + CU_ASSERT_EQUAL(list->size, 2) 1.127 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.128 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47) 1.129 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 13) 1.130 + 1.131 + CU_ASSERT_EQUAL(cxListRemove(list, 1), 0) 1.132 + CU_ASSERT_EQUAL(list->size, 1) 1.133 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.134 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47) 1.135 + 1.136 + CU_ASSERT_EQUAL(cxListRemove(list, 0), 0) 1.137 + CU_ASSERT_EQUAL(list->size, 0) 1.138 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.139 + 1.140 + CU_ASSERT_NOT_EQUAL(cxListRemove(list, 0), 0) 1.141 + 1.142 + cxLinkedListDestroy(list); 1.143 + CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.144 +} 1.145 + 1.146 void test_hl_linked_list_at(void) { 1.147 cxTestingAllocatorReset(); 1.148 1.149 @@ -702,6 +820,25 @@ 1.150 CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.151 } 1.152 1.153 +void test_hl_ptr_linked_list_at(void) { 1.154 + cxTestingAllocatorReset(); 1.155 + 1.156 + CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.157 + 1.158 + int a = 5, b = 47, c = 13; 1.159 + cxListAdd(list, &a); 1.160 + cxListAdd(list, &b); 1.161 + cxListAdd(list, &c); 1.162 + 1.163 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 5) 1.164 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 47) 1.165 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 13) 1.166 + CU_ASSERT_PTR_NULL(cxListAt(list, 3)) 1.167 + 1.168 + cxLinkedListDestroy(list); 1.169 + CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.170 +} 1.171 + 1.172 void test_hl_linked_list_find(void) { 1.173 cxTestingAllocatorReset(); 1.174 1.175 @@ -728,6 +865,36 @@ 1.176 CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.177 } 1.178 1.179 +void test_hl_ptr_linked_list_find(void) { 1.180 + cxTestingAllocatorReset(); 1.181 + 1.182 + int a = 5, b = 47, c = 13, criteria; 1.183 + CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.184 + 1.185 + cxListAdd(list, &a); 1.186 + cxListAdd(list, &b); 1.187 + cxListAdd(list, &c); 1.188 + 1.189 + CU_ASSERT_EQUAL(list->size, 3) 1.190 + CU_ASSERT_TRUE(list->capacity >= list->size) 1.191 + 1.192 + criteria = 5; 1.193 + CU_ASSERT_EQUAL(cxListFind(list, &criteria), 0) 1.194 + criteria = 47; 1.195 + CU_ASSERT_EQUAL(cxListFind(list, &criteria), 1) 1.196 + criteria = 13; 1.197 + CU_ASSERT_EQUAL(cxListFind(list, &criteria), 2) 1.198 + criteria = 9000; 1.199 + CU_ASSERT_EQUAL(cxListFind(list, &criteria), 3) 1.200 + criteria = -5; 1.201 + CU_ASSERT_EQUAL(cxListFind(list, &criteria), 3) 1.202 + b = -5; 1.203 + CU_ASSERT_EQUAL(cxListFind(list, &criteria), 1) 1.204 + 1.205 + cxLinkedListDestroy(list); 1.206 + CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.207 +} 1.208 + 1.209 void test_hl_linked_list_sort(void) { 1.210 int expected[] = { 1.211 14, 30, 151, 163, 227, 300, 315, 317, 363, 398, 417, 424, 438, 446, 508, 555, 605, 713, 716, 759, 761, 880, 1.212 @@ -759,6 +926,42 @@ 1.213 CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.214 } 1.215 1.216 +void test_hl_ptr_linked_list_sort(void) { 1.217 + int expected[] = { 1.218 + 14, 30, 151, 163, 227, 300, 315, 317, 363, 398, 417, 424, 438, 446, 508, 555, 605, 713, 716, 759, 761, 880, 1.219 + 894, 1034, 1077, 1191, 1231, 1264, 1297, 1409, 1423, 1511, 1544, 1659, 1686, 1707, 1734, 1771, 1874, 1894, 1.220 + 1976, 2079, 2124, 2130, 2135, 2266, 2338, 2358, 2430, 2500, 2540, 2542, 2546, 2711, 2733, 2754, 2764, 2797, 1.221 + 2888, 2900, 3020, 3053, 3109, 3244, 3275, 3302, 3362, 3363, 3364, 3441, 3515, 3539, 3579, 3655, 3675, 3677, 1.222 + 3718, 3724, 3757, 3866, 3896, 3906, 3941, 3984, 3994, 4016, 4085, 4121, 4254, 4319, 4366, 4459, 4514, 4681, 1.223 + 4785, 4791, 4801, 4859, 4903, 4973 1.224 + }; 1.225 + int scrambled[] = { 1.226 + 759, 716, 880, 761, 2358, 2542, 2500, 2540, 2546, 2711, 2430, 1707, 1874, 1771, 1894, 1734, 1976, 2079, 1.227 + 2124, 2130, 2135, 2266, 2338, 2733, 2754, 2764, 2797, 3362, 3363, 3364, 3441, 3515, 3539, 3579, 3655, 2888, 1.228 + 2900, 3020, 3053, 3109, 3244, 3275, 3302, 438, 446, 508, 555, 605, 713, 14, 30, 151, 163, 227, 300, 1.229 + 894, 1034, 1077, 1191, 1231, 1264, 1297, 1409, 1423, 1511, 1544, 1659, 1686, 315, 317, 363, 398, 417, 424, 1.230 + 3675, 3677, 3718, 3724, 3757, 3866, 3896, 3906, 3941, 3984, 3994, 4785, 4791, 4801, 4859, 4903, 4973, 1.231 + 4016, 4085, 4121, 4254, 4319, 4366, 4459, 4514, 4681 1.232 + }; 1.233 + 1.234 + cxTestingAllocatorReset(); 1.235 + 1.236 + CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.237 + 1.238 + for (int i = 0; i < 100; i++) { 1.239 + cxListAdd(list, &scrambled[i]); 1.240 + } 1.241 + 1.242 + cxListSort(list); 1.243 + 1.244 + for (int i = 0; i < 100; i++) { 1.245 + CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), expected[i]) 1.246 + } 1.247 + 1.248 + cxLinkedListDestroy(list); 1.249 + CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.250 +} 1.251 + 1.252 void test_hl_linked_list_iterator_impl(CxList list) { 1.253 int i = 0; 1.254 CxIterator iter = cxListBegin(list); 1.255 @@ -798,209 +1001,6 @@ 1.256 test_hl_linked_list_iterator_impl(list); 1.257 } 1.258 1.259 -void test_hl_ptr_linked_list_create(void) { 1.260 - cxTestingAllocatorReset(); 1.261 - 1.262 - CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.263 - 1.264 - CU_ASSERT_EQUAL(list->size, 0) 1.265 - CU_ASSERT_EQUAL(list->capacity, (size_t) -1) 1.266 - CU_ASSERT_PTR_EQUAL(list->allocator, cxTestingAllocator) 1.267 - CU_ASSERT_EQUAL(list->itemsize, sizeof(void *)) 1.268 - CU_ASSERT_PTR_EQUAL(list->cmpfunc, cmp_int) 1.269 - 1.270 - cxLinkedListDestroy(list); 1.271 - CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.272 -} 1.273 - 1.274 -void test_hl_ptr_linked_list_add(void) { 1.275 - cxTestingAllocatorReset(); 1.276 - 1.277 - CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.278 - 1.279 - int a = 5, b = 47, c = 13; 1.280 - 1.281 - CU_ASSERT_EQUAL(cxListAdd(list, &a), 0) 1.282 - CU_ASSERT_EQUAL(cxListAdd(list, &b), 0) 1.283 - CU_ASSERT_EQUAL(cxListAdd(list, &c), 0) 1.284 - 1.285 - CU_ASSERT_EQUAL(list->size, 3) 1.286 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.287 - 1.288 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 5) 1.289 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 47) 1.290 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 13) 1.291 - 1.292 - a = 9; 1.293 - b = 10; 1.294 - c = 11; 1.295 - 1.296 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 9) 1.297 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 10) 1.298 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 11) 1.299 - 1.300 - cxLinkedListDestroy(list); 1.301 - CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.302 -} 1.303 - 1.304 -void test_hl_ptr_linked_list_insert(void) { 1.305 - cxTestingAllocatorReset(); 1.306 - 1.307 - CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.308 - 1.309 - int a = 5, b = 47, c = 13, d = 42; 1.310 - 1.311 - CU_ASSERT_NOT_EQUAL(cxListInsert(list, 1, &a), 0) 1.312 - CU_ASSERT_EQUAL(list->size, 0) 1.313 - CU_ASSERT_EQUAL(cxListInsert(list, 0, &a), 0) 1.314 - CU_ASSERT_EQUAL(list->size, 1) 1.315 - CU_ASSERT_EQUAL(cxListInsert(list, 0, &b), 0) 1.316 - CU_ASSERT_EQUAL(list->size, 2) 1.317 - CU_ASSERT_EQUAL(cxListInsert(list, 1, &c), 0) 1.318 - CU_ASSERT_EQUAL(list->size, 3) 1.319 - CU_ASSERT_EQUAL(cxListInsert(list, 3, &d), 0) 1.320 - 1.321 - CU_ASSERT_EQUAL(list->size, 4) 1.322 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.323 - 1.324 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47) 1.325 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 13) 1.326 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 5) 1.327 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 3), 42) 1.328 - 1.329 - cxLinkedListDestroy(list); 1.330 - CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.331 -} 1.332 - 1.333 -void test_hl_ptr_linked_list_remove(void) { 1.334 - cxTestingAllocatorReset(); 1.335 - 1.336 - int a = 5, b = 47, c = 42, d = 13; 1.337 - CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.338 - 1.339 - cxListAdd(list, &a); 1.340 - cxListAdd(list, &b); 1.341 - cxListAdd(list, &c); 1.342 - cxListAdd(list, &d); 1.343 - 1.344 - CU_ASSERT_EQUAL(list->size, 4) 1.345 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.346 - 1.347 - CU_ASSERT_NOT_EQUAL(cxListRemove(list, 4), 0) 1.348 - 1.349 - CU_ASSERT_EQUAL(cxListRemove(list, 2), 0) 1.350 - CU_ASSERT_EQUAL(list->size, 3) 1.351 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.352 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 5) 1.353 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 47) 1.354 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 13) 1.355 - 1.356 - CU_ASSERT_EQUAL(cxListRemove(list, 0), 0) 1.357 - CU_ASSERT_EQUAL(list->size, 2) 1.358 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.359 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47) 1.360 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 13) 1.361 - 1.362 - CU_ASSERT_EQUAL(cxListRemove(list, 1), 0) 1.363 - CU_ASSERT_EQUAL(list->size, 1) 1.364 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.365 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 47) 1.366 - 1.367 - CU_ASSERT_EQUAL(cxListRemove(list, 0), 0) 1.368 - CU_ASSERT_EQUAL(list->size, 0) 1.369 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.370 - 1.371 - CU_ASSERT_NOT_EQUAL(cxListRemove(list, 0), 0) 1.372 - 1.373 - cxLinkedListDestroy(list); 1.374 - CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.375 -} 1.376 - 1.377 -void test_hl_ptr_linked_list_at(void) { 1.378 - cxTestingAllocatorReset(); 1.379 - 1.380 - CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.381 - 1.382 - int a = 5, b = 47, c = 13; 1.383 - cxListAdd(list, &a); 1.384 - cxListAdd(list, &b); 1.385 - cxListAdd(list, &c); 1.386 - 1.387 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 0), 5) 1.388 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 1), 47) 1.389 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, 2), 13) 1.390 - CU_ASSERT_PTR_NULL(cxListAt(list, 3)) 1.391 - 1.392 - cxLinkedListDestroy(list); 1.393 - CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.394 -} 1.395 - 1.396 -void test_hl_ptr_linked_list_find(void) { 1.397 - cxTestingAllocatorReset(); 1.398 - 1.399 - int a = 5, b = 47, c = 13, criteria; 1.400 - CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.401 - 1.402 - cxListAdd(list, &a); 1.403 - cxListAdd(list, &b); 1.404 - cxListAdd(list, &c); 1.405 - 1.406 - CU_ASSERT_EQUAL(list->size, 3) 1.407 - CU_ASSERT_TRUE(list->capacity >= list->size) 1.408 - 1.409 - criteria = 5; 1.410 - CU_ASSERT_EQUAL(cxListFind(list, &criteria), 0) 1.411 - criteria = 47; 1.412 - CU_ASSERT_EQUAL(cxListFind(list, &criteria), 1) 1.413 - criteria = 13; 1.414 - CU_ASSERT_EQUAL(cxListFind(list, &criteria), 2) 1.415 - criteria = 9000; 1.416 - CU_ASSERT_EQUAL(cxListFind(list, &criteria), 3) 1.417 - criteria = -5; 1.418 - CU_ASSERT_EQUAL(cxListFind(list, &criteria), 3) 1.419 - b = -5; 1.420 - CU_ASSERT_EQUAL(cxListFind(list, &criteria), 1) 1.421 - 1.422 - cxLinkedListDestroy(list); 1.423 - CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.424 -} 1.425 - 1.426 -void test_hl_ptr_linked_list_sort(void) { 1.427 - int expected[] = { 1.428 - 14, 30, 151, 163, 227, 300, 315, 317, 363, 398, 417, 424, 438, 446, 508, 555, 605, 713, 716, 759, 761, 880, 1.429 - 894, 1034, 1077, 1191, 1231, 1264, 1297, 1409, 1423, 1511, 1544, 1659, 1686, 1707, 1734, 1771, 1874, 1894, 1.430 - 1976, 2079, 2124, 2130, 2135, 2266, 2338, 2358, 2430, 2500, 2540, 2542, 2546, 2711, 2733, 2754, 2764, 2797, 1.431 - 2888, 2900, 3020, 3053, 3109, 3244, 3275, 3302, 3362, 3363, 3364, 3441, 3515, 3539, 3579, 3655, 3675, 3677, 1.432 - 3718, 3724, 3757, 3866, 3896, 3906, 3941, 3984, 3994, 4016, 4085, 4121, 4254, 4319, 4366, 4459, 4514, 4681, 1.433 - 4785, 4791, 4801, 4859, 4903, 4973 1.434 - }; 1.435 - int scrambled[] = { 1.436 - 759, 716, 880, 761, 2358, 2542, 2500, 2540, 2546, 2711, 2430, 1707, 1874, 1771, 1894, 1734, 1976, 2079, 1.437 - 2124, 2130, 2135, 2266, 2338, 2733, 2754, 2764, 2797, 3362, 3363, 3364, 3441, 3515, 3539, 3579, 3655, 2888, 1.438 - 2900, 3020, 3053, 3109, 3244, 3275, 3302, 438, 446, 508, 555, 605, 713, 14, 30, 151, 163, 227, 300, 1.439 - 894, 1034, 1077, 1191, 1231, 1264, 1297, 1409, 1423, 1511, 1544, 1659, 1686, 315, 317, 363, 398, 417, 424, 1.440 - 3675, 3677, 3718, 3724, 3757, 3866, 3896, 3906, 3941, 3984, 3994, 4785, 4791, 4801, 4859, 4903, 4973, 1.441 - 4016, 4085, 4121, 4254, 4319, 4366, 4459, 4514, 4681 1.442 - }; 1.443 - 1.444 - cxTestingAllocatorReset(); 1.445 - 1.446 - CxList list = cxPointerLinkedListCreate(cxTestingAllocator, cmp_int); 1.447 - 1.448 - for (int i = 0; i < 100; i++) { 1.449 - cxListAdd(list, &scrambled[i]); 1.450 - } 1.451 - 1.452 - cxListSort(list); 1.453 - 1.454 - for (int i = 0; i < 100; i++) { 1.455 - CU_ASSERT_EQUAL(*(int *) cxListAt(list, i), expected[i]) 1.456 - } 1.457 - 1.458 - cxLinkedListDestroy(list); 1.459 - CU_ASSERT_TRUE(cxTestingAllocatorVerify()) 1.460 -} 1.461 - 1.462 int main() { 1.463 CU_pSuite suite = NULL; 1.464