1:- module(test_aleph,
    2  [test_aleph/0]).    3:- use_module(library(plunit)).    4
    5
    6test_aleph:-
    7  run_tests.
    8
    9:- begin_tests(abduce, []).   10
   11:-ensure_loaded(library(examples/abduce)).   12
   13test(induce,[true(Program = 
   14  [(parent(_658, _660):-father(_658, _660)), 
   15  (parent(_682, _684):-mother(_682, _684)), 
   16  parent(dad(dad(bob)), mum(bob))])]):-
   17  induce(Program).
   18
   19:- end_tests(abduce).   20
   21:- begin_tests(animals, []).   22
   23:-ensure_loaded(library(examples/animals)).   24
   25test(induce_tree,[true(Program = 
   26  [  (class(_478, _480):-has_covering(_478, hair), _480=mammal),
   27  (class(_378, _380):-not(has_covering(_378, hair)), _380=nmammal)])]):-
   28  induce_tree(Program).
   29
   30:- end_tests(animals).   31
   32:- begin_tests(constraints, []).   33
   34:-ensure_loaded(library(examples/constraints)).   35
   36test(induce_constraints,[true(Program = 
   37  [(aleph_false:-human(E),male(E),female(E)),
   38  (aleph_false:-human(F),female(F),male(F)),
   39  (aleph_false:-human(G),not(male(G)),not(female(G))),
   40  (aleph_false:-human(H),not(female(H)),not(male(H)))]
   41  )]):-
   42  induce_constraints(Program).
   43
   44:- end_tests(constraints).   45
   46:- begin_tests(features, []).   47
   48:-ensure_loaded(library(examples/features)).   49
   50test(induce_features,[true(F =
   51  [(eastbound(_1272):-has_car(_1272,_1284),closed(_1284)),
   52  (eastbound(_1230):-has_car(_1230,_1242),load(_1242,triangle,1)),
   53  (eastbound(_1180):-has_car(_1180,_1192),closed(_1192),wheels(_1192,2)),
   54  (eastbound(_1130):-has_car(_1130,_1142),closed(_1142),has_car(_1130,_1158)),
   55  (eastbound(_1076):-has_car(_1076,_1088),load(_1088,triangle,1),has_car(_1076,_1108)),
   56  (eastbound(_1026):-has_car(_1026,_1038),has_car(_1026,_1050),closed(_1050)),
   57  (eastbound(_972):-has_car(_972,_984),has_car(_972,_996),load(_996,triangle,1)),
   58  (eastbound(_924):-has_car(_924,_936),short(_936),closed(_936)),
   59  (eastbound(_872):-has_car(_872,_884),short(_884),load(_884,triangle,1)),
   60  (eastbound(_818):-has_car(_818,_830),shape(_830,rectangle),load(_830,triangle,1))]
   61  )]):-
   62  induce_features(F).
   63
   64:- end_tests(features).   65
   66:- begin_tests(gcws, []).   67
   68:-ensure_loaded(library(examples/gcws)).   69
   70test(induce):-
   71  tmp_file_stream(utf8,File,Stream),
   72  write(Stream,'normal(A).'),
   73  close(Stream),
   74  open(File,read,S),
   75  set_input(S),!,
   76  rdhyp,
   77  set_input(user_input),
   78  sphyp,
   79  show(gcws),
   80  close(S),
   81  delete_file(File).
   82
   83:- end_tests(gcws).   84
   85
   86
   87:- begin_tests(posonly, []).   88
   89:-ensure_loaded(library(examples/posonly)).   90
   91test(induce,[true(Program = 
   92    [class(_F,reptile),(class(G,reptile):-has_legs(G,4)),(class(H,fish):-has_covering(H,none)),(class(I,mammal):-has_covering(I,hair)),(class(J,bird):-has_covering(J,feathers))]
   93)]
   94
   95%  [class(_,reptile),
   96%  (class(F,reptile):-has_legs(F,4)),
   97%  (class(G,fish):-has_covering(G,none)),
   98%  (class(H,mammal):-has_covering(H,hair)),
   99%  (class(I,bird):-has_covering(I,feathers))]
  100%  )]
  101 ):-
  102  set_random(seed(111)),
  103  induce(Program).
  104
  105:- end_tests(posonly).  106
  107:- begin_tests(good, []).  108
  109:-ensure_loaded(library(examples/good)).  110
  111test(good,[true(C = 
  112  [(eastbound(A) :-
  113   has_car(A,B), closed(B), load(B,triangle,1)),
  114  (eastbound(A) :-
  115   has_car(A,B), short(B), closed(B))])
  116  ]):-
  117  sat(1),reduce,good_clauses(C).
  118
  119:- end_tests(good).  120
  121:- begin_tests(modes, []).  122
  123:-ensure_loaded(library(examples/modes)).  124
  125test(induce_modes,[true(M = 
  126  [mode(*,eastbound(+type1)),
  127  mode(*,has_car(+type1,-type13)),
  128  mode(*,short(+type13)),mode(*,closed(+type13)),mode(*,long(+type13)),mode(*,open_car(+type13)),mode(*,double(+type13)),mode(*,jagged(+type13)),mode(*,load(+type13,-type15,-type16)),mode(*,wheels(+type13,+type16)),mode(*,shape(+type13,-type9)),mode(1,+type1= #type1),mode(1,+type13= #type13),mode(1,+type15= #type15),mode(1,+type16= #type16),mode(1,+type9= #type9),mode(1,+type9= +type15),mode(1,not(short(+type13))),mode(1,not(closed(+type13))),mode(1,not(long(+type13))),mode(1,not(open_car(+type13))),mode(1,not(double(+type13))),mode(1,not(jagged(+type13))),mode(1,not(wheels(+type13,+type16)))]
  129
  130  
  131  )]):-
  132  induce_modes(M).
  133
  134:- end_tests(modes).  135
  136:- begin_tests(recursion, []).  137
  138:-ensure_loaded(library(examples/recursion)).  139
  140test(induce,[true(Program = 
  141  [(mem(_1114, _1116):-_1116=[_1132|_1134], mem(_1114, _1134)),  
  142  (mem(_1246, _1248):-_1248=[_1246|_1260])])]):-
  143  induce(Program).
  144
  145:- end_tests(recursion).  146
  147:- begin_tests(refine, []).  148
  149:-ensure_loaded(library(examples/refine)).  150
  151test(induce,[true(C = 
  152  (eastbound(_4810):-has_car(_4810, _4822), short(_4822), closed(_4822)))]):-
  153  sat(1),reduce(C).
  154
  155:- end_tests(refine).  156
  157:- begin_tests(train, []).  158
  159:-ensure_loaded(library(examples/train)).  160
  161test(induce,[true(F =
  162  [(eastbound(_834):-has_car(_834, _846), short(_846), closed(_846))]
  163  )]):-
  164  induce(F).
  165
  166:- end_tests(train).  167
  168:- begin_tests(weather, []).  169
  170:-ensure_loaded(library(examples/weather)).  171
  172test(induce_tree,[true(Program = 
  173  [   (class(_3084, _3086):-outlook(_3084, rain), windy(_3084, true), random(_3086, [0.75-dont_play, 0.25-play])),
  174  (class(_2924, _2926):-not((outlook(_2924, rain), windy(_2924, true))), random(_2926, [0.7142857142857143-play, 0.2857142857142857-dont_play]))])]):-
  175  induce_tree(Program).
  176
  177:- end_tests(weather).  178
  179:- begin_tests(wedge, []).  180
  181:-ensure_loaded(library(examples/wedge)).  182
  183test(induce_tree,[true(Program = 
  184[ (f(_4682, _4684):-lteq(_4682, 0.0), predict(_4682, _4684, [1.0, 1.0, 0.0])),
  185(f(_4526, _4528):-not(lteq(_4526, 0.0)), predict(_4526, _4528, [-1.0, 1.0, 0.0]))]
  186     )]):-
  187  induce_tree(Program).
  188
  189:- end_tests(wedge).  190
  191:- begin_tests(interactive_mem, []).  192
  193:-ensure_loaded(library(examples/interactive_mem)).  194
  195test(induce_incremental,[true(Program = 
  196[(mem(_316, _318):-_318=[_316|_330]),(mem(_196, _198):-_198=[_214|_216], mem(_196, _216))]
  197     )]):-
  198  tmp_file_stream(utf8,File,Stream),
  199  write(Stream,'
  200mem(1,[1]).
  201overgeneral.
  202show(constraints).
  203none.
  204ok.
  205ok.
  206none.
  207mem(1,[2,1]).
  208because(overgeneral,not(mem(1,[2,3]))).
  209none.
  210ok.
  211ok.
  212none.
  213none.
  214'),
  215  close(Stream),
  216  open(File,read,S),
  217  set_input(S),!,
  218  induce_incremental(Program),
  219  close(S),
  220  delete_file(File).
  221
  222:- end_tests(interactive_mem).  223
  224:- begin_tests(interactive_animals, []).  225
  226:-ensure_loaded(library(examples/interactive_animals)).  227
  228test(induce_tree,[true(Program = 
  229[  (class(_514, _516):-has_covering(_514, hair), _516=mammal),
  230(class(_402, _404):-not(has_covering(_402, hair)), _404=nmammal)
  231])]):-
  232  tmp_file_stream(utf8,File,Stream),
  233  write(Stream,'1.'),
  234  close(Stream),
  235  open(File,read,S),
  236  set_input(S),!,
  237  induce_tree(Program),
  238  close(S),
  239  delete_file(File).
  240
  241:- end_tests(interactive_animals).  242
  243:- begin_tests(numbers_guess, []).  244
  245:-ensure_loaded(library(examples/numbers_guess)).  246
  247test(reduce,[true(A = (p(_3438):-gteq(_3438, 9)))]):-
  248  sat(1),
  249  reduce(A).
  250
  251:- end_tests(numbers_guess).  252
  253:- begin_tests(numbers_ineq, []).  254
  255:-ensure_loaded(library(examples/numbers_ineq)).  256
  257test(reduce,[true(A = (p(_6732):-gteq(_6732, 8)))]):-
  258  sat(1),
  259  reduce(A).
  260
  261:- end_tests(numbers_ineq).  262
  263:- begin_tests(numbers_line, []).  264
  265:-ensure_loaded(library(examples/numbers_line)).  266
  267test(reduce,[true(A = (p(_6186, _6188):-lin_regress1(_6188, _6186, 2, 0, 0.0)))]):-
  268  sat(1),
  269  reduce(A).
  270
  271:- end_tests(numbers_line).  272
  273:- begin_tests(numbers_miline, []).  274
  275:-ensure_loaded(library(examples/numbers_miline)).  276
  277test(reduce,[true(A = (p(_8242, _8244, _8246):-lin_regress1(_8242, _8246, _8244, 2, 0, 0.0)))]):-
  278  sat(1),
  279  reduce(A).
  280
  281:- end_tests(numbers_miline).  282
  283:- begin_tests(portray_train, []).  284
  285:-ensure_loaded(library(examples/portray_train)).  286
  287test(induce,[true(F =
  288  [(eastbound(_834):-has_car(_834, _846), short(_846), closed(_846))]
  289  )]):-
  290  induce(F).
  291
  292:- end_tests(portray_train).