:-retractall(flag_debug(_)). :-dynamic(wrong/1). wrong(no). flag_debug(0). test([],[]) :- write('Done'),nl,!. test([I|Inputs],[O|Outputs]) :- write('GDI'),nl, gox(I,[os],gdi), state_get(current,Produced1), state_get(O,Expected), subset(Produced1,Expected), subset(Expected,Produced1), write('TDI'),nl, gox(I,[os],tdi), state_get(current,Produced2), subset(Produced2,Expected), subset(Expected,Produced2), write('DDI'),nl, gox(I,[ms,dt,th,os],ddi), state_get(current,Produced3), subset(Produced3,Expected), subset(Expected,Produced3), test(Inputs,Outputs). test([I|Inputs],[O|Outputs]) :- write('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'),nl, write('ERROR: Produced state is different that expected, for states '), write(I), write(' and '), write(O),nl, write('ERROR: Produced: '),state_get(current,C),write(C),nl, write('ERROR: Expected: '),state_get(O,Expected),write(Expected),nl, write('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'),nl,!, retractall(wrong(_)),assert(wrong(yes)), test(Inputs,Outputs). start_test :- tell('log.txt'), write('Testing...'),nl, findall(X,(xstat X:_,sub_atom(X,0,4,_,init)),InitL),list_to_set(InitL,InitS), findall(Y,(xstat Y:_,sub_atom(Y,0,4,_,eval)),EvalL),list_to_set(EvalL,EvalS), write('Init set: '),write(InitS),nl, write('Eval set: '), write(EvalS),nl, test(InitS,EvalS), told, (wrong(no),halt(0));(wrong(yes),halt(1)).