test('testpgs/append.pl','append', monotype, 
     [Xs/list(integer),Ys/list(list(integer))], append(Xs,Ys,Zs) ).

test(	'test_progs/qsDList.pl','Quick Sort with Difference List',
	monotype,
	[Xs/list(integer)],
	quicksort(Xs,Ys) ).

test(	'test_progs/connect.pl','Graph Connectivity',
	monotype,
	[X/point],
	connected(X,Y)).     

test(	'test_progs/merge.pl','merge',
	monotype,
	[Xs/list(integer),Ys/list(float)],
        merge(Xs,Ys,Zs) ).


test(	'test_progs/bugNrev.pl','Buggy Naive Reverse',
	monotype,
	[X/list(integer)],
	nrev(X,Y) ).
	 
test(	'test_progs/buggyqs.pl','Buggy Quick Sort', 
	monotype,
	[Li/list(nat)],
        qs(Li,Lo) ).

test(	'test_progs/iqs.pl','Improved Quick Sort',
	monotype,
	[Xs/list(integer)],
        iqsort(Xs,Ys) ).     

test(	'test_progs/treesort.pl','Tree Sort',
	monotype,
	[Xs/list(integer)],
        treesort(Xs,Ys) ).

test(	'test_progs/lstDiff.pl','List Difference',
	monotype,
	[Y/list(integer),Z/list(float)],
	diff(X,Y,Z) ).

test(	'test_progs/insert.pl','List Insertion',
	monotype,
	[X/nat,Y/list(nat)],	
	insert(X,Y,Z) ).

test(	'test_progs/icSort.pl','Interchange Sort',
	monotype,
	[Xs/list(integer)],
	sort(Xs,Ys) ).     

test(	'test_progs/permSort.pl','Permutation Sort',
	monotype,
	[Xs/list(integer)],
	sort(Xs,Ys) ).
		
test(	'test_progs/heapify.pl','Heapify Binary Trees',
	monotype,
	[T/tree(integer)],
	heapify(T,H) ).     

test(	'test_progs/exponent.pl','Exponentiation by Multiplication',
	monotype,
	[N/nat,X/nat],
	exp(N,X,Y) ).     

test(	'test_progs/fact.pl','Factorial',
	monotype,
	[N/nat],
	factorial(N,F) ).     


