2:- module(test_phil,
    3  [test_phil/0,test_all/0,test_par/0,test_stru/0,test_inf/0]).    4:- use_module(library(plunit)).    5
    6test_phil:-
    7  test_all.
    8
    9test_all:-
   10  par(P),
   11  stru(S),
   12  inf(I),
   13  append(P,S,A1),
   14  append(I,A1,A),
   15  run_tests(A).
   16
   17test_par:-
   18  par(P),
   19  run_tests(P).
   20
   21test_stru:-
   22  stru(S),
   23  run_tests(S).
   24
   25
   26test_inf:-
   27  inf(I),
   28  run_tests(I).
   29
   30inf([uwcsekeys]).
   31
   32stru([bongard]). 
   33
   34par([bongard,bongardkeys]).
   35
   36
   37
   38
   39
   40/*
   41:- begin_tests(uwcse, []).
   42:-ensure_loaded(library(examples/uwcse)).
   43:-use_module(library(phil_test/phil_test)).
   44
   45test(inference_hplp):-
   46inference_hplp(advisedby(harry, ben),ai,Prob,Circuit),
   47writeln('Result:'),
   48atomic_list_concat(['\nProbability=',Prob,'\nCircuit=',Circuit],St),
   49writeln(St),
   50atomic_list_concat(['Expected:\nProbability =', 0.8750801664,'\nCircuit =', or([and([0, or([and([2])])]), and([0, or([and([2])])]), and([0, or([and([2])])]), and([0, or([and([2])])]), and([1]), and([1])])],St1),
   51writeln(St1). 
   52
   53:- end_tests(uwcse).
   54*/
   55
   56
   57:- begin_tests(uwcsekeys, []).   58:-ensure_loaded(library(examples/uwcsekeys)).   59:-use_module(library(phil_test/phil_test)).   60
   61test(inference_hplp):-
   62inference_hplp(advisedby(harry, ben),ai,Prob),
   63writeln('Result:'),
   64atomic_list_concat(['\nProbability=',Prob],St),
   65writeln(St),
   66atomic_list_concat(['Expected:\nProbability =', 0.8750801664],St1),
   67writeln(St1).
   68
   69:- end_tests(uwcsekeys).   70
   71
   72
   73:- begin_tests(bongard, []).   74:-ensure_loaded(library(examples/bongard)).   75:-use_module(library(phil_test/phil_test)).   76
   77test(induce_hplp_par):-
   78induce_hplp_par([train],P),
   79writeln('Result:'),
   80writeln(P),
   81writeln('Expected:'),
   82writeln([(pos:0.17765741024654796:-circle(_154),in(_158,_154)),(pos:0.09591918413587362:-circle(_154),triangle(_158)),(pos:0.12036384245667597:-triangle(_154),circle(_158))]).
   83
   84test(induce_hplp):-
   85induce_hplp([all],P),test_hplp(P,[all],LL,AUCROC,_ROC,AUCPR,_PR),
   86writeln('Result:'),
   87writeln(P),
   88atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
   89writeln(St),
   90atomic_list_concat(['Expected:\nP =',
   91"[(pos:0.16270851085553845:-triangle(_136),hidden_1(_136)),(pos:0.4474931750444961:-triangle(_138),hidden_2(_138)),(pos:0.19806104560889168:-triangle(_140)),(pos:0.008787147207427997:-circle(_142)),(pos:0.3152720388399355:-triangle(_190),hidden_3(_190)),(pos:0.1640712959029497:-triangle(_192),hidden_4(_192)),(pos:0.44963975957404595:-triangle(_194),hidden_5(_194)),(pos:0.0039465760210714304:-square(_198)),(pos:0.2920280586393367:-triangle(_260),hidden_6(_260)),(pos:0.19200732087999292:-triangle(_262),hidden_7(_262)),(pos:0.0662228340227013:-square(_264),hidden_8(_264)),(hidden_1(_136):0.0006472774266847546:-in(_142,_136)),(hidden_1(_136):0.10926826869890274:-config(_136,down)),(hidden_2(_138):0.9992263430007895:-in(_140,_138),hidden_2_1(_140,_138)),(hidden_2(_138):0.10089008831781142:-config(_138,down)),(hidden_3(_190):0.7151752015444297:-in(_190,_200)),(hidden_3(_190):0.08494521335770758:-config(_190,up)),(hidden_4(_192):0.002790690870336442:-in(_198,_192)),(hidden_4(_192):0.14285926057566703:-config(_192,down)),(hidden_5(_194):0.9989916404526972:-in(_196,_194),hidden_5_1(_196,_194)),(hidden_5(_194):0.10788242443608247:-config(_194,down)),(hidden_6(_260):0.6580622914189234:-in(_260,_266)),(hidden_6(_260):0.08473152062711986:-config(_260,up)),(hidden_7(_262):0.0315840554855127:-config(_262,up)),(hidden_8(_264):7.584182782736883e-14:-in(_264,_268)),(hidden_2_1(_140,_138):0.5001937079404949:-config(_140,down)),(hidden_5_1(_196,_194):0.500252470981427:-config(_196,down))]",
   92'\nLL =', -161.40547689883218,
   93'\nAUCROC =', 0.9127012310606061,
   94'\nAUCPR =', 0.8673603662785241],St1),
   95writeln(St1).
   96
   97:- end_tests(bongard).   98
   99
  100
  101
  102
  103:- begin_tests(bongardkeys, []).  104:-ensure_loaded(library(examples/bongardkeys)).  105:-use_module(library(phil_test/phil_test)).  106
  107test(in):-
  108in(P),test_hplp(P,[all],LL,AUCROC,_ROC,AUCPR,_PR),
  109writeln('Result:'),
  110writeln(P),
  111atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  112writeln(St),
  113atomic_list_concat(['Expected:\nP =', "[(pos:0.197575:-circle(_1680),in(_1684, _1680)), (pos:0.000303421:-circle(_1680),triangle(_1684)), (pos:0.000448807:-triangle(_556),circle(_560))]",
  114'\nLL =', -709.4598740769318,
  115'\nAUCROC =',0.6783558238636364,
  116'\nAUCPR =', 0.5157498267172048],St1),
  117writeln(St1).
  118
  119/*
  120test(induce_hplp_par):-
  121  induce_hplp_par([train],P),
  122  writeln('Result:'),
  123  writeln(P),
  124  writeln('Expected:'),
  125  writeln([(pos:0.17765741024654796:-circle(_3598),in(_3602,_3598)),(pos:0.09591918413587362:-circle(_3598),triangle(_3602)),(pos:0.12036384245667597:-triangle(_3598),circle(_3602))]).
  126*/
  127:- end_tests(bongardkeys).