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

test(	'test_progs/treesort.pl','Tree Sort',
	polytype,
	[([Xs/list(para(beta,[]))],[])],
        treesort(Xs,Ys) ).

test(	'test_progs/merge.pl','merge',
	monogrd,
	[],
        merge(Xs,Ys,Zs) ).

test(	'test_progs/merge.pl','merge',
	polygrd,
	[Xs/[1],Ys/[2],Zs/[4]],
        merge(Xs,Ys,Zs) ).

test(	'test_progs/merge.pl','merge',
	mode2,
	[],
        merge(Xs,Ys,Zs) ).


test(	'testpgs/qsort.pl', 'Improved Quicksort',
	mode4,
	([Xs/2],[]), % Xs is ground
        iqsort(Xs,Ys) ).     

test(	'testpgs/qsort.pl', 'Improved Quicksort',
	mode8,
	([Xs/2],[]), % Xs is ground
        iqsort(Xs,Ys) ).     

test(	'testpgs/qsort.pl', 'Improved Quicksort',
	group,
	[[Ys]], % Xs is ground
        iqsort(Xs,Ys) ).     

test(	'testpgs/qsort.pl', 'Improved Quicksort', 
	pair,
	[], % 
        iqsort(Xs,Ys) ).     

test(	'testpgs/qsort.pl', 'Improved Quicksort',
	rp(mode2,pair),
	([Xs],[]), % Xs is ground
        iqsort(Xs,Ys) ).     

test(	'testpgs/qsort.pl', 'Improved Quicksort',
	dp(mode2,pair),
	([Xs],[]), % Xs is ground
        iqsort(Xs,Ys) ).     

