add tests for high level functions

Sun, 03 Oct 2021 18:51:44 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 03 Oct 2021 18:51:44 +0200
changeset 459
c0e2e9f83399
parent 458
da11a5a765a0
child 460
e075009b33b7

add tests for high level functions

test/test_list.c file | annotate | diff | comparison | revisions
     1.1 --- a/test/test_list.c	Sun Oct 03 18:37:13 2021 +0200
     1.2 +++ b/test/test_list.c	Sun Oct 03 18:51:44 2021 +0200
     1.3 @@ -174,6 +174,161 @@
     1.4      CU_ASSERT_TRUE(cxTestingAllocatorVerify())
     1.5  }
     1.6  
     1.7 +void test_hl_linked_list_add(void) {
     1.8 +    cxTestingAllocatorReset();
     1.9 +
    1.10 +    int data;
    1.11 +    CxList list = cxLinkedListCreate(cxTestingAllocator, (CxListComparator) cmp_int, sizeof(int));
    1.12 +
    1.13 +    data = 5;
    1.14 +    CU_ASSERT_EQUAL(cxTypedListAdd(int, list, &data), 0)
    1.15 +    data = 47;
    1.16 +    CU_ASSERT_EQUAL(cxTypedListAdd(int, list, &data), 0)
    1.17 +    data = 13;
    1.18 +    CU_ASSERT_EQUAL(cxTypedListAdd(int, list, &data), 0)
    1.19 +
    1.20 +    CU_ASSERT_EQUAL(list->size, 3)
    1.21 +    CU_ASSERT_TRUE(list->capacity >= list->size)
    1.22 +
    1.23 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 0), 5)
    1.24 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 1), 47)
    1.25 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 2), 13)
    1.26 +
    1.27 +    cxLinkedListDestroy(list);
    1.28 +    CU_ASSERT_TRUE(cxTestingAllocatorVerify())
    1.29 +}
    1.30 +
    1.31 +void test_hl_linked_list_last(void) {
    1.32 +    cxTestingAllocatorReset();
    1.33 +
    1.34 +    int data;
    1.35 +    CxList list = cxLinkedListCreate(cxTestingAllocator, (CxListComparator) cmp_int, sizeof(int));
    1.36 +
    1.37 +    CU_ASSERT_PTR_NULL(cxTypedListLast(int, list))
    1.38 +
    1.39 +    data = 5;
    1.40 +    CU_ASSERT_EQUAL(cxTypedListAdd(int, list, &data), 0)
    1.41 +    CU_ASSERT_EQUAL(*cxTypedListLast(int, list), 5)
    1.42 +
    1.43 +    data = 47;
    1.44 +    CU_ASSERT_EQUAL(cxTypedListAdd(int, list, &data), 0)
    1.45 +    CU_ASSERT_EQUAL(*cxTypedListLast(int, list), 47)
    1.46 +
    1.47 +    cxLinkedListDestroy(list);
    1.48 +    CU_ASSERT_TRUE(cxTestingAllocatorVerify())
    1.49 +}
    1.50 +
    1.51 +void test_hl_linked_list_insert(void) {
    1.52 +    cxTestingAllocatorReset();
    1.53 +
    1.54 +    int data;
    1.55 +    CxList list = cxLinkedListCreate(cxTestingAllocator, (CxListComparator) cmp_int, sizeof(int));
    1.56 +
    1.57 +    data = 5;
    1.58 +    CU_ASSERT_NOT_EQUAL(cxTypedListInsert(int, list, 1, &data), 0)
    1.59 +    CU_ASSERT_EQUAL(list->size, 0)
    1.60 +    CU_ASSERT_EQUAL(cxTypedListInsert(int, list, 0, &data), 0)
    1.61 +    CU_ASSERT_EQUAL(list->size, 1)
    1.62 +    data = 47;
    1.63 +    CU_ASSERT_EQUAL(cxTypedListInsert(int, list, 0, &data), 0)
    1.64 +    CU_ASSERT_EQUAL(list->size, 2)
    1.65 +    data = 13;
    1.66 +    CU_ASSERT_EQUAL(cxTypedListInsert(int, list, 1, &data), 0)
    1.67 +    CU_ASSERT_EQUAL(list->size, 3)
    1.68 +    data = 42;
    1.69 +    CU_ASSERT_EQUAL(cxTypedListInsert(int, list, 3, &data), 0)
    1.70 +
    1.71 +    CU_ASSERT_EQUAL(list->size, 4)
    1.72 +    CU_ASSERT_TRUE(list->capacity >= list->size)
    1.73 +
    1.74 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 0), 47)
    1.75 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 1), 13)
    1.76 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 2), 5)
    1.77 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 3), 42)
    1.78 +
    1.79 +    cxLinkedListDestroy(list);
    1.80 +    CU_ASSERT_TRUE(cxTestingAllocatorVerify())
    1.81 +}
    1.82 +
    1.83 +void test_hl_linked_list_remove(void) {
    1.84 +    cxTestingAllocatorReset();
    1.85 +
    1.86 +    int data;
    1.87 +    CxList list = cxLinkedListCreate(cxTestingAllocator, (CxListComparator) cmp_int, sizeof(int));
    1.88 +
    1.89 +    data = 5;
    1.90 +    cxTypedListAdd(int, list, &data);
    1.91 +    data = 47;
    1.92 +    cxTypedListAdd(int, list, &data);
    1.93 +    data = 42;
    1.94 +    cxTypedListAdd(int, list, &data);
    1.95 +    data = 13;
    1.96 +    cxTypedListAdd(int, list, &data);
    1.97 +
    1.98 +    CU_ASSERT_EQUAL(list->size, 4)
    1.99 +    CU_ASSERT_TRUE(list->capacity >= list->size)
   1.100 +
   1.101 +    CU_ASSERT_NOT_EQUAL(cxListRemove(list, 4), 0)
   1.102 +
   1.103 +    CU_ASSERT_EQUAL(cxListRemove(list, 2), 0)
   1.104 +    CU_ASSERT_EQUAL(list->size, 3)
   1.105 +    CU_ASSERT_TRUE(list->capacity >= list->size)
   1.106 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 0), 5)
   1.107 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 1), 47)
   1.108 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 2), 13)
   1.109 +
   1.110 +    CU_ASSERT_EQUAL(cxListRemove(list, 0), 0)
   1.111 +    CU_ASSERT_EQUAL(list->size, 2)
   1.112 +    CU_ASSERT_TRUE(list->capacity >= list->size)
   1.113 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 0), 47)
   1.114 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 1), 13)
   1.115 +
   1.116 +    CU_ASSERT_EQUAL(cxListRemove(list, 1), 0)
   1.117 +    CU_ASSERT_EQUAL(list->size, 1)
   1.118 +    CU_ASSERT_TRUE(list->capacity >= list->size)
   1.119 +    CU_ASSERT_EQUAL(*cxTypedListAt(int, list, 0), 47)
   1.120 +
   1.121 +    CU_ASSERT_EQUAL(cxListRemove(list, 0), 0)
   1.122 +    CU_ASSERT_EQUAL(list->size, 0)
   1.123 +    CU_ASSERT_TRUE(list->capacity >= list->size)
   1.124 +
   1.125 +    CU_ASSERT_NOT_EQUAL(cxListRemove(list, 0), 0)
   1.126 +
   1.127 +    cxLinkedListDestroy(list);
   1.128 +    CU_ASSERT_TRUE(cxTestingAllocatorVerify())
   1.129 +}
   1.130 +
   1.131 +void test_hl_linked_list_find(void) {
   1.132 +    cxTestingAllocatorReset();
   1.133 +
   1.134 +    int data, criteria;
   1.135 +    CxList list = cxLinkedListCreate(cxTestingAllocator, (CxListComparator) cmp_int, sizeof(int));
   1.136 +
   1.137 +    data = 5;
   1.138 +    cxTypedListAdd(int, list, &data);
   1.139 +    data = 47;
   1.140 +    cxTypedListAdd(int, list, &data);
   1.141 +    data = 13;
   1.142 +    cxTypedListAdd(int, list, &data);
   1.143 +
   1.144 +    CU_ASSERT_EQUAL(list->size, 3)
   1.145 +    CU_ASSERT_TRUE(list->capacity >= list->size)
   1.146 +
   1.147 +    criteria = 5;
   1.148 +    CU_ASSERT_EQUAL(cxTypedListFind(int, list, &criteria), 0)
   1.149 +    criteria = 47;
   1.150 +    CU_ASSERT_EQUAL(cxTypedListFind(int, list, &criteria), 1)
   1.151 +    criteria = 13;
   1.152 +    CU_ASSERT_EQUAL(cxTypedListFind(int, list, &criteria), 2)
   1.153 +    criteria = 9000;
   1.154 +    CU_ASSERT_EQUAL(cxTypedListFind(int, list, &criteria), 3)
   1.155 +    criteria = -5;
   1.156 +    CU_ASSERT_EQUAL(cxTypedListFind(int, list, &criteria), 3)
   1.157 +
   1.158 +    cxLinkedListDestroy(list);
   1.159 +    CU_ASSERT_TRUE(cxTestingAllocatorVerify())
   1.160 +}
   1.161 +
   1.162  int main() {
   1.163      CU_pSuite suite = NULL;
   1.164  
   1.165 @@ -181,21 +336,20 @@
   1.166          return CU_get_error();
   1.167      }
   1.168  
   1.169 -    suite = CU_add_suite("low level linked list suite", NULL, NULL);
   1.170 +    suite = CU_add_suite("low level linked list", NULL, NULL);
   1.171  
   1.172      cu_add_test(suite, test_linked_list_at);
   1.173      cu_add_test(suite, test_linked_list_add);
   1.174      cu_add_test(suite, test_linked_list_last);
   1.175  
   1.176 -    suite = CU_add_suite("high level linked list suite", NULL, NULL);
   1.177 +    suite = CU_add_suite("high level linked list", NULL, NULL);
   1.178  
   1.179      cu_add_test(suite, test_hl_linked_list_create);
   1.180 -    /*
   1.181      cu_add_test(suite, test_hl_linked_list_add);
   1.182      cu_add_test(suite, test_hl_linked_list_last);
   1.183      cu_add_test(suite, test_hl_linked_list_insert);
   1.184      cu_add_test(suite, test_hl_linked_list_remove);
   1.185 -    cu_add_test(suite, test_hl_linked_list_find);*/
   1.186 +    cu_add_test(suite, test_hl_linked_list_find);
   1.187  
   1.188      CU_basic_set_mode(UCX_CU_BRM);
   1.189  

mercurial