1.1 --- a/test/test_list.cpp Mon Jan 23 20:22:11 2023 +0100 1.2 +++ b/test/test_list.cpp Mon Jan 23 20:34:18 2023 +0100 1.3 @@ -169,17 +169,17 @@ 1.4 int s; 1.5 1.6 s = 2; 1.7 - EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, false, cx_cmp_int, &s), 0); 1.8 + EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s), 0); 1.9 s = 4; 1.10 - EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, false, cx_cmp_int, &s), 1); 1.11 + EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s), 1); 1.12 s = 6; 1.13 - EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, false, cx_cmp_int, &s), 2); 1.14 + EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s), 2); 1.15 s = 8; 1.16 - EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, false, cx_cmp_int, &s), 3); 1.17 + EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s), 3); 1.18 s = 10; 1.19 - EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, false, cx_cmp_int, &s), 4); 1.20 + EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s), 4); 1.21 s = -2; 1.22 - EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, false, cx_cmp_int, &s), 4); 1.23 + EXPECT_EQ(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s), 4); 1.24 } 1.25 1.26 TEST(LinkedList_LowLevel, cx_linked_list_compare) { 1.27 @@ -188,11 +188,11 @@ 1.28 auto tc = create_nodes_test_data({2, 4, 6, 9}); 1.29 auto la = ta.begin, lb = tb.begin, lc = tc.begin; 1.30 1.31 - EXPECT_GT(cx_linked_list_compare(la, lb, loc_next, loc_data, false, false, cx_cmp_int), 0); 1.32 - EXPECT_LT(cx_linked_list_compare(lb, la, loc_next, loc_data, false, false, cx_cmp_int), 0); 1.33 - EXPECT_GT(cx_linked_list_compare(lc, la, loc_next, loc_data, false, false, cx_cmp_int), 0); 1.34 - EXPECT_LT(cx_linked_list_compare(la, lc, loc_next, loc_data, false, false, cx_cmp_int), 0); 1.35 - EXPECT_EQ(cx_linked_list_compare(la, la, loc_next, loc_data, false, false, cx_cmp_int), 0); 1.36 + EXPECT_GT(cx_linked_list_compare(la, lb, loc_next, loc_data, cx_cmp_int), 0); 1.37 + EXPECT_LT(cx_linked_list_compare(lb, la, loc_next, loc_data, cx_cmp_int), 0); 1.38 + EXPECT_GT(cx_linked_list_compare(lc, la, loc_next, loc_data, cx_cmp_int), 0); 1.39 + EXPECT_LT(cx_linked_list_compare(la, lc, loc_next, loc_data, cx_cmp_int), 0); 1.40 + EXPECT_EQ(cx_linked_list_compare(la, la, loc_next, loc_data, cx_cmp_int), 0); 1.41 } 1.42 1.43 TEST(LinkedList_LowLevel, cx_linked_list_add) { 1.44 @@ -518,8 +518,7 @@ 1.45 void *begin = scrambled.begin; 1.46 void *end = cx_linked_list_last(begin, loc_next); 1.47 1.48 - cx_linked_list_sort(&begin, &end, loc_prev, loc_next, loc_data, 1.49 - false, cx_cmp_int); 1.50 + cx_linked_list_sort(&begin, &end, loc_prev, loc_next, loc_data, cx_cmp_int); 1.51 1.52 node *check = reinterpret_cast<node *>(begin); 1.53 node *check_last = nullptr; 1.54 @@ -547,7 +546,7 @@ 1.55 cx_linked_list_reverse(&begin, &end, loc_prev, loc_next); 1.56 EXPECT_EQ(end, orig_begin); 1.57 EXPECT_EQ(begin, orig_end); 1.58 - EXPECT_EQ(cx_linked_list_compare(begin, expected.begin, loc_next, loc_data, false, false, cx_cmp_int), 0); 1.59 + EXPECT_EQ(cx_linked_list_compare(begin, expected.begin, loc_next, loc_data, cx_cmp_int), 0); 1.60 } 1.61 1.62 class HighLevelTest : public ::testing::Test { 1.63 @@ -574,13 +573,6 @@ 1.64 return list; 1.65 } 1.66 1.67 - auto pointerLinkedListFromTestData() const -> CxList * { 1.68 - auto list = autofree(cxPointerLinkedListCreate(&testingAllocator, cx_cmp_int)); 1.69 - // note: cannot use cxListAddArray() because we don't have a list of pointers 1.70 - cx_for_n(i, testdata_len) cxListAdd(list, &testdata.data[i]); 1.71 - return list; 1.72 - } 1.73 - 1.74 auto arrayListFromTestData() const -> CxList * { 1.75 auto list = autofree(cxArrayListCreate(&testingAllocator, cx_cmp_int, sizeof(int), testdata_len)); 1.76 cxListAddArray(list, testdata.data.data(), testdata_len); 1.77 @@ -795,9 +787,6 @@ 1.78 class LinkedList : public HighLevelTest { 1.79 }; 1.80 1.81 -class PointerLinkedList : public HighLevelTest { 1.82 -}; 1.83 - 1.84 class ArrayList : public HighLevelTest { 1.85 }; 1.86 1.87 @@ -809,14 +798,6 @@ 1.88 verifyCreate(list); 1.89 } 1.90 1.91 -TEST_F(PointerLinkedList, cxPointerLinkedListCreate) { 1.92 - CxList *list = autofree(cxPointerLinkedListCreate(&testingAllocator, cx_cmp_int)); 1.93 - ASSERT_NE(list, nullptr); 1.94 - EXPECT_EQ(list->itemsize, sizeof(void *)); 1.95 - EXPECT_EQ(list->capacity, (size_t) -1); 1.96 - verifyCreate(list); 1.97 -} 1.98 - 1.99 TEST_F(ArrayList, cxArrayListCreate) { 1.100 CxList *list = autofree(cxArrayListCreate(&testingAllocator, cx_cmp_int, sizeof(int), 8)); 1.101 ASSERT_NE(list, nullptr); 1.102 @@ -830,11 +811,6 @@ 1.103 verifyAdd(list, false); 1.104 } 1.105 1.106 -TEST_F(PointerLinkedList, cxListAdd) { 1.107 - CxList *list = autofree(cxPointerLinkedListCreate(&testingAllocator, cx_cmp_int)); 1.108 - verifyAdd(list, true); 1.109 -} 1.110 - 1.111 TEST_F(ArrayList, cxListAdd) { 1.112 CxList *list = autofree(cxArrayListCreate(&testingAllocator, cx_cmp_int, sizeof(int), 8)); 1.113 verifyAdd(list, false); 1.114 @@ -844,10 +820,6 @@ 1.115 verifyInsert(autofree(cxLinkedListCreate(&testingAllocator, cx_cmp_int, sizeof(int)))); 1.116 } 1.117 1.118 -TEST_F(PointerLinkedList, cxListInsert) { 1.119 - verifyInsert(autofree(cxPointerLinkedListCreate(&testingAllocator, cx_cmp_int))); 1.120 -} 1.121 - 1.122 TEST_F(ArrayList, cxListInsert) { 1.123 verifyInsert(autofree(cxArrayListCreate(&testingAllocator, cx_cmp_int, sizeof(int), 2))); 1.124 } 1.125 @@ -856,11 +828,6 @@ 1.126 verifyInsertArray(autofree(cxLinkedListCreate(&testingAllocator, cx_cmp_int, sizeof(int)))); 1.127 } 1.128 1.129 -TEST_F(PointerLinkedList, cxListInsertArray) { 1.130 - //TODO: this is unfixably broken - solve with issue #234 1.131 - //verifyInsertArray(autofree(cxPointerLinkedListCreate(&testingAllocator, cx_cmp_int))); 1.132 -} 1.133 - 1.134 TEST_F(ArrayList, cxListInsertArray) { 1.135 verifyInsertArray(autofree(cxArrayListCreate(&testingAllocator, cx_cmp_int, sizeof(int), 4))); 1.136 } 1.137 @@ -869,10 +836,6 @@ 1.138 verifyRemove(linkedListFromTestData()); 1.139 } 1.140 1.141 -TEST_F(PointerLinkedList, cxListRemove) { 1.142 - verifyRemove(pointerLinkedListFromTestData()); 1.143 -} 1.144 - 1.145 TEST_F(ArrayList, cxListRemove) { 1.146 verifyRemove(arrayListFromTestData()); 1.147 } 1.148 @@ -881,10 +844,6 @@ 1.149 verifyAt(linkedListFromTestData()); 1.150 } 1.151 1.152 -TEST_F(PointerLinkedList, cxListAt) { 1.153 - verifyAt(pointerLinkedListFromTestData()); 1.154 -} 1.155 - 1.156 TEST_F(ArrayList, cxListAt) { 1.157 verifyAt(arrayListFromTestData()); 1.158 } 1.159 @@ -893,10 +852,6 @@ 1.160 verifyFind(linkedListFromTestData()); 1.161 } 1.162 1.163 -TEST_F(PointerLinkedList, cxListFind) { 1.164 - verifyFind(pointerLinkedListFromTestData()); 1.165 -} 1.166 - 1.167 TEST_F(ArrayList, cxListFind) { 1.168 verifyFind(arrayListFromTestData()); 1.169 } 1.170 @@ -905,10 +860,6 @@ 1.171 verifySort(linkedListFromTestData()); 1.172 } 1.173 1.174 -TEST_F(PointerLinkedList, cxListSort) { 1.175 - verifySort(pointerLinkedListFromTestData()); 1.176 -} 1.177 - 1.178 TEST_F(ArrayList, cxListSort) { 1.179 verifySort(arrayListFromTestData()); 1.180 } 1.181 @@ -917,10 +868,6 @@ 1.182 verifyIterator(linkedListFromTestData()); 1.183 } 1.184 1.185 -TEST_F(PointerLinkedList, Iterator) { 1.186 - verifyIterator(pointerLinkedListFromTestData()); 1.187 -} 1.188 - 1.189 TEST_F(ArrayList, Iterator) { 1.190 verifyIterator(arrayListFromTestData()); 1.191 } 1.192 @@ -932,14 +879,6 @@ 1.193 verifyInsertViaIterator(list); 1.194 } 1.195 1.196 -TEST_F(PointerLinkedList, InsertViaIterator) { 1.197 - int fivenums[] = {0, 1, 2, 3, 4, 5}; 1.198 - CxList *list = autofree(cxPointerLinkedListCreate(&testingAllocator, cx_cmp_int)); 1.199 - // note: don't use cxListAddArray() here, because we don't have a list of pointers 1.200 - cx_for_n (i, 5) cxListAdd(list, &fivenums[i]); 1.201 - verifyInsertViaIterator(list); 1.202 -} 1.203 - 1.204 TEST_F(ArrayList, InsertViaIterator) { 1.205 int fivenums[] = {0, 1, 2, 3, 4, 5}; 1.206 CxList *list = autofree(cxArrayListCreate(&testingAllocator, cx_cmp_int, sizeof(int), 4)); 1.207 @@ -951,10 +890,6 @@ 1.208 verifyReverse(linkedListFromTestData()); 1.209 } 1.210 1.211 -TEST_F(PointerLinkedList, cxListReverse) { 1.212 - verifyReverse(pointerLinkedListFromTestData()); 1.213 -} 1.214 - 1.215 TEST_F(ArrayList, cxListReverse) { 1.216 verifyReverse(arrayListFromTestData()); 1.217 } 1.218 @@ -965,83 +900,20 @@ 1.219 verifyCompare(left, right); 1.220 } 1.221 1.222 -TEST_F(LinkedList, cxListCompareWithPtrList) { 1.223 - auto left = linkedListFromTestData(); 1.224 - auto right = pointerLinkedListFromTestData(); 1.225 - verifyCompare(left, right); 1.226 -} 1.227 - 1.228 TEST_F(LinkedList, cxListCompareWithArrayList) { 1.229 auto left = linkedListFromTestData(); 1.230 auto right = arrayListFromTestData(); 1.231 verifyCompare(left, right); 1.232 } 1.233 1.234 -TEST_F(PointerLinkedList, cxListCompare) { 1.235 - auto left = pointerLinkedListFromTestData(); 1.236 - auto right = pointerLinkedListFromTestData(); 1.237 - verifyCompare(left, right); 1.238 -} 1.239 - 1.240 -TEST_F(PointerLinkedList, cxListCompareWithNormalList) { 1.241 - auto left = pointerLinkedListFromTestData(); 1.242 - auto right = linkedListFromTestData(); 1.243 - verifyCompare(left, right); 1.244 -} 1.245 - 1.246 -TEST_F(PointerLinkedList, cxListCompareWithArrayList) { 1.247 - auto left = pointerLinkedListFromTestData(); 1.248 - auto right = arrayListFromTestData(); 1.249 - verifyCompare(left, right); 1.250 -} 1.251 - 1.252 TEST_F(ArrayList, cxListCompare) { 1.253 auto left = arrayListFromTestData(); 1.254 auto right = arrayListFromTestData(); 1.255 verifyCompare(left, right); 1.256 } 1.257 1.258 -TEST_F(ArrayList, cxListCompareWithPtrList) { 1.259 - auto left = arrayListFromTestData(); 1.260 - auto right = pointerLinkedListFromTestData(); 1.261 - verifyCompare(left, right); 1.262 -} 1.263 - 1.264 -TEST_F(ArrayList, cxListCompareWithNormalList) { 1.265 +TEST_F(ArrayList, cxListCompareWithLinkedList) { 1.266 auto left = arrayListFromTestData(); 1.267 auto right = linkedListFromTestData(); 1.268 verifyCompare(left, right); 1.269 } 1.270 - 1.271 -TEST_F(PointerLinkedList, NoDestructor) { 1.272 - void *item = cxMalloc(&testingAllocator, sizeof(int)); 1.273 - auto list = cxPointerLinkedListCreate(cxDefaultAllocator, cx_cmp_int); 1.274 - cxListAdd(list, item); 1.275 - ASSERT_FALSE(testingAllocator.verify()); 1.276 - cxListDestroy(list); 1.277 - EXPECT_FALSE(testingAllocator.verify()); 1.278 - cxFree(&testingAllocator, item); 1.279 - EXPECT_TRUE(testingAllocator.verify()); 1.280 -} 1.281 - 1.282 -TEST_F(PointerLinkedList, SimpleDestructor) { 1.283 - int item = 0; 1.284 - auto list = cxPointerLinkedListCreate(cxDefaultAllocator, cx_cmp_int); 1.285 - list->content_destructor_type = CX_DESTRUCTOR_SIMPLE; 1.286 - list->simple_destructor = [](void *elem) { *(int *) elem = 42; }; 1.287 - cxListAdd(list, &item); 1.288 - cxListDestroy(list); 1.289 - EXPECT_EQ(item, 42); 1.290 -} 1.291 - 1.292 -TEST_F(PointerLinkedList, AdvancedDestructor) { 1.293 - void *item = cxMalloc(&testingAllocator, sizeof(int)); 1.294 - auto list = cxPointerLinkedListCreate(cxDefaultAllocator, cx_cmp_int); 1.295 - list->content_destructor_type = CX_DESTRUCTOR_ADVANCED; 1.296 - list->advanced_destructor.data = &testingAllocator; 1.297 - list->advanced_destructor.func = (cx_destructor_func2) cxFree; 1.298 - cxListAdd(list, item); 1.299 - ASSERT_FALSE(testingAllocator.verify()); 1.300 - cxListDestroy(list); 1.301 - EXPECT_TRUE(testingAllocator.verify()); 1.302 -}