Sun, 03 Oct 2021 18:51:44 +0200
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