1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
#include "../List.h" #include <assert.h> int compareFunction(void* a, void* b) { return a < b ? -1 : (a > b ? +1 : 0); } void testQSort() { int cmpArray[26] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }; struct List* lst = List_create(); List_pushBack(lst, (void*)24); List_pushBack(lst, (void*)25); List_pushBack(lst, (void*)26); List_pushBack(lst, (void*)1); List_pushBack(lst, (void*)2); List_pushBack(lst, (void*)3); List_pushBack(lst, (void*)4); List_pushBack(lst, (void*)5); List_pushBack(lst, (void*)6); List_pushBack(lst, (void*)7); List_pushBack(lst, (void*)8); List_pushBack(lst, (void*)9); List_pushBack(lst, (void*)10); List_pushBack(lst, (void*)11); List_pushBack(lst, (void*)12); List_pushBack(lst, (void*)13); List_pushBack(lst, (void*)14); List_pushBack(lst, (void*)15); List_pushBack(lst, (void*)16); List_pushBack(lst, (void*)17); List_pushBack(lst, (void*)18); List_pushBack(lst, (void*)19); List_pushBack(lst, (void*)20); List_pushBack(lst, (void*)21); List_pushBack(lst, (void*)22); List_pushBack(lst, (void*)23); List_qSort(lst, compareFunction); ListNode* node = lst->first; for (int i=0; i < 26; ++i) { printf("%d assumed. Is %d\n", cmpArray[i], (int)node->data); /* assert(cmpArray[i] == node->data); */ node = node->next; } List_destroy(lst); } void testQSortLow() { int cmpArray[2] = { 1, 2 }; struct List* lst = List_create(); List_pushBack(lst, (void*)1); List_pushBack(lst, (void*)2); List_qSort(lst, compareFunction); ListNode* node = lst->first; for (int i=0; i < 2; ++i) { printf("%d assumed. Is %d\n", cmpArray[i], (int)node->data); /* assert(cmpArray[i] == node->data); */ node = node->next; } List_destroy(lst); } void testQSortEmpty() { struct List* lst = List_create(); List_qSort(lst, compareFunction); ListNode* node = lst->first; assert(NULL == lst->first); assert(NULL == lst->last); List_destroy(lst); } int main() { testQSort(); testQSortLow(); testQSortEmpty(); return 0; }