2:- module(test_sc,
3 [test_sc/0,test_all/0,test_par/0,test_stru/0]). 4:- use_module(library(plunit)). 5
6test_sc:-
7 test_all.
8
9test_all:-
10 par(P),
11 stru(S),
12 append(P,S,A),
13 run_tests(A).
14
15test_par:-
16 par(P),
17 run_tests(P).
18
19test_stru:-
20 stru(S),
21 run_tests(S).
22
23par([
24 bongard,
25 bongardkeys,
26 hmmlearn,
27 shop,
28 multiple_paths_simple_learning,
29 multiple_paths_learning,
30 bongard_ind,
31 bongard_fixed,
32 bongard_initial,
33 mach_par]).
34
35stru([mach_sendback,
36 mach_fix,
37 mach_all,
38 registration]).
39
40
41:- begin_tests(mach_par, []). 42:-ensure_loaded(library(examples/learning/mach_par)). 43:-use_module(library(cplint_test/cplint_test)). 44
45test(induce_par):-
46 induce_par([train],P),
47 writeln('Result:'),
48 writeln(P),
49 writeln('Expected:'),
50 writeln([(class(sendback):1.0;'':0.0:-worn(A), not_replaceable(A)),
51 (class(fix):0.5714285714285714;'':0.4285714285714286:-worn(B), replaceable(B)),
52 (class(ok):0.2;'':0.8:-not_worn(_120))]).
53
54:- end_tests(mach_par). 55
56
57:- begin_tests(mach_sendback, []). 58:-ensure_loaded(library(examples/learning/mach_sendback)). 59:-use_module(library(cplint_test/cplint_test)). 60
61test(induce):-
62 induce([train],P),test(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
63 atomic_list_concat(['Result\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
64 writeln(St),
65 writeln(P),
66 atomic_list_concat(['Expected\nLL=','0.0','\nAUCROC=','1.0','\nAUCPR=','1.0','\n'],StE),
67 writeln(StE),
68 writeln([(sendback:1.0;'':0.0:-worn(_52500), not_replaceable(_52510), not_replaceable(_52520), worn(_52520))]),
69 close_to(LL,0.0),close_to(AUCROC,1.0),close_to(AUCPR,1.0).
70:- end_tests(mach_sendback). 71
72
73:- begin_tests(mach_fix, []). 74:-ensure_loaded(library(examples/learning/mach_fix)). 75:-use_module(library(cplint_test/cplint_test)). 76
77test(induce):-
78 induce([train],P),test(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
79 atomic_list_concat(['Result\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
80 writeln(St),
81 writeln(P),
82 atomic_list_concat(['Expected\nLL=','0.0','\nAUCROC=','1.0','\nAUCPR=','1.0','\n'],StE),
83 writeln(StE),
84 writeln([(fix:1.0;'':0.0:-worn(_142386))]),
85 close_to(LL,0.0),close_to(AUCROC,1.0),close_to(AUCPR,1.0).
86:- end_tests(mach_fix). 87
88:- begin_tests(mach_all, []). 89:-ensure_loaded(library(examples/learning/mach_all)). 90:-use_module(library(cplint_test/cplint_test)). 91
92
93test(test_in):-
94 in(P),test(P,[all],LL,AUCROC,_ROC,AUCPR,_PR),close_to(LL, -124.33959502167846),close_to(AUCROC,0.7),close_to(AUCPR, 0.6844298018482021).
95:- end_tests(mach_all). 96
97
98
99:- begin_tests(bongard, []). 100:-ensure_loaded(library(examples/learning/bongard)). 101:-use_module(library(cplint_test/cplint_test)). 102
103test(induce_par):-
104induce_par([train],P),
105writeln('Result:'),
106writeln(P),
107writeln('Expected:'),
108writeln([(pos:0.08375986464331642;'':0.9162401353566836:-circle(A), in(_96, A)), (pos:0.41285257298968425;'':0.5871474270103157:-circle(_92), triangle(_97))]).
109
110
111:- end_tests(bongard). 112
113:- begin_tests(bongardkeys, []). 114:-ensure_loaded(library(examples/learning/bongardkeys)). 115:-use_module(library(cplint_test/cplint_test)). 116
117test(induce_par):-
118induce_par([train],P),
119writeln('Result:'),
120writeln(P),
121writeln('Expected:'),
122writeln([(pos:0.08375986464331642;'':0.9162401353566836:-circle(A), in(_96, A)), (pos:0.41285257298968425;'':0.5871474270103157:-circle(_92), triangle(_97))]).
123:- end_tests(bongardkeys). 124
125:- begin_tests(registration, []). 126:-ensure_loaded(library(examples/learning/registration)). 127:-use_module(library(cplint_test/cplint_test)). 128
129
130test(in):-
131 in(P),test(P,[all],LL,AUCROC,_ROC,AUCPR,_PR),
132writeln('Result:'),
133writeln(P),
134atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
135writeln(St),
136atomic_list_concat(['Expected:\nP =', "[(party(yes):0.5:-company_type(commercial)), (party(no):0.5:-subscription(C), course_len(C, 4), \\+company_type(commercial))]",
137'\nLL =', -17.281246460764,
138'\nAUCROC =',0.9166666666666667,
139'\nAUCPR =', 0.9583333333333334],St1),
140writeln(St1).
141
142test(induce):-
143 induce([all],P),test(P,[all],LL,AUCROC,_ROC,AUCPR,_PR),
144writeln('Result:'),
145writeln(P),
146atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
147writeln(St),
148atomic_list_concat(['Expected:\nP =',
149"[(party(yes):0.015604109954480928;:0.9843958900455191:-company_type(university),job(researcher)),(party(yes):0.3224437982952064;:0.6775562017047936:-job(researcher)),(party(yes):0.9999999983379018;:1.6620982368209525e-9:-company_type(commercial)),(party(yes):0.6233797589501375;:0.37662024104986247:-not_company_type(university)),(party(yes):0.0003946210127296068;:0.9996053789872704:-subscription(_814)),(party(no):1.0;:0.0:-not_company_type(commercial),subscription(_1844),subscription(_1854),subscription(_1864),course_len(_1864,4))]",
150'\nLL =', -1.909937224474644,
151'\nAUCROC =', 0.9722222222222223,
152'\nAUCPR =', 0.9791666666666667],St1),
153writeln(St1).
154
155:- end_tests(registration). 156
157:- begin_tests(hmmlearn, []). 158:-ensure_loaded(library(examples/learning/hmmlearn)). 159:-use_module(library(cplint_test/cplint_test)). 161
162test(induce_par):-
163 induce_par([train],P),
164writeln('Result:'),
165writeln(P),
166writeln('Expected:'),
167writeln([(success(_3868):1.0:-hmmf(_3868, [r0], 3)), (hmmf([p|_3868], _3888, _3890):0.397642938480145;hmmf([s|_3868], _3888, _3890):0.602357061519855:-_3890>0, _3888=[r0|_3928], tr(_3888, _3934), _3938 is _3890-1, hmmf(_3868, [_3934|_3888], _3938)), (hmmf([s|_3868], _3888, _3890):0.52143903729156;hmmf([h|_3868], _3888, _3890):0.47856096270843995:-_3890>0, _3888=[r1|_4006], tr(_3888, _3934), _3938 is _3890-1, hmmf(_3868, [_3934|_3888], _3938)), (hmmf([], _3888, 0):1.0:-true),
168(tr([r0|_4058], r0):0.6858291009862068;tr([r0|_4058], r1):0.31417089901379325:-true), (tr([r1|_4058], r0):0.2719403559829671;tr([r1|_4058], r1):0.7280596440170328:-true)]).
169:- end_tests(hmmlearn). 170
171:- begin_tests(shop, []). 172:-ensure_loaded(library(examples/learning/shop)). 174
175test(induce_par):-
176 induce_par([train],P),test(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
177writeln('Result:'),
178writeln(P),
179atomic_list_concat(['\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
180writeln(St),
181atomic_list_concat(['Expected:\nP =', "[(shops(john):0.20548261545513422;'':0.7945173845448658:-true), (shops(mary):0.8982135971596719;'':0.10178640284032814:-true), (bought(spaghetti):0.5448836590413033;bought(steak):0.4551163409586967:-shops(john)), (bought(spaghetti):0.29413365772975464;bought(fish):0.7058663422702454:-shops(mary))]",
182'\nLL =', -3137.1337240554694,
183'\nAUCROC =', 0.8035006664184584,
184'\nAUCPR =', 0.752406766447365,'\n'],St1),
185writeln(St1).
186
187test(in):-
188 in(P),test(P,[test],LL,AUCROC,_ROC,AUCPR,_PR),
189atomic_list_concat(['Result\nLL=',LL,'\nAUCROC=',AUCROC,'\nAUCPR=',AUCPR,'\n'],St),
190writeln(St),
191P = [shops(john):0.2, shops(mary):0.9, (bought(spaghetti):0.5;bought(steak):0.5:-shops(john)), (bought(spaghetti):0.3;bought(fish):0.7:-shops(mary))],
192atomic_list_concat(['Expected\nLL=','-3127.225749380786','\nAUCROC=','0.8035006664184584','\nAUCPR=','0.752406766447365','\n'],StE),
193writeln(StE),
194LL = -3127.225749380786,
195AUCROC = 0.8035006664184584,
196AUCPR = 0.752406766447365.
197:- end_tests(shop). 198
199:- begin_tests(multiple_paths_simple_learning, []). 200:-ensure_loaded(library(examples/learning/multiple_paths_simple_learning)). 201
202:-use_module(library(cplint_test/cplint_test)). 203
204
205test(induce_par):-
206 induce_par([train],P), test_prob(P,[train],_NP,_NN,LL,_EL),
207writeln(P),writeln(LL),
208writeln(
209[(p:1.0:-a, b), (p:1.0:- \+a, \+b), (a:0.14098536470750564;'':0.8590146352924943:-true),
210(b:0.2686080357352204;'':0.7313919642647796:-true)]),
211writeln([0.6661462033202675-p(train1), 0.6661462033202675-(\+p(train2)),
2120.6661462033202675-p(train3)]),
213writeln(-1.9095443323886057),
214close_to(LL, -1.9095443323886057,0.3).
215
216:- end_tests(multiple_paths_simple_learning). 217
218:- begin_tests(multiple_paths_learning, []). 219:-ensure_loaded(library(examples/learning/multiple_paths_learning)). 220
221
222test(induce_par):-
223 induce_par([train],P),writeln(P),
224writeln( [(p:1.0:-c, \+d, a, b), (p:1.0:-d, \+a, \+b),
225(a:0.11345438264374658;'':0.8865456173562534:-true),
226 (b:0.24757444431927064;'':0.7524255556807293:-true),
227 (c:0.6699713764888383;'':0.3300286235111617:-true),
228 (d:0.7420553493044134;'':0.2579446506955866:-true)]).
229
230:- end_tests(multiple_paths_learning). 231
232:- begin_tests(bongard_ind, []). 233:-ensure_loaded(library(examples/learning/bongard_ind)). 234:-use_module(library(cplint_test/cplint_test)). 235
236test(induce_par):-
237induce_par([train],P),
238writeln('Result:'),
239writeln(P),
240writeln('Expected:'),
241writeln([(pos:0.0032009782151307584;'':0.9967990217848692:-circle(_24), in(_28, _24)),
242 (pos:0.36069511297793233;'':0.6393048870220677:-triangle(_90), config(_90, down)),
243 (pos:0.4178555801893244;'':0.5821444198106756:-triangle(_144), config(_144, up))]).
244:- end_tests(bongard_ind). 245
246:- begin_tests(bongard_fixed, []). 247:-ensure_loaded(library(examples/learning/bongard_fixed)). 248:-use_module(library(cplint_test/cplint_test)). 249
250test(induce_par):-
251induce_par([train],P),
252writeln('Result:'),
253writeln(P),
254writeln('Expected:'),
255writeln( [(pos:0.0021000155528233407;'':0.9978999844471766:-circle(_24), in(_28, _24)), (pos:0.5;'':0.5:-circle(_24), triangle(_28))]).
256:- end_tests(bongard_fixed). 257
258:- begin_tests(bongard_initial, []). 259:-ensure_loaded(library(examples/learning/bongard_initial)). 260:-use_module(library(cplint_test/cplint_test)). 261
262test(induce_par):-
263induce_par([train],P),
264writeln('Result:'),
265writeln(P),
266writeln('Expected:'),
267writeln([(pos:0.07507285519157605;'':0.924927144808424:-circle(_24), in(_28, _24)), (pos:0.41706649095461357;'':0.5829335090453864:-circle(_88), triangle(_98))]).
268
269:- end_tests(bongard_initial).