%test('test_progs/nandc.pl', 'naughts-and-crosses', rtype, [[]], play(R) ). 
   % good example 
test('test_progs/semi.pl', 'semi',  rtype, [[]], go(N,T) ).

test('test_progs/lookup.pl','Dictionary Lookup', rtype, 
      [[K/integer,D/dictionary(integer,string)]],
      lookup(K,D,V) ).     
test('test_progs/zebra.pl', 'zebra', rtype, [[]], zebra(E,S,J,U,N,Z,W) ). 
test('test_progs/neural.pl', 'neural',  rtype, [[]], go ).



test('test_progs/chat.pl', 'chat', rtype, [[]],  chat_parser ).


test('test_progs/dnf.pl', 'dnf', rtype, [[]], go ).
test('test_progs/treeorder.pl', 'tree order', 
     rtype, [[X/list(atom),Y/list(string)]], v2t(X,Y,Z) ). 
test('test_progs/serialize.pl', 'serialize', rtype, [[]], go(S) ). 
test('test_progs/cs_r.pl', 'cs_r',  rtype, [[]], pgenconfig(C) ).


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

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

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

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


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

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

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

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

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

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

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

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

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


test('test_progs/read.pl', 'read', rtype, [[]], read(X,Y) ).
test('test_progs/queens.pl', 'queens', rtype,[[]], queens(X,Y) ).
test('test_progs/ronp.pl', 'ronp',  rtype, [[]], puzzle(X) ).


/*

%test('test_progs/disj_r.pl', 'disj_r',  rtype, [[]], top(K) ).
%test('test_progs/tsp.pl', 'tsp', rtype,[[]], tsp(N,V,M,S,C) ).
%too big abstract substitutions, widening is needed
% test('test_progs/kalah.pl', 'kalah',  rtype, [[]], play(G,R) ).

%test('test_progs/press.pl', 'press', rtype, [[]], test_press(X,Y) ).
%constraint program

%test('test_progs/peep.pl', 'peep', rtype, [[]], comppeepopt(Pi,O,Pr) ).
% too many untyped function symbols 

%test('test_progs/gabriel.pl', 'gabriel',  rtype, [[]], main(V1,V2) ).
% untyped function symbols

%test('test_progs/tictactoe.pl', 'tictactoe',  rtype, [[]], play(G) ).
% containing assert/1

%test('test_progs/ann.pl', 'ann',  rtype, [[]], go(G) ).
%too many untyped function symbols and $VAR 

%test('test_progs/boyer.pl', 'boyer', rtype, [[]], tautology(Wff) ).
%too many untyped function symbols

%test('test_progs/mastermind.pl', 'mastermind', rtype, [[]], play ).
% assert/1 and retract/1

%test('test_progs/nand.pl', 'nand',  rtype, [[]], main(N) ).
%recorda/1, recorded/1

test('test_progs/asm.pl', 'asm',  asm_PIL(P,O) ).
test('test_progs/life.pl', 'life',  lift(MR,MC,LC,SFG) ).
test('test_progs/meta.pl', 'meta',  interpret(G) ).
test('test_progs/nbody.pl', 'nbody',  go(M,G) ).
test('test_progs/sdda.pl', 'sdda',  do_sdda(test,A,B,C) ).
test('test_progs/simple_analyzer.pl', 'simple_analyzer',  main(N) ).
test('test_progs/reducer.pl', 'reducer',  try(X,Y) ).
test('test_progs/browse.pl', 'browse',  q ).
test('test_progs/ga.pl', 'ga',  test_ga ).

*/











