test/dlist_tests.c

Fri, 25 May 2012 17:39:27 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Fri, 25 May 2012 17:39:27 +0200
changeset 31
91ac86557290
parent 30
23bb65cbf7a4
child 33
9c219a62070d
permissions
-rw-r--r--

added map iterator

olaf@9 1 /*
universe@27 2 * tests of dlist implementation
olaf@9 3 */
olaf@9 4
universe@27 5 #include "dlist_tests.h"
olaf@9 6
universe@27 7 UCX_TEST_BEGIN(test_ucx_dlist_append) {
universe@27 8 UcxDlist *list = ucx_dlist_append(NULL, "Hello");
universe@27 9
universe@27 10 UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed")
universe@27 11
universe@27 12 list = ucx_dlist_append(list, " World!");
universe@27 13
universe@27 14 UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed")
universe@27 15 UCX_TEST_ASSERT(list->next->next == NULL, "failed")
universe@27 16
universe@27 17 ucx_dlist_free(list);
universe@27 18
universe@27 19 UCX_TEST_END
universe@24 20 }
universe@24 21
universe@27 22 UCX_TEST_BEGIN(test_ucx_dlist_prepend) {
universe@27 23 UcxDlist *list = ucx_dlist_prepend(NULL, " World!");
universe@27 24 list = ucx_dlist_prepend(list, "Hello");
universe@27 25
universe@27 26 UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed")
universe@27 27 UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed")
universe@27 28 UCX_TEST_ASSERT(list->next->next == NULL, "failed")
universe@27 29
universe@27 30 ucx_dlist_free(list);
universe@27 31
universe@27 32 UCX_TEST_END
universe@18 33 }
universe@18 34
universe@27 35 UCX_TEST_BEGIN(test_ucx_dlist_equals) {
universe@27 36 UcxDlist *list = ucx_dlist_append(NULL, "Hello");
universe@27 37 list = ucx_dlist_append(list, " World!");
universe@27 38 UcxDlist *list2 = ucx_dlist_prepend(NULL, " World!");
universe@27 39 list2 = ucx_dlist_prepend(list2, "Hello");
universe@27 40 UcxDlist *list3 = ucx_dlist_prepend(NULL, " Welt!");
universe@27 41 list3 = ucx_dlist_prepend(list3, "Hallo");
universe@27 42
universe@27 43 UCX_TEST_ASSERT(ucx_dlist_equals(list, list2, cmp_string, NULL), "failed")
universe@27 44 UCX_TEST_ASSERT(!ucx_dlist_equals(list, list3, cmp_string, NULL), "failed")
universe@27 45
universe@27 46 ucx_dlist_free(list3);
universe@27 47 ucx_dlist_free(list2);
universe@27 48 ucx_dlist_free(list);
universe@27 49
universe@27 50 UCX_TEST_END
universe@24 51 }
universe@24 52
universe@27 53 UCX_TEST_BEGIN(test_ucx_dlist_concat) {
universe@27 54 UcxDlist *list = ucx_dlist_append(NULL, "Hello");
universe@27 55 UcxDlist *list2 = ucx_dlist_prepend(NULL, " World!");
universe@27 56
universe@27 57 list = ucx_dlist_concat(list, list2);
universe@27 58
universe@27 59 UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed")
universe@27 60 UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed")
universe@27 61 UCX_TEST_ASSERT(list->next->next == NULL, "failed")
universe@27 62
universe@27 63 ucx_dlist_free(list);
universe@27 64
universe@27 65 UCX_TEST_END
olaf@9 66 }
olaf@9 67
universe@27 68 UCX_TEST_BEGIN(test_ucx_dlist_size) {
universe@27 69 UcxDlist *list = ucx_dlist_append(NULL, "This ");
universe@27 70 list = ucx_dlist_append(list, "list ");
universe@27 71 list = ucx_dlist_append(list, "has ");
universe@27 72 list = ucx_dlist_append(list, "size ");
universe@27 73 list = ucx_dlist_append(list, "5!");
universe@27 74
universe@27 75 UCX_TEST_ASSERT(ucx_dlist_size(list) == 5, "failed");
universe@27 76
universe@27 77 ucx_dlist_free(list);
universe@27 78
universe@27 79 UCX_TEST_END
olaf@9 80 }
olaf@11 81
universe@27 82 UCX_TEST_BEGIN(test_ucx_dlist_first) {
universe@27 83 UcxDlist *list = ucx_dlist_append(NULL, "Find ");
universe@27 84 list = ucx_dlist_append(list, "the ");
universe@27 85 list = ucx_dlist_append(list, "first!");
universe@27 86
universe@27 87 char* first = (char*) (ucx_dlist_first(list)->data);
universe@27 88
universe@27 89 UCX_TEST_ASSERT(strncmp(first, "Find ", 5) == 0, "failed");
universe@27 90
universe@27 91 ucx_dlist_free(list);
universe@27 92
universe@27 93 UCX_TEST_END
universe@27 94 }
universe@27 95
universe@27 96 UCX_TEST_BEGIN(test_ucx_dlist_last) {
universe@27 97 UcxDlist *list = ucx_dlist_append(NULL, "Find ");
universe@27 98 list = ucx_dlist_append(list, "the ");
universe@27 99 list = ucx_dlist_append(list, "last!");
universe@27 100
universe@27 101 char* last = (char*) (ucx_dlist_last(list)->data);
universe@27 102
universe@27 103 UCX_TEST_ASSERT(strncmp(last, "last!", 5) == 0, "failed");
universe@27 104
universe@27 105 ucx_dlist_free(list);
universe@27 106
universe@27 107 UCX_TEST_END
universe@27 108 }
universe@27 109
universe@27 110 UCX_TEST_BEGIN(test_ucx_dlist_get) {
universe@27 111 UcxDlist *list = ucx_dlist_append(NULL, "Find ");
universe@27 112 list = ucx_dlist_append(list, "the ");
universe@27 113 list = ucx_dlist_append(list, "mid!");
universe@27 114
universe@27 115 char* mid = (char*) (ucx_dlist_get(list, 1)->data);
universe@27 116
universe@27 117 UCX_TEST_ASSERT(strncmp(mid, "the ", 4) == 0, "failed");
universe@27 118
universe@27 119 ucx_dlist_free(list);
universe@27 120
universe@27 121 UCX_TEST_END
universe@27 122 }
universe@27 123
universe@27 124 UCX_TEST_BEGIN(test_ucx_dlist_remove) {
universe@27 125 UcxDlist *list = ucx_dlist_append(NULL, "Hello");
universe@27 126 list = ucx_dlist_append(list, " fucking");
universe@27 127 list = ucx_dlist_append(list, " World!");
universe@27 128
universe@27 129 list = ucx_dlist_remove(list, ucx_dlist_get(list, 1));
universe@27 130
universe@27 131 UCX_TEST_ASSERT(strncmp(list->data, "Hello", 5) == 0, "failed")
universe@27 132 UCX_TEST_ASSERT(strncmp(list->next->data, " World!", 7) == 0, "failed")
universe@27 133 UCX_TEST_ASSERT(list->next->next == NULL, "failed")
universe@27 134
universe@27 135 ucx_dlist_free(list);
universe@27 136
universe@27 137 UCX_TEST_END
universe@27 138 }
universe@27 139
universe@27 140 UCX_TEST_BEGIN(test_ucx_dlist_clone) {
universe@27 141
universe@27 142 char *hello = (char*)malloc(6);
universe@27 143 char *world = (char*)malloc(8);
universe@27 144
universe@27 145 memcpy(hello, "Hello", 6);
universe@27 146 memcpy(world, " World!", 8);
universe@27 147
universe@27 148 UcxDlist *list = ucx_dlist_append(NULL, hello);
universe@27 149 list = ucx_dlist_append(list, world);
universe@27 150
universe@27 151 UcxDlist *copy = ucx_dlist_clone(list, copy_string, NULL);
universe@27 152
universe@27 153 UCX_TEST_ASSERT(ucx_dlist_equals(list, copy, cmp_string, NULL), "failed")
universe@27 154 UCX_TEST_ASSERT(hello != copy->data, "first element is no copy")
universe@27 155 UCX_TEST_ASSERT(world != copy->next->data, "second element is no copy")
universe@27 156
universe@27 157 free(copy->next->data);
universe@27 158 free(copy->data);
universe@27 159
universe@27 160 free(world);
universe@27 161 free(hello);
olaf@30 162 ucx_dlist_free(list);
olaf@30 163 ucx_dlist_free(copy);
universe@27 164
universe@27 165 UCX_TEST_END
universe@27 166 }

mercurial