// insert proper tests here int main (int argc, const char * argv[]) { int start,end; printf("input start and end\n"); scanf("%d %d",&start,&end); link list = fromTo (start, end); printList (list); printf("The sum is %d.\n",sumListItems(list)); dlink doublelist = doublify(list); printDList(doublelist); freeList(list); freeDList(doublelist); return 0; }
int testDList(int argc, char** argv){ DoubleLinkedList* list = allocDList(sizeof(char), &releasePrimitive, &printChar); char test = 'A'; printf("TESTING APPEND ...\n\n"); appendDList(list, &test); debugDList(stdout, list); printf("\n"); printDList(stdout, list); printf("\n"); test += 1; appendDList(list, &test); debugDList(stdout, list); printf("\n"); printDList(stdout, list); printf("\n"); test += 1; appendDList(list, &test); debugDList(stdout, list); printf("\n"); printDList(stdout, list); printf("\n"); test += 1; printf("TESTING INSERT ...\n\n"); insertDList(list, &test); debugDList(stdout, list); printf("\n"); printDList(stdout, list); printf("\n"); test += 1; printf("TESTING INSERT AT 2 then 1 ...\n\n"); insertDListElementAt(list, &test, 2); test += 1; insertDListElementAt(list, &test, 1); debugDList(stdout, list); printf("\n"); printDList(stdout, list); printf("\n"); //half list printf("TESTING HALF ...\n\n"); DoubleLinkedList* lower = NULL; DoubleLinkedList* upper = NULL; breakEvenDList(list, &lower, &upper); printf("LOWER ...\n"); debugDList(stdout, lower); printf("\n"); printDList(stdout, lower); printf("\n"); printf("UPPER ...\n"); debugDList(stdout, upper); printf("\n"); printDList(stdout, upper); printf("\n"); //reverse list printf("TESTING REVERSE ...\n\n"); DoubleLinkedList* reverse = reverseList(list); debugDList(stdout, reverse); printf("\n"); printDList(stdout, reverse); printf("\n"); //testing remove printf("TESTING REMOVE ...\n\n"); while(reverse->size){ removeDList(reverse, 0); debugDList(stdout, reverse); printf("\n"); printDList(stdout, reverse); printf("\n"); } Char nchar = allocCharWith('Z'); appendDList(reverse, nchar); releasePrimitive(nchar); debugDList(stdout, reverse); printf("\n"); printDList(stdout, reverse); printf("\n"); printChar(stdout, getElementAtDList(reverse, 0)); printf("\n"); nchar = allocCharWith('H'); setElementAtDList(reverse, 0, nchar); releasePrimitive(nchar); printChar(stdout, getElementAtDList(reverse, 0)); printf("\n"); debugDList(stdout, reverse); printf("\n"); printDList(stdout, reverse); printf("\n"); printf("TESTING RANDOM ELEMENT REMOVAL ...\n\n"); Object data = removeDList(list, 1); printf("REMOVED "); printChar(stdout, data); printf("\n"); debugDList(stdout, list); printf("\n"); printDList(stdout, list); printf("\n"); releaseDList(reverse); releaseDList(lower); releaseDList(upper); releaseDList(list); return 0; }