1.1 --- a/tests/test_list.cpp Tue Jan 09 00:09:11 2024 +0100 1.2 +++ b/tests/test_list.cpp Tue Jan 09 21:25:08 2024 +0100 1.3 @@ -481,93 +481,6 @@ 1.4 class PointerArrayList : public HighLevelTest { 1.5 }; 1.6 1.7 -TEST_F(PointerLinkedList, cxListStorePointers) { 1.8 - auto list = autofree(cxLinkedListCreate(&testingAllocator, cx_cmp_int, 47)); 1.9 - CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.10 - cxListStorePointers(list); 1.11 - EXPECT_EQ(list->item_size, sizeof(void *)); 1.12 - CX_TEST_ASSERT(list->cl != NULL); 1.13 - CX_TEST_ASSERT(list->climpl != NULL); 1.14 - CX_TEST_ASSERT(cxListIsStoringPointers(list)); 1.15 - cxListStoreObjects(list); 1.16 - CX_TEST_ASSERT(list->cl != NULL); 1.17 - EXPECT_EQ(list->climpl, NULL); 1.18 - CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.19 -} 1.20 - 1.21 -TEST_F(LinkedList, cxLinkedListCreate) { 1.22 - CxList *list = autofree(cxLinkedListCreate(&testingAllocator, cx_cmp_int, sizeof(int))); 1.23 - ASSERT_NE(list, NULL); 1.24 - EXPECT_EQ(list->item_size, sizeof(int)); 1.25 - EXPECT_EQ(list->simple_destructor, NULL); 1.26 - EXPECT_EQ(list->advanced_destructor, NULL); 1.27 - EXPECT_EQ(list->destructor_data, NULL); 1.28 - EXPECT_EQ(cxListSize(list), 0); 1.29 - EXPECT_EQ(list->allocator, &testingAllocator); 1.30 - EXPECT_EQ(list->cmpfunc, cx_cmp_int); 1.31 - CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.32 -} 1.33 - 1.34 -TEST_F(LinkedList, cxLinkedListCreateSimple) { 1.35 - CxList *list = autofree(cxLinkedListCreateSimple(sizeof(int))); 1.36 - ASSERT_NE(list, NULL); 1.37 - EXPECT_EQ(list->item_size, sizeof(int)); 1.38 - EXPECT_EQ(list->cmpfunc, NULL); 1.39 - EXPECT_EQ(list->allocator, cxDefaultAllocator); 1.40 - EXPECT_EQ(list->simple_destructor, NULL); 1.41 - EXPECT_EQ(list->advanced_destructor, NULL); 1.42 - EXPECT_EQ(list->destructor_data, NULL); 1.43 - EXPECT_EQ(cxListSize(list), 0); 1.44 - CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.45 -} 1.46 - 1.47 -TEST_F(PointerLinkedList, cxLinkedListCreateSimpleForPointers) { 1.48 - CxList *list = autofree(cxLinkedListCreateSimple(CX_STORE_POINTERS)); 1.49 - ASSERT_NE(list, NULL); 1.50 - EXPECT_EQ(list->item_size, sizeof(void *)); 1.51 - EXPECT_EQ(list->cmpfunc, cx_cmp_ptr); 1.52 - EXPECT_EQ(list->allocator, cxDefaultAllocator); 1.53 - EXPECT_EQ(list->simple_destructor, NULL); 1.54 - EXPECT_EQ(list->advanced_destructor, NULL); 1.55 - EXPECT_EQ(list->destructor_data, NULL); 1.56 - EXPECT_EQ(cxListSize(list), 0); 1.57 - CX_TEST_ASSERT(cxListIsStoringPointers(list)); 1.58 -} 1.59 - 1.60 -TEST_F(ArrayList, cxArrayListCreate) { 1.61 - CxList *list = autofree(cxArrayListCreate(&testingAllocator, cx_cmp_int, sizeof(int), 8)); 1.62 - ASSERT_NE(list, NULL); 1.63 - EXPECT_EQ(list->item_size, sizeof(int)); 1.64 - EXPECT_EQ(list->simple_destructor, NULL); 1.65 - EXPECT_EQ(list->advanced_destructor, NULL); 1.66 - EXPECT_EQ(list->destructor_data, NULL); 1.67 - EXPECT_EQ(cxListSize(list), 0); 1.68 - EXPECT_EQ(list->allocator, &testingAllocator); 1.69 - EXPECT_EQ(list->cmpfunc, cx_cmp_int); 1.70 - CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.71 -} 1.72 - 1.73 -TEST_F(ArrayList, cxArrayListCreateSimple) { 1.74 - CxList *list = autofree(cxArrayListCreateSimple(sizeof(int), 8)); 1.75 - ASSERT_NE(list, NULL); 1.76 - EXPECT_EQ(list->cmpfunc, NULL); 1.77 - EXPECT_EQ(list->allocator, cxDefaultAllocator); 1.78 - EXPECT_EQ(list->item_size, sizeof(int)); 1.79 - EXPECT_EQ(list->simple_destructor, NULL); 1.80 - EXPECT_EQ(list->advanced_destructor, NULL); 1.81 - EXPECT_EQ(list->destructor_data, NULL); 1.82 - EXPECT_EQ(cxListSize(list), 0); 1.83 - CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.84 -} 1.85 - 1.86 -TEST_F(PointerArrayList, cxArrayListCreateSimpleForPointers) { 1.87 - CxList *list = autofree(cxArrayListCreateSimple(CX_STORE_POINTERS, 8)); 1.88 - ASSERT_NE(list, NULL); 1.89 - EXPECT_EQ(list->cmpfunc, cx_cmp_ptr); 1.90 - EXPECT_EQ(list->allocator, cxDefaultAllocator); 1.91 - EXPECT_EQ(list->item_size, sizeof(void *)); 1.92 - CX_TEST_ASSERT(cxListIsStoringPointers(list)); 1.93 -} 1.94 1.95 TEST_F(LinkedList, cxListAdd) { 1.96 auto list = autofree(cxLinkedListCreate(&testingAllocator, cx_cmp_int, sizeof(int))); 1.97 @@ -935,6 +848,94 @@ 1.98 verifyAdvancedDestructor(pointerArrayListFromTestData()); 1.99 } 1.100 1.101 +TEST_F(PointerLinkedList, cxListStorePointers) { 1.102 + auto list = autofree(cxLinkedListCreate(&testingAllocator, cx_cmp_int, 47)); 1.103 + CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.104 + cxListStorePointers(list); 1.105 + EXPECT_EQ(list->item_size, sizeof(void *)); 1.106 + CX_TEST_ASSERT(list->cl != NULL); 1.107 + CX_TEST_ASSERT(list->climpl != NULL); 1.108 + CX_TEST_ASSERT(cxListIsStoringPointers(list)); 1.109 + cxListStoreObjects(list); 1.110 + CX_TEST_ASSERT(list->cl != NULL); 1.111 + EXPECT_EQ(list->climpl, NULL); 1.112 + CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.113 +} 1.114 + 1.115 +TEST_F(LinkedList, cxLinkedListCreate) { 1.116 + CxList *list = autofree(cxLinkedListCreate(&testingAllocator, cx_cmp_int, sizeof(int))); 1.117 + ASSERT_NE(list, NULL); 1.118 + EXPECT_EQ(list->item_size, sizeof(int)); 1.119 + EXPECT_EQ(list->simple_destructor, NULL); 1.120 + EXPECT_EQ(list->advanced_destructor, NULL); 1.121 + EXPECT_EQ(list->destructor_data, NULL); 1.122 + EXPECT_EQ(cxListSize(list), 0); 1.123 + EXPECT_EQ(list->allocator, &testingAllocator); 1.124 + EXPECT_EQ(list->cmpfunc, cx_cmp_int); 1.125 + CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.126 +} 1.127 + 1.128 +TEST_F(LinkedList, cxLinkedListCreateSimple) { 1.129 + CxList *list = autofree(cxLinkedListCreateSimple(sizeof(int))); 1.130 + ASSERT_NE(list, NULL); 1.131 + EXPECT_EQ(list->item_size, sizeof(int)); 1.132 + EXPECT_EQ(list->cmpfunc, NULL); 1.133 + EXPECT_EQ(list->allocator, cxDefaultAllocator); 1.134 + EXPECT_EQ(list->simple_destructor, NULL); 1.135 + EXPECT_EQ(list->advanced_destructor, NULL); 1.136 + EXPECT_EQ(list->destructor_data, NULL); 1.137 + EXPECT_EQ(cxListSize(list), 0); 1.138 + CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.139 +} 1.140 + 1.141 +TEST_F(PointerLinkedList, cxLinkedListCreateSimpleForPointers) { 1.142 + CxList *list = autofree(cxLinkedListCreateSimple(CX_STORE_POINTERS)); 1.143 + ASSERT_NE(list, NULL); 1.144 + EXPECT_EQ(list->item_size, sizeof(void *)); 1.145 + EXPECT_EQ(list->cmpfunc, cx_cmp_ptr); 1.146 + EXPECT_EQ(list->allocator, cxDefaultAllocator); 1.147 + EXPECT_EQ(list->simple_destructor, NULL); 1.148 + EXPECT_EQ(list->advanced_destructor, NULL); 1.149 + EXPECT_EQ(list->destructor_data, NULL); 1.150 + EXPECT_EQ(cxListSize(list), 0); 1.151 + CX_TEST_ASSERT(cxListIsStoringPointers(list)); 1.152 +} 1.153 + 1.154 +TEST_F(ArrayList, cxArrayListCreate) { 1.155 + CxList *list = autofree(cxArrayListCreate(&testingAllocator, cx_cmp_int, sizeof(int), 8)); 1.156 + ASSERT_NE(list, NULL); 1.157 + EXPECT_EQ(list->item_size, sizeof(int)); 1.158 + EXPECT_EQ(list->simple_destructor, NULL); 1.159 + EXPECT_EQ(list->advanced_destructor, NULL); 1.160 + EXPECT_EQ(list->destructor_data, NULL); 1.161 + EXPECT_EQ(cxListSize(list), 0); 1.162 + EXPECT_EQ(list->allocator, &testingAllocator); 1.163 + EXPECT_EQ(list->cmpfunc, cx_cmp_int); 1.164 + CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.165 +} 1.166 + 1.167 +TEST_F(ArrayList, cxArrayListCreateSimple) { 1.168 + CxList *list = autofree(cxArrayListCreateSimple(sizeof(int), 8)); 1.169 + ASSERT_NE(list, NULL); 1.170 + EXPECT_EQ(list->cmpfunc, NULL); 1.171 + EXPECT_EQ(list->allocator, cxDefaultAllocator); 1.172 + EXPECT_EQ(list->item_size, sizeof(int)); 1.173 + EXPECT_EQ(list->simple_destructor, NULL); 1.174 + EXPECT_EQ(list->advanced_destructor, NULL); 1.175 + EXPECT_EQ(list->destructor_data, NULL); 1.176 + EXPECT_EQ(cxListSize(list), 0); 1.177 + CX_TEST_ASSERT(!cxListIsStoringPointers(list)); 1.178 +} 1.179 + 1.180 +TEST_F(PointerArrayList, cxArrayListCreateSimpleForPointers) { 1.181 + CxList *list = autofree(cxArrayListCreateSimple(CX_STORE_POINTERS, 8)); 1.182 + ASSERT_NE(list, NULL); 1.183 + EXPECT_EQ(list->cmpfunc, cx_cmp_ptr); 1.184 + EXPECT_EQ(list->allocator, cxDefaultAllocator); 1.185 + EXPECT_EQ(list->item_size, sizeof(void *)); 1.186 + CX_TEST_ASSERT(cxListIsStoringPointers(list)); 1.187 +} 1.188 + 1.189 TEST_F(PointerLinkedList, DestroyNoDestructor) { 1.190 void *item = cxMalloc(&testingAllocator, sizeof(int)); 1.191 auto list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS); 1.192 @@ -997,80 +998,3 @@ 1.193 CX_TEST_ASSERT(testingAllocator.verify()); 1.194 } 1.195 1.196 -TEST(EmptyList, Size) { 1.197 - auto list = cxEmptyList; 1.198 - 1.199 - EXPECT_EQ(list->size, 0); 1.200 - EXPECT_EQ(cxListSize(list), 0); 1.201 -} 1.202 - 1.203 -TEST(EmptyList, Iterator) { 1.204 - auto list = cxEmptyList; 1.205 - 1.206 - auto it1 = cxListIterator(list); 1.207 - auto it2 = cxListBackwardsIterator(list); 1.208 - auto it3 = cxListMutIterator(list); 1.209 - auto it4 = cxListMutBackwardsIterator(list); 1.210 - 1.211 - CX_TEST_ASSERT(!cxIteratorValid(it1)); 1.212 - CX_TEST_ASSERT(!cxIteratorValid(it2)); 1.213 - CX_TEST_ASSERT(!cxIteratorValid(it3)); 1.214 - CX_TEST_ASSERT(!cxIteratorValid(it4)); 1.215 - 1.216 - int c = 0; 1.217 - cx_foreach(void*, data, it1) c++; 1.218 - cx_foreach(void*, data, it2) c++; 1.219 - cx_foreach(void*, data, it3) c++; 1.220 - cx_foreach(void*, data, it4) c++; 1.221 - EXPECT_EQ(c, 0); 1.222 -} 1.223 - 1.224 -TEST(EmptyList, NoOps) { 1.225 - auto list = cxEmptyList; 1.226 - 1.227 - ASSERT_NO_FATAL_FAILURE(cxListSort(list)); 1.228 - ASSERT_NO_FATAL_FAILURE(cxListClear(list)); 1.229 - ASSERT_NO_FATAL_FAILURE(cxListDestroy(list)); 1.230 -} 1.231 - 1.232 -TEST(EmptyList, At) { 1.233 - auto list = cxEmptyList; 1.234 - 1.235 - EXPECT_EQ(cxListAt(list, 0), NULL); 1.236 - EXPECT_EQ(cxListAt(list, 1), NULL); 1.237 -} 1.238 - 1.239 -TEST(EmptyList, Find) { 1.240 - auto list = cxEmptyList; 1.241 - 1.242 - int x = 42, y = 1337; 1.243 - 1.244 - EXPECT_LT(cxListFind(list, &x), 0); 1.245 - EXPECT_LT(cxListFind(list, &y), 0); 1.246 -} 1.247 - 1.248 -TEST(EmptyList, Compare) { 1.249 - auto empty = cxEmptyList; 1.250 - 1.251 - auto ll = cxLinkedListCreateSimple(sizeof(int)); 1.252 - auto al = cxArrayListCreateSimple(sizeof(int), 8); 1.253 - 1.254 - int x = 5; 1.255 - 1.256 - EXPECT_EQ(cxListCompare(empty, cxEmptyList), 0); 1.257 - EXPECT_EQ(cxListCompare(ll, cxEmptyList), 0); 1.258 - EXPECT_EQ(cxListCompare(al, cxEmptyList), 0); 1.259 - EXPECT_EQ(cxListCompare(cxEmptyList, ll), 0); 1.260 - EXPECT_EQ(cxListCompare(cxEmptyList, al), 0); 1.261 - 1.262 - cxListAdd(ll, &x); 1.263 - cxListAdd(al, &x); 1.264 - 1.265 - EXPECT_GT(cxListCompare(ll, cxEmptyList), 0); 1.266 - EXPECT_GT(cxListCompare(al, cxEmptyList), 0); 1.267 - EXPECT_LT(cxListCompare(cxEmptyList, ll), 0); 1.268 - EXPECT_LT(cxListCompare(cxEmptyList, al), 0); 1.269 - 1.270 - cxListDestroy(ll); 1.271 - cxListDestroy(al); 1.272 -}