tests/test_list.cpp

changeset 800
1274e46b3013
parent 798
7644da6e2d35
child 801
04aa3913c0e3
     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 -}

mercurial