Ejemplo n.º 1
0
// 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;
}