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_em_torch_carc):-
   37  set_lift(verbosity,0),
   38  set_lift(parameter_learning,em_torch),
   39  set_lift(iter,100),
   40  induce_par_lift([train],P),
   41  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.41604269110072,
   48  '\nAUCROC =',0.6710526315789473,
   49  '\nAUCPR =', 0.5989337661969046],St1),
   50  writeln(St1).
   51  
   52test(induce_par_gd_carc):-
   53  set_lift(verbosity,0),
   54  set_lift(parameter_learning,gd_python),
   55  set_lift(eta,0.01),
   56  set_lift(iter,100),
   57  induce_par_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
   58  writeln('Result:'),
   59  writeln(P),
   60  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
   61  writeln(St),
   62  atomic_list_concat(['Expected:\n',
   63  '\nLL =', -26.433804567011133,
   64  '\nAUCROC =',0.6710526315789473,
   65  '\nAUCPR =', 0.5989337661969046],St1),
   66  writeln(St1).
   67
   68:- end_tests(carc).   69
   70
   71:- begin_tests(muta, []).   72:-ensure_loaded(library(examples_lift/muta)).   73:-use_module(library(cplint_test/cplint_test)).   74
   75
   76test(induce_par_muta):-
   77  set_lift(verbosity,0),
   78  set_lift(parameter_learning,em_python),
   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 =',-50.3968461506984,
   86  '\nAUCROC =',0.4924242424242425,
   87  '\nAUCPR =', 0.7123209210586535],St1),
   88  writeln(St1).
   89
   90test(induce_par_em_torch_muta):-
   91  set_lift(verbosity,0),
   92  set_lift(parameter_learning,em_torch),
   93  induce_par_lift([1,2,3,4,5,6,7,8,9],P),test_lift(P,[10],LL,AUCROC,_ROC,AUCPR,_PR),
   94  writeln('Result:'),
   95  writeln(P),
   96  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
   97  writeln(St),
   98  atomic_list_concat(['Expected:\n',
   99  '\nLL =',-50.3968461506984,
  100  '\nAUCROC =',0.4924242424242425,
  101  '\nAUCPR =', 0.7123209210586535],St1),
  102  writeln(St1).
  103
  104test(induce_par_gd_muta):-
  105  set_lift(verbosity,0),
  106  set_lift(parameter_learning,gd_python),
  107  set_lift(parameter_update,adam),
  108  set_lift(eta,0.01),
  109  induce_par_lift([1,2,3,4,5,6,7,8,9],P),test_lift(P,[10],LL,AUCROC,_ROC,AUCPR,_PR),
  110  writeln('Result:'),
  111  writeln(P),
  112  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  113  writeln(St),
  114  atomic_list_concat(['Expected:\n',
  115  '\nLL =',-48.955482123491436,
  116  '\nAUCROC =',0.6287878787878788,
  117  '\nAUCPR =', 0.8184241612528028],St1),
  118  writeln(St1).
  119
  120
  121:- end_tests(muta).  122
  123
  124:- begin_tests(nba, []).  125:-ensure_loaded(library(examples_lift/nba)).  126:-use_module(library(cplint_test/cplint_test)).  127
  128test(induce_nba_l1):-
  129  set_lift(verbosity,0),
  130  set_lift(regularization,l1),
  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 =', -49.7938188339248,
  139  '\nAUCROC =',0.625,
  140  '\nAUCPR =', 0.8189102564102563],St1),
  141  writeln(St1).
  142
  143test(induce_nba_l2):-
  144  set_lift(verbosity,0),
  145  set_lift(parameter_learning,em_python),
  146  set_lift(regularization,l2),
  147  induce_lift([f1,f2,f3,f4],P),test_lift(P,[f5],LL,AUCROC,_ROC,AUCPR,_PR),
  148  writeln('Result:'),
  149  writeln(P),
  150  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  151  writeln(St),
  152  atomic_list_concat(['Expected:\n', 
  153  '\nLL =', -43.57330116702434,
  154  '\nAUCROC =',0.625,
  155  '\nAUCPR =', 0.8189102564102563],St1),
  156  writeln(St1).
  157
  158test(induce_nba_bayesian):-
  159  set_lift(verbosity,0),
  160  set_lift(regularization,bayesian),
  161  set_lift(parameter_learning,em_python),
  162  induce_lift([f1,f2,f3,f4],P),test_lift(P,[f5],LL,AUCROC,_ROC,AUCPR,_PR),
  163  writeln('Result:'),
  164  writeln(P),
  165  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  166  writeln(St),
  167  atomic_list_concat(['Expected:\n', 
  168  '\nLL =', -47.070639401222,
  169  '\nAUCROC =',0.625,
  170  '\nAUCPR =', 0.8189102564102563],St1),
  171  writeln(St1).
  172
  173
  174test(induce_nba_em_torch_l1):-
  175  set_lift(verbosity,0),
  176  set_lift(regularization,l1),
  177  set_lift(parameter_learning,em_torch),
  178  induce_lift([f1,f2,f3,f4],P),test_lift(P,[f5],LL,AUCROC,_ROC,AUCPR,_PR),
  179  writeln('Result:'),
  180  writeln(P),
  181  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  182  writeln(St),
  183  atomic_list_concat(['Expected:\n', 
  184  '\nLL =', -49.7938188339248,
  185  '\nAUCROC =',0.625,
  186  '\nAUCPR =', 0.8189102564102563],St1),
  187  writeln(St1).
  188
  189test(induce_nba_em_torch_l2):-
  190  set_lift(verbosity,0),
  191  set_lift(regularization,l2),
  192  set_lift(parameter_learning,em_torch),
  193  induce_lift([f1,f2,f3,f4],P),test_lift(P,[f5],LL,AUCROC,_ROC,AUCPR,_PR),
  194  writeln('Result:'),
  195  writeln(P),
  196  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  197  writeln(St),
  198  atomic_list_concat(['Expected:\n', 
  199  '\nLL =', -49.7938188339248,
  200  '\nAUCROC =',0.625,
  201  '\nAUCPR =', 0.8189102564102563],St1),
  202  writeln(St1).
  203
  204test(induce_nba_em_torch_bayesian):-
  205  set_lift(verbosity,0),
  206  set_lift(regularization,bayesian),
  207  set_lift(parameter_learning,em_torch),
  208  induce_lift([f1,f2,f3,f4],P),test_lift(P,[f5],LL,AUCROC,_ROC,AUCPR,_PR),
  209  writeln('Result:'),
  210  writeln(P),
  211  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  212  writeln(St),
  213  atomic_list_concat(['Expected:\n', 
  214  '\nLL =', -49.7938188339248,
  215  '\nAUCROC =',0.625,
  216  '\nAUCPR =', 0.8189102564102563],St1),
  217  writeln(St1).
  218
  219:- end_tests(nba).  220
  221
  222:- begin_tests(bongard, []).  223:-ensure_loaded(library(examples_lift/bongard)).  224:-use_module(library(cplint_test/cplint_test)).  225
  226
  227test(induce_par_gd_bongard):-
  228  set_lift(verbosity,4),
  229  set_lift(parameter_learning,gd_python),
  230  set_lift(eta,0.01),
  231  set_lift(regularization, no),
  232  induce_par_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  233  writeln('Result:'),
  234  writeln(P),
  235  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  236  writeln(St),
  237  atomic_list_concat(['Expected:\n',
  238  '\nLL =',-218.22925642272494,
  239  '\nAUCROC =',0.7485951468710089,
  240  '\nAUCPR =', 0.5979409655734421],St1),
  241  writeln(St1).
  242
  243test(induce_gd_bongard):-
  244  set_lift(verbosity,1),
  245  set_lift(parameter_learning,gd_python),
  246  set_lift(regularization, no),
  247  set_lift(eta,0.01),
  248  set_lift(gamma,0.1),
  249  induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  250  writeln('Result:'),
  251  writeln(P),
  252  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  253  writeln(St),
  254  atomic_list_concat(['Expected:\n',
  255  '\nLL =',-88.11894369013643,
  256  '\nAUCROC =',0.8199872286079184,
  257  '\nAUCPR =',0.6676162174173899],St1),
  258  writeln(St1).
  259
  260
  261
  262test(induce_conc_bongard):-
  263  set_lift(verbosity,1),
  264  set_lift(parameter_learning,em_python),
  265  set_lift(threads,2),
  266  induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  267  writeln('Result:'),
  268  writeln(P),
  269  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  270  writeln(St),
  271  atomic_list_concat(['Expected:\n',
  272  '\nLL =',-88.11894369013643,
  273  '\nAUCROC =',0.8199872286079184,
  274  '\nAUCPR =',0.6676162174173899],St1),
  275  writeln(St1).
  276
  277  test(induce_conc_em_torch_bongard):-
  278    set_lift(verbosity,1),
  279    set_lift(parameter_learning,em_torch),
  280    set_lift(threads,2),
  281    induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  282    writeln('Result:'),
  283    writeln(P),
  284    atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  285    writeln(St),
  286    atomic_list_concat(['Expected:\n',
  287    '\nLL =',-88.11894369013643,
  288    '\nAUCROC =',0.8199872286079184,
  289    '\nAUCPR =',0.6676162174173899],St1),
  290    writeln(St1).
  291
  292test(induce_gd_l1_bongard):-
  293  set_lift(verbosity,1),
  294  set_lift(parameter_learning,gd_python),
  295  set_lift(regularization, l1),
  296  set_lift(eta,0.01),
  297  set_lift(gamma,1),
  298  induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  299  writeln('Result:'),
  300  writeln(P),
  301  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  302  writeln(St),
  303  atomic_list_concat(['Expected:\n',
  304  '\nLL =',-86.45340693767905,
  305  '\nAUCROC =',0.8247126436781609,
  306  '\nAUCPR =', 0.6620667885942804],St1),
  307  writeln(St1).
  308
  309test(induce_gd_l2_bongard):-
  310  set_lift(verbosity,1),
  311  set_lift(parameter_learning,gd_python),
  312  set_lift(regularization, l2),
  313  set_lift(eta,0.01),
  314  set_lift(gamma,1),
  315  induce_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  316  writeln('Result:'),
  317  writeln(P),
  318  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  319  writeln(St),
  320  atomic_list_concat(['Expected:\n',
  321  '\nLL =',-87.36727076138638,
  322  '\nAUCROC =',0.8188378033205619,
  323  '\nAUCPR =', 0.6550280976471973],St1),
  324  writeln(St1).
  325
  326
  327test(induce_par_gd_adam_bongard):-
  328  set_lift(verbosity,1),
  329  set_lift(parameter_learning,gd_python),
  330  set_lift(parameter_update, adam),
  331  set_lift(gamma,1),
  332  set_lift(iter,20),
  333  set_lift(adam_params,[0.2,0.8,0.9,1e-8]),
  334  induce_par_lift([train],P),test_lift(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
  335  writeln('Result:'),
  336  writeln(P),
  337  atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
  338  writeln(St),
  339  atomic_list_concat(['Expected:\n',
  340  '\nLL =',-218.57571674633985,
  341  '\nAUCROC =',0.7485951468710089,
  342  '\nAUCPR =', 0.5979409655734421],St1),
  343  writeln(St1).
  344
  345
  346:- end_tests(bongard).