%multiCoverTest(EI):-
m:-
	yap_flag(argv,[InputFile]),
  	consult(InputFile), 
	write('Learning with BK in FILE '), write(InputFile),nl,
	write('Multiple Examples -- Covering Algorithm'),

        statistics(cputime,[Total1,Previous]),

		
	/*tell('animal.txt'),
	%numbersList(1,16,PosEIs),
	PosEIs=[1,2,3,4,5,6,7,8,9,10,11,13,12,14,15,16],
	numbersList(17,58,NegEIs),*/

	%tell('grammar_multi.txt'),
	numbersList(1,26,PosEIs0),
	%PosEIs=[1,4,5],
	%34,35,36,37,38,39,40,
	%PosEIs0=[21,22,23,24,25,26,27,28,29,30,31,32,33,1,2,3,4,5,6,8,9,10,11,13,12,14,15,16,17,18,19,20],
permutateList(PosEIs0,PosEIs),
	numbersList(101,140,NegEIs),



	multiCovering(PosEIs,NegEIs,[],FinalTI), 

	statistics(cputime,[Total2,Now]),
	TimeTaken is Now-Previous,
	write('Final Learning Result'),nl,
	tInterpreter(FinalTI,FinalT),
	print_list(FinalT),

	write('Total Time Taken is '), write(TimeTaken),
	nl. %told.





multiCovering([],_,FinalT,FinalT). % All Cover

%multiCovering(EIs,_,FinalT,FinalT):-
%	length(EIs, RemainedNum),RemainedNum < 50,!. % only 100 remained

% TSoFar, FinalT is in the form of Ref-ClaI; BUT NewT is only with ClaI (not added yet)
multiCovering([EI|EIs],NegList,TSoFar,FinalT):-
	set(depthLimit,DepthLimit),
	(setLearningMode(multiExs)->
		(gatherSimilarExs(EI,EIs,[Group|UnCover]);Group=[EI],UnCover=EIs);
		Group=[EI],UnCover=EIs
	),
	
	multiE(DepthLimit,Group,Ts),
	
	nl,write(Group),write('*********Total number for this example is '), length(Ts,K),write(K),nl,%print_list(Ts),nl,nl,
	%write('@@@@@@@Input for evaluation'), write(UnCover),nl,write(NegList),nl,nl,
	%write('__________Start Scoring'),nl,
	
	(set(etoB,yes)->
		evOneGenbyMultiEx(Ts,TSoFar,UnCover,NegList,{NUnCover,RedundantTSoFar-RemainedTSoFar-NewT}); % need to pass the uncovered 2ndEx to seeds
		%evOneGen(Ts,TSoFar,UnCover,NegList,{NUnCover,RedundantTSoFar-RemainedTSoFar-NewT})
		%write('Start normal Evaluation'),
		evOneGen(Ts,TSoFar,UnCover,NegList,{NUnCover,NewTSoFar})		
	),

	multiCovering(NUnCover,NegList,NewTSoFar,FinalT).




/*************** Difference with Single Seed **********/
/*
1. multiSeeds: gatherSimilarExs(EI,EIs,[Group|UnCover])
2. Covering can be the same if non-recursive (no secondary examples)
*/