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
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).