#include "../List.h" #include 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; }