2:- module(test,
    3  [test/0,test_all/0]).    4:- use_module(library(plunit)).    5
    6test:-
    7  test_all.
    8
    9test_all:-
   10  tests(A),
   11  run_tests(A).
   12
   13tests([carc,muta,nba,bongard]).
   14
   15
   16:- begin_tests(carc, []).   17:-ensure_loaded(library(examples_lift/carc)).   18:-use_module(library(cplint_test/cplint_test)).   19
   20test(induce_par_carc):-
   21  set_lift(verbosity,0),
   22  set_lift(parameter_learning,em_python),
   23  set_lift(iter,100),
   24  induce_par_lift([train],P),
   25  test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
   26  writeln('Result:'),
   27  writeln(P),
   28  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
   29  writeln(St),
   30  atomic_list_concat(['Expected:\n',
   31  '\nLL =', -26.41604269110072,
   32  '\nAUCROC =',0.6710526315789473,
   33  '\nAUCPR =', 0.5989337661969046],St1),
   34  writeln(St1).
   35  
   36test(induce_par_gd_carc):-
   37  set_lift(verbosity,0),
   38  set_lift(parameter_learning,gd_python),
   39  set_lift(eta,0.01),
   40  set_lift(iter,100),
   41  induce_par_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
   42  writeln('Result:'),
   43  writeln(P),
   44  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
   45  writeln(St),
   46  atomic_list_concat(['Expected:\n',
   47  '\nLL =', -26.433804567011133,
   48  '\nAUCROC =',0.6710526315789473,
   49  '\nAUCPR =', 0.5989337661969046],St1),
   50  writeln(St1).
   51
   52:- end_tests(carc).   53
   54
   55:- begin_tests(muta, []).   56:-ensure_loaded(library(examples_lift/muta)).   57:-use_module(library(cplint_test/cplint_test)).   58
   59
   60test(induce_par_muta):-
   61  set_lift(verbosity,0),
   62  set_lift(parameter_learning,em_python),
   63  induce_par_lift([1,2,3,4,5,6,7,8,9],P),test_lift(P,[10],LL,AUCROC,_ROC,AUCPR,_PR),
   64  writeln('Result:'),
   65  writeln(P),
   66  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
   67  writeln(St),
   68  atomic_list_concat(['Expected:\n',
   69  '\nLL =',-50.3968461506984,
   70  '\nAUCROC =',0.4924242424242425,
   71  '\nAUCPR =', 0.7123209210586535],St1),
   72  writeln(St1).
   73
   74test(induce_par_gd_muta):-
   75  set_lift(verbosity,0),
   76  set_lift(parameter_learning,gd_python),
   77  set_lift(parameter_update,adam),
   78  set_lift(eta,0.01),
   79  induce_par_lift([1,2,3,4,5,6,7,8,9],P),test_lift(P,[10],LL,AUCROC,_ROC,AUCPR,_PR),
   80  writeln('Result:'),
   81  writeln(P),
   82  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
   83  writeln(St),
   84  atomic_list_concat(['Expected:\n',
   85  '\nLL =',-48.955482123491436,
   86  '\nAUCROC =',0.6287878787878788,
   87  '\nAUCPR =', 0.8184241612528028],St1),
   88  writeln(St1).
   89
   90
   91:- end_tests(muta).   92
   93
   94:- begin_tests(nba, []).   95:-ensure_loaded(library(examples_lift/nba)).   96:-use_module(library(cplint_test/cplint_test)).   97
   98test(induce_nba_l1):-
   99  set_lift(verbosity,0),
  100  set_lift(regularization,l1),
  101  set_lift(parameter_learning,em_python),
  102  induce_lift([f1,f2,f3,f4],P),test_lift(P,[f5],LL,AUCROC,_ROC,AUCPR,_PR),
  103  writeln('Result:'),
  104  writeln(P),
  105  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  106  writeln(St),
  107  atomic_list_concat(['Expected:\n', 
  108  '\nLL =', -49.7938188339248,
  109  '\nAUCROC =',0.625,
  110  '\nAUCPR =', 0.8189102564102563],St1),
  111  writeln(St1).
  112
  113test(induce_nba_l2):-
  114  set_lift(verbosity,0),
  115  set_lift(parameter_learning,em_python),
  116  set_lift(regularization,l2),
  117  induce_lift([f1,f2,f3,f4],P),test_lift(P,[f5],LL,AUCROC,_ROC,AUCPR,_PR),
  118  writeln('Result:'),
  119  writeln(P),
  120  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  121  writeln(St),
  122  atomic_list_concat(['Expected:\n', 
  123  '\nLL =', -43.57330116702434,
  124  '\nAUCROC =',0.625,
  125  '\nAUCPR =', 0.8189102564102563],St1),
  126  writeln(St1).
  127
  128test(induce_nba_bayesian):-
  129  set_lift(verbosity,0),
  130  set_lift(regularization,bayesian),
  131  set_lift(parameter_learning,em_python),
  132  induce_lift([f1,f2,f3,f4],P),test_lift(P,[f5],LL,AUCROC,_ROC,AUCPR,_PR),
  133  writeln('Result:'),
  134  writeln(P),
  135  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  136  writeln(St),
  137  atomic_list_concat(['Expected:\n', 
  138  '\nLL =', -47.070639401222,
  139  '\nAUCROC =',0.625,
  140  '\nAUCPR =', 0.8189102564102563],St1),
  141  writeln(St1).
  142
  143:- end_tests(nba).  144
  145
  146:- begin_tests(bongard, []).  147:-ensure_loaded(library(examples_lift/bongard)).  148:-use_module(library(cplint_test/cplint_test)).  149
  150
  151test(induce_par_gd_bongard):-
  152  set_lift(verbosity,4),
  153  set_lift(parameter_learning,gd_python),
  154  set_lift(eta,0.01),
  155  set_lift(regularization, no),
  156  induce_par_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  157  writeln('Result:'),
  158  writeln(P),
  159  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  160  writeln(St),
  161  atomic_list_concat(['Expected:\n',
  162  '\nLL =',-218.22925642272494,
  163  '\nAUCROC =',0.7485951468710089,
  164  '\nAUCPR =', 0.5979409655734421],St1),
  165  writeln(St1).
  166
  167test(induce_gd_bongard):-
  168  set_lift(verbosity,1),
  169  set_lift(parameter_learning,gd_python),
  170  set_lift(regularization, no),
  171  set_lift(eta,0.01),
  172  set_lift(gamma,0.1),
  173  induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  174  writeln('Result:'),
  175  writeln(P),
  176  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  177  writeln(St),
  178  atomic_list_concat(['Expected:\n',
  179  '\nLL =',-88.11894369013643,
  180  '\nAUCROC =',0.8199872286079184,
  181  '\nAUCPR =',0.6676162174173899],St1),
  182  writeln(St1).
  183
  184
  185
  186test(induce_conc_bongard):-
  187  set_lift(verbosity,1),
  188  set_lift(parameter_learning,em_python),
  189  set_lift(threads,2),
  190  induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  191  writeln('Result:'),
  192  writeln(P),
  193  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  194  writeln(St),
  195  atomic_list_concat(['Expected:\n',
  196  '\nLL =',-88.11894369013643,
  197  '\nAUCROC =',0.8199872286079184,
  198  '\nAUCPR =',0.6676162174173899],St1),
  199  writeln(St1).
  200test(induce_gd_l1_bongard):-
  201  set_lift(verbosity,1),
  202  set_lift(parameter_learning,gd_python),
  203  set_lift(regularization, l1),
  204  set_lift(eta,0.01),
  205  set_lift(gamma,1),
  206  induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  207  writeln('Result:'),
  208  writeln(P),
  209  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  210  writeln(St),
  211  atomic_list_concat(['Expected:\n',
  212  '\nLL =',-86.45340693767905,
  213  '\nAUCROC =',0.8247126436781609,
  214  '\nAUCPR =', 0.6620667885942804],St1),
  215  writeln(St1).
  216
  217test(induce_gd_l2_bongard):-
  218  set_lift(verbosity,1),
  219  set_lift(parameter_learning,gd_python),
  220  set_lift(regularization, l2),
  221  set_lift(eta,0.01),
  222  set_lift(gamma,1),
  223  induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  224  writeln('Result:'),
  225  writeln(P),
  226  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  227  writeln(St),
  228  atomic_list_concat(['Expected:\n',
  229  '\nLL =',-87.36727076138638,
  230  '\nAUCROC =',0.8188378033205619,
  231  '\nAUCPR =', 0.6550280976471973],St1),
  232  writeln(St1).
  233
  234
  235test(induce_par_gd_adam_bongard):-
  236  set_lift(verbosity,1),
  237  set_lift(parameter_learning,gd_python),
  238  set_lift(parameter_update, adam),
  239  set_lift(gamma,1),
  240  set_lift(iter,20),
  241  set_lift(adam_params,[0.2,0.8,0.9,1e-8]),
  242  induce_par_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  243  writeln('Result:'),
  244  writeln(P),
  245  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  246  writeln(St),
  247  atomic_list_concat(['Expected:\n',
  248  '\nLL =',-218.57571674633985,
  249  '\nAUCROC =',0.7485951468710089,
  250  '\nAUCPR =', 0.5979409655734421],St1),
  251  writeln(St1).
  252
  253
  254:- end_tests(bongard).