1:- module(test_pita,
2 [test_pita/0]). 3:- use_module(library(plunit)). 4
5test_pita:-
6 run_tests([coin,
7 coinmsw,
8 coinmsw_memo,
9 coin_mpe,
10 dice,
11 epidemic,
12 earthquake,
13 sneezing,
14 trigger,
15 light,
16 threesideddice,
17 bloodtype,
18 mendel,
19 mendel_map,
20 mendel_mpe,
21 coin2,
22 simpson,
23 viral,
24 uwcse,
25 path,
26 pathdb,
27 multiple_paths_simple,
28 multiple_paths,
29 abd1,
30 abd2,
31 abd3,
32 abd1cons1,
33 abd1cons2,
34 bag_game_mpe,
35 bag_pb_mpe,
36 bag_simple,
37 bag_mpe,
38 eruption_mpe,
39 bag_1,
40 bag_2,
41 hmm_mpe,
42 meta,
43 pcfg,
44 pcfglrdb,
45 var_objdb,
46 card,
47 dt_umbrella,
48 dt_winning,
49 dt_weather,
50 dt_viral,
51 tabling_probs,
52 event_calculus,
53 card_body,
54 card_disc,
55 card_disc_body
56 ]).
57
58:-use_module(library(cplint_test/cplint_test)). 59
60
61:- begin_tests(event_calculus, []). 62:- ensure_loaded(library(examples/event_calculus)). 63test(garden2):-
64 run((prob(holdsAt(locatedIn(bob,garden),2),P),close_to(P,1))).
65test(garden4):-
66 run((prob(holdsAt(locatedIn(bob,garden),4),P),close_to(P,0.34))).
67test(kitchen4):-
68 run((prob(holdsAt(locatedIn(bob,kitchen),4),P),close_to(P,0.66))).
69test(garage6):-
70 run((prob(holdsAt(locatedIn(bob,garage),6),P),close_to(P,0.66))).
71:- end_tests(event_calculus). 72
73
74:- begin_tests(dt_winning, []). 75:- ensure_loaded(library(examples/dt_winning)). 76test(best_st_wnning):-
77 run((dt_solve(Strategy,ExpValue),close_to(ExpValue,17.25),perm(Strategy,[[play1]]))).
78:- end_tests(dt_winning). 79
80:- begin_tests(dt_umbrella, []). 81:- ensure_loaded(library(examples/dt_umbrella)). 82test(best_st_umbrella):-
83 run((dt_solve(Strategy,ExpValue),close_to(ExpValue,43),perm(Strategy,[[umbrella]]))).
84:- end_tests(dt_umbrella). 85
86:- begin_tests(dt_weather, []). 87:- ensure_loaded(library(examples/dt_weather)). 88test(best_st_weather):-
89 run((dt_solve(Strategy,ExpValue),close_to(ExpValue,77),perm(Strategy,[[decide_u(rainy)]]))).
90:- end_tests(dt_weather). 91
92:- begin_tests(dt_viral, []). 93:- ensure_loaded(library(examples/dt_viral)). 94test(best_st_viral):-
95 ansi_format([bold,fg(cyan)], '~nThis test takes some time.~n',[]),
96 97 run((dt_solve(Strategy,ExpValue),close_to(ExpValue,3.21),perm(Strategy,[[marketed(theo)],[marketed(martijn)],[marketed(ingo)],[marketed(guy)]]))).
98:- end_tests(dt_viral). 99
100:- begin_tests(tabling_probs, []). 101:- ensure_loaded(library(examples/dt_viral_probs)). 102test(correct_probs):-
103 run((compute_probs(PB,PI,PT,PA,PG,PM,PL,PK),close_to(PB,0.420),close_to(PI,0.480),close_to(PT,0.486),close_to(PA,0.384),close_to(PG,0.480),close_to(PM,0.486),close_to(PL,0.490),close_to(PK,0.291))).
104:- end_tests(tabling_probs). 105
106:- begin_tests(coin, []). 107
108:-ensure_loaded(library(examples/coin)). 109
110test(h_c):-
111 run((prob(heads(coin),P),close_to(P,0.51))).
112test(h_c_b):-
113 run(((prob(heads(coin),P),bar(P,C)),close_to(P,0.51),is_dict(C))).
114test(h_c_b2):-
115 run(((prob(heads(coin),P),bar1(P,C)),close_to(P,0.51),is_dict(C))).
116test(h_c_b_c):-
117 run((prob((heads(coin),biased(coin)),P),close_to(P,0.06))).
118test(t_c):-
119 run((prob(tails(coin),P),close_to(P,0.49))).
120test(h_c_g_b_c):-
121 run((prob(heads(coin),biased(coin),P),close_to(P,0.6))).
122test(h_c_n_b_c):-
123 run((prob((heads(coin),\+ biased(coin)),P),close_to(P,0.45))).
124test(n_h_c):-
125 run((prob(\+ heads(coin),P),close_to(P,0.49))).
126
127:- end_tests(coin). 128
129:- begin_tests(coin_mpe, []). 130
131:-ensure_loaded(library(examples/coin_mpe)). 132
133test(h_c):-
134 run((map(heads(coin),Prob,Exp),close_to(Prob,0.27),
135 perm(Exp, [rule(2,fair(coin),[fair(coin):0.9,biased(coin):0.1],true),
136 rule(0,heads(coin),[heads(coin):0.5,tails(coin):0.5],(toss(coin),\+biased(coin))),
137 rule(1,heads(coin),[heads(coin):0.6,tails(coin):0.4],(toss(coin),biased(coin)))]
138 ))).
139:- end_tests(coin_mpe). 140
141:- begin_tests(coinmsw, []). 142
143:-ensure_loaded(library(examples/coinmsw)). 144
145test(r_c_h):-
146 run((prob(res(coin,heads),P),close_to(P,0.51))).
147test(r_c_t):-
148 run((prob(res(coin,tails),P),close_to(P,0.49))).
149
150:- end_tests(coinmsw). 151
152:- begin_tests(coinmsw_memo, []). 153
154:-ensure_loaded(library(examples/coinmsw_memo)). 155
156test(r_c_h):-
157 run((prob(res(coin,heads),fairness(coin,fair),P),close_to(P,0.5))).
158test(r_c_t):-
159 run((prob(res(coin,tails),fairness(coin,fair),P),close_to(P,0.5))).
160
161:- end_tests(coinmsw_memo). 162
163:- begin_tests(dice, []). 164
165:-ensure_loaded(library(examples/dice)). 166
167test(on_0_1):-
168 run((prob(on(0,1),P),close_to(P,0.16666666666666666))).
169test(on_1_1):-
170 run((prob(on(1,1),P),close_to(P,0.13888888888888887))).
171test(on_2_1):-
172 run((prob(on(2,1),P),close_to(P,0.11574074074074071))).
173test(on_2_1_0_1):-
174 run((prob(on(2,1),on(0,1),P),close_to(P,0.13888888888888887))).
175test(on_2_1_ev):-
176 run((prob(on(2,1),evidence,P),close_to(P,0.16666666666666666))).
177
178:- end_tests(dice). 179
180:- begin_tests(epidemic, []). 181
182:-ensure_loaded(library(examples/epidemic)). 183
184test(ep):-
185 run((prob(epidemic,P),close_to(P,0.588))).
186test(pan):-
187 run((prob(pandemic,P),close_to(P,0.357))).
188
189:- end_tests(epidemic). 190
191:- begin_tests(earthquake, []). 192
193:-ensure_loaded(library(examples/earthquake)). 194
195test(s_s):-
196 run((prob(earthquake(stromboli,strong),P),close_to(P,0.43999999999999995))).
197test(s_m):-
198 run((prob(earthquake(stromboli,moderate),P),close_to(P,0.7999999999999998))).
199test(e_s):-
200 run((prob(earthquake(eyjafjallajkull,strong),P),close_to(P,0.2))).
201test(e_m):-
202 run((prob(earthquake(eyjafjallajkull,moderate),P),close_to(P,0.6))).
203:- end_tests(earthquake). 204
205
206:- begin_tests(sneezing, []). 207
208:-ensure_loaded(library(examples/sneezing)). 209
210test(s_s):-
211 run((prob(strong_sneezing(bob),P),close_to(P,0.43999999999999995))).
212test(m_s):-
213 run((prob(moderate_sneezing(bob),P),close_to(P,0.7999999999999998))).
214
215:- end_tests(sneezing). 216
217:- begin_tests(trigger, []). 218
219:-ensure_loaded(library(examples/trigger)). 220
221test(death):-
222 run((prob(death,P),close_to(P,0.305555555555556))).
223
224:- end_tests(trigger). 225
226
227:- begin_tests(light, []). 228
229:-ensure_loaded(library(examples/light)). 230
231test(light):-
232 run((prob(light,P),close_to(P,0.4))).
233test(replace):-
234 run((prob(replace,P),close_to(P,0.6))).
235
236:- end_tests(light). 237
238:- begin_tests(threesideddice, []). 239
240:-ensure_loaded(library(examples/threesideddice)). 241
242test(on_0_1):-
243 run((prob(on(0,1),P),close_to(P,0.333333333333333))).
244test(on_1_1):-
245 run((prob(on(1,1),P),close_to(P,0.222222222222222))).
246test(on_2_1):-
247 run((prob(on(2,1),P),close_to(P,0.148148147703704))).
248
249test(on_2_1_0_1):-
250 run((prob(on(2,1),on(0,1),P),close_to(P,0.222222222222222))).
251test(on_2_1_1_1):-
252 run((prob(on(2,1),on(1,1),P),close_to(P,0.333333333333333))).
253
254:- end_tests(threesideddice). 255
256:- begin_tests(bloodtype, []). 257
258:-ensure_loaded(library(examples/bloodtype)). 259
260test(pc_p_f_a):-
261 run((prob(pchrom(p_f,a),Prob),
262 close_to(Prob, 0.318))).
263
264test(p_f_a):-
265 run((prob(pchrom(p_f,a),Prob),
266 close_to(Prob, 0.3))).
267
268test(p_a):-
269 run((prob(bloodtype(p,a),Prob),
270 close_to(Prob, 0.3186942939999999))).
271
272test(p_b):-
273 run((prob(bloodtype(p,b),Prob),
274 close_to(Prob, 0.2239874943000002))).
275
276test(p_aa):-
277 run((prob(bloodtype(p,ab),Prob),
278 close_to(Prob, 0.19329257700000035))).
279
280test(p_null):-
281 run((prob(bloodtype(p,null),Prob),
282 close_to(Prob, 0.16751706690000012))).
283
284:- end_tests(bloodtype). 285
286:- begin_tests(mendel, []). 287
288:-ensure_loaded(library(examples/mendel)). 289
290
291test(s_1_p):-
292 run((prob(cg(s,1,p),P),close_to(P,0.5))).
293test(s_1_w):-
294 run((prob(cg(s,1,w),P),close_to(P,0.5))).
295test(s_2_p):-
296 run((prob(cg(s,2,p),P),close_to(P,0.5))).
297test(s_2_w):-
298 run((prob(cg(s,2,w),P),close_to(P,0.5))).
299
300:- end_tests(mendel). 301
302:- begin_tests(mendel_mpe, []). 303
304:-ensure_loaded(library(examples/mendel_mpe)). 305
306test(s_w):-
307 run((map(color(s,white),Prob,Exp),close_to(Prob,0.25),
308 perm(Exp, [rule(0, cg(s, 1, w), [cg(s, 1, p):0.5, cg(s, 1, w):0.5],
309 (mother(m, s), cg(m, 1, p), cg(m, 2, w))),
310 rule(1, cg(s, 2, w), [cg(s, 2, w):0.5, cg(s, 2, p):0.5],
311 (father(f, s), cg(f, 1, w), cg(f, 2, p)))]))).
312
313:- end_tests(mendel_mpe). 314
315:- begin_tests(mendel_map, []). 316
317:-ensure_loaded(library(examples/mendel_map)). 318
319test(s_p):-
320 run((map(color(s,purple),Prob,Exp),close_to(Prob,0.5),
321 perm(Exp, [rule(0, cg(s, 1, p), [cg(s, 1, p):0.5, cg(s, 1, w):0.5],
322 (mother(m, s), cg(m, 1, p), cg(m, 2, w)))]))).
323
324:- end_tests(mendel_map). 325:- begin_tests(coin2, []). 326
327:-ensure_loaded(library(examples/coin2)). 328
329test(h_coin1):-
330 run((prob(heads(coin1),P),close_to(P,0.51))).
331test(h_coin2):-
332 run((prob(heads(coin2),P),close_to(P,0.51))).
333
334test(t_coin1):-
335 run((prob(tails(coin1),P),close_to(P,0.49))).
336test(t_coin2):-
337 run((prob(tails(coin2),P),close_to(P,0.49))).
338
339:- end_tests(coin2). 340
341:- begin_tests(simpson, []). 342
343:-ensure_loaded(library(examples/simpson)). 344
345test(r_d):-
346 run((prob(recovery,drug,P),close_to(P,0.5))).
347test(r_n_d):-
348 run((prob(recovery,\+ drug,P),close_to(P,0.4))).
349test(d_f):-
350 run((prob(recovery,(drug,female),P),close_to(P,0.2))).
351test(n_d_f):-
352 run((prob(recovery,(\+drug,female),P),close_to(P,0.3))).
353test(d_n_m):-
354 run((prob(recovery,(drug,\+female),P),close_to(P,0.6))).
355test(n_d_m):-
356 run((prob(recovery,(\+ drug,\+female),P),close_to(P,0.7))).
357test(d_d):-
358 run((prob(recovery,do(drug),P),close_to(P,0.4))).
359test(d_n_d):-
360 run((prob(recovery,do(\+ drug),P),close_to(P,0.5))).
361test(d_d_f):-
362 run((prob(recovery,(do(drug),female),P),close_to(P,0.2))).
363test(d_n_d_f):-
364 run((prob(recovery,(do(\+drug),female),P),close_to(P,0.3))).
365test(d_d_m):-
366 run((prob(recovery,(do(drug),\+ female),P),close_to(P,0.6))).
367test(d_n_d_m):-
368 run((prob(recovery,(do(\+ drug),\+ female),P),close_to(P,0.7))).
369
370:- end_tests(simpson). 371
372
373:- begin_tests(viral, []). 374
375:-ensure_loaded(library(examples/viral)). 376
377test(h_2_3):-
378 run((prob(has(2),has(3),P),close_to(P,0.4065135474609725))).
379test(h_2_d_3):-
380 run((prob(has(2),do(has(3)),P),close_to(P,0.136))).
381
382:- end_tests(viral). 383
384:- begin_tests(uwcse, []). 385
386:-ensure_loaded(library(examples/uwcse_inf)). 387
388test(t_c1_p1):-
389 run((prob(taught_by(c1,p1),P),close_to(P,0.0926040439925477))).
390
391:- end_tests(uwcse). 392
393:- begin_tests(path, []). 394
395:-ensure_loaded(library(examples/path)). 396
397test(p_a_e):-
398 run((prob(path(a,e),P),close_to(P,0.22888))).
399
400:- end_tests(path). 401
402:- begin_tests(pathdb, []). 403
404:-ensure_loaded(library(examples/pathdb)). 405
406test(p_a_e):-
407 run((prob(path(a,e),P),close_to(P,0.22888))).
408
409:- end_tests(pathdb). 410
411:- begin_tests(multiple_paths_simple, []). 412
413:-ensure_loaded(library(examples/multiple_paths_simple)). 414
415test(p):-
416 run((prob(p,P),close_to(P,0.54))).
417
418:- end_tests(multiple_paths_simple). 419
420:- begin_tests(multiple_paths, []). 421
422:-ensure_loaded(library(examples/multiple_paths)). 423
424test(p):-
425 run((prob(p,P),close_to(P,0.0636))).
426
427:- end_tests(multiple_paths). 428
429:- begin_tests(abd1, []). 430
431:-ensure_loaded(library(examples/abd1)). 432
433test(a):-
434 run((abd_prob(a,P,Exp),close_to(P,0.72),perm_map(Exp,[[e,c]]))).
435test(bdd_a):-
436 run((abd_bdd_dot_string(a,_BDD,_Var,_VarA,P,Exp),close_to(P,0.72),perm_map(Exp,[[e,c]]))).
437
438:- end_tests(abd1). 439
440:- begin_tests(abd1cons1, []). 441
442:-ensure_loaded(library(examples/abd1cons1)). 443
444test(a):-
445 run((abd_prob(a,P,Delta),Delta=[[e]],close_to(P,0.6))).
446
447:- end_tests(abd1cons1). 448
449:- begin_tests(abd1cons2, []). 450
451:-ensure_loaded(library(examples/abd1cons2)). 452
453test(a):-
454 run((abd_prob(a,P,Exp),close_to(P,0.648),perm_map(Exp,[[c,e]]))).
455
456:- end_tests(abd1cons2). 457
458:- begin_tests(abd2, []). 459
460:-ensure_loaded(library(examples/abd2)). 461
462test(a):-
463 run((abd_prob(a,P,Exp),close_to(P,0.72),perm_map(Exp,[[f,c,d]]))).
464test(bdd_a):-
465 run((abd_bdd_dot_string(a,_BDD,_Var,_VarA,P,Exp),close_to(P,0.72), perm_map(Exp,[[f,c,d]]))).
466
467:- end_tests(abd2). 468
469:- begin_tests(abd3, []). 470
471:-ensure_loaded(library(examples/abd3)). 472
473test(a):-
474 run((abd_prob(a,P,Exp),close_to(P,0.72),perm_map(Exp,[[c,d,f]]))).
475test(bdd_a):-
476 run((abd_bdd_dot_string(a,_BDD,_Var,_VarA,P,Exp),close_to(P,0.72),
477 perm_map(Exp,[[c,d,f]]))).
478
479:- end_tests(abd3). 480
481:- begin_tests(bag_game_mpe, []). 482
483:-ensure_loaded(library(examples/bag_game_mpe)). 484
485test(winb):-
486 run((map_bdd_dot_string(win,_BDD,_Var,_VarA,P,Exp),close_to(P,0.162),
487 perm(Exp,[
488 rule(0, '', [red:0.4, '':0.6], true),
489 rule(2, blue, [blue:0.5, '':0.5], true),
490 rule(3, yellow, [yellow:0.6, '':0.4], true),
491 rule(1, green, [green:0.9, '':0.09999999999999998], true)
492 ]))).
493
494test(win):-
495 run((map(win,P,Exp),close_to(P,0.162),
496 perm(Exp,[
497 rule(0, '', [red:0.4, '':0.6], true),
498 rule(2, blue, [blue:0.5, '':0.5], true),
499 rule(3, yellow, [yellow:0.6, '':0.4], true),
500 rule(1, green, [green:0.9, '':0.09999999999999998], true)
501 ]))).
502:- end_tests(bag_game_mpe). 503
504:- begin_tests(bag_pb_mpe, []). 505
506:-ensure_loaded(library(examples/bag_pb_mpe)). 507
508test(ev):-
509 run((map(ev,P,Exp),close_to(P,0.27),
510 perm(Exp,[
511 rule(2,pf(2,1),[pf(2,1):0.6,'':0.4],true),
512 rule(1,pf(1,2),[pf(1,2):0.75,'':0.25],true),
513 rule(0,pf(1,1),[pf(1,1):0.6,'':0.4],true)
514 ]))).
515
516test(evb):-
517 run((map_bdd_dot_string(ev,_BDD,_Var,_VarA,P,Exp),close_to(P,0.27),
518 perm(Exp,[
519 rule(2,pf(2,1),[pf(2,1):0.6,'':0.4],true),
520 rule(1,pf(1,2),[pf(1,2):0.75,'':0.25],true),
521 rule(0,pf(1,1),[pf(1,1):0.6,'':0.4],true)
522 ]))).
523
524:- end_tests(bag_pb_mpe). 525
526:- begin_tests(bag_simple, []). 527
528:-ensure_loaded(library(examples/bag_simple)). 529
530test(evb):-
531 run((map_bdd_dot_string(ev,_BDD,_Var,_VarA,P,Exp),close_to(P,0.6),
532 perm(Exp,[
533 rule(0, red(b1), [red(b1):0.6, green(b1):0.3, blue(b1):0.1], pick(b1))
534 ]))).
535test(ev):-
536 run((map(ev,P,Exp),close_to(P,0.6),
537 perm(Exp,[
538 rule(0, red(b1), [red(b1):0.6, green(b1):0.3, blue(b1):0.1], pick(b1))
539 ]))).
540:- end_tests(bag_simple). 541
542:- begin_tests(bag_mpe, []). 543
544:-ensure_loaded(library(examples/bag_mpe)). 545
546test(evb):-
547 run((map_bdd_dot_string(ev,_BDD,_Var,_VarA,P,Exp),close_to(P,0.36),
548 perm(Exp,[
549 rule(1, pick(b1), [pick(b1):0.6, no_pick(b1):0.4], true),
550 rule(0, red(b1), [red(b1):0.6, green(b1):0.3, blue(b1):0.1], pick(b1))
551 ]))).
552test(ev):-
553 run((map(ev,P,Exp),close_to(P,0.36),
554 perm(Exp,[
555 rule(1, pick(b1), [pick(b1):0.6, no_pick(b1):0.4], true),
556 rule(0, red(b1), [red(b1):0.6, green(b1):0.3, blue(b1):0.1], pick(b1))
557 ]))).
558:- end_tests(bag_mpe). 559
560:- begin_tests(eruption_mpe, []). 561
562:-ensure_loaded(library(examples/eruption_mpe)). 563
564test(eruption):-
565 run((map(eruption,P,Exp),close_to(P,0.08316),
566 perm(Exp,[rule(1,sudden_energy_release,[sudden_energy_release:0.7,'':0.30000000000000004],true),
567 rule(2,fault_rupture(southwest_northeast),[fault_rupture(southwest_northeast):0.6,'':0.4],true),
568 rule(3,fault_rupture(east_west),[fault_rupture(east_west):0.55,'':0.44999999999999996],true),
569 rule(0,eruption,[eruption:0.6,earthquake:0.3,'':0.10000000000000003],(sudden_energy_release,fault_rupture(southwest_northeast))),
570 rule(0,eruption,[eruption:0.6,earthquake:0.3,'':0.10000000000000003],(sudden_energy_release,fault_rupture(east_west)))
571 ]))).
572:- end_tests(eruption_mpe). 573
574:- begin_tests(bag_1, []). 575
576:-ensure_loaded(library(examples/bag_1)). 577
578test(evb):-
579 run((map_bdd_dot_string(ev,_BDD,_Var,_VarA,P,Exp),close_to(P,0.54),
580 perm(Exp,[
581 rule(1, pick(b1), [pick(b1):0.6, no_pick(b1):0.4], true)
582 ]))).
583test(ev):-
584 run((map(ev,P,Exp),close_to(P,0.54),
585 perm(Exp,[
586 rule(1, pick(b1), [pick(b1):0.6, no_pick(b1):0.4], true)
587 ]))).
588:- end_tests(bag_1). 589
590:- begin_tests(bag_2, []). 591
592:-ensure_loaded(library(examples/bag_2)). 593test(evb):-
594 run((map_bdd_dot_string(ev,_BDD,_Var,_VarA,P,Exp),close_to(P,0.6),
595 perm(Exp,[
596 rule(0, red(b1), [red(b1):0.6, green(b1):0.3, blue(b1):0.1], pick(b1))
597 ]))).
598test(ev):-
599 run((map(ev,P,Exp),close_to(P,0.6),
600 perm(Exp,[
601 rule(0, red(b1), [red(b1):0.6, green(b1):0.3, blue(b1):0.1], pick(b1))
602 ]))).
603:- end_tests(bag_2). 604
605
606:- begin_tests(hmm_mpe, []). 607
608:-ensure_loaded(library(examples/hmm_mpe)). 609
610test(hmm_a_g):-
611
612 run((map(hmm([a,g]),P,Exp),close_to(P,0.00054),
613 perm(Exp,
614 [rule(0,next_state(q1,q2,[]),[next_state(q1,q1,[]):0.5,next_state(q1,q2,[]):0.45,next_state(q1,end,[]):0.05],true),
615 rule(2,letter(q1,a,[]),[letter(q1,a,[]):0.4,letter(q1,c,[]):0.3,letter(q1,g,[]):0.2,letter(q1,t,[]):0.1],true),
616 rule(0,next_state(q1,q1,[q1]),[next_state(q1,q1,[q1]):0.5,next_state(q1,q2,[q1]):0.45,next_state(q1,end,[q1]):0.05],true),
617 rule(2,letter(q1,a,[q1]),[letter(q1,a,[q1]):0.4,letter(q1,c,[q1]):0.3,letter(q1,g,[q1]):0.2,letter(q1,t,[q1]):0.1],true),
618 rule(1,next_state(q2,end,[q1]),[next_state(q2,q1,[q1]):0.45,next_state(q2,q2,[q1]):0.5,next_state(q2,end,[q1]):0.05],true),
619 rule(3,letter(q2,g,[q1]),[letter(q2,a,[q1]):0.1,letter(q2,c,[q1]):0.2,letter(q2,g,[q1]):0.3,letter(q2,t,[q1]):0.4],true)]
620 ))).
621
622:- end_tests(hmm_mpe). 623
624:- begin_tests(meta, []). 625
626:-ensure_loaded(library(examples/meta)). 627
628test(meta):-
629 run((prob(a,Prob),close_to(Prob,0.2)
630 )).
631
632:- end_tests(meta). 633
634
635:- begin_tests(var_objdb, []). 636
637:-ensure_loaded(library(examples/var_objdb)). 638
639test(obj):-
640 run((prob(obj(2),Prob),close_to(Prob, 0.08190000000000008)
641 )).
642
643test(nobj):-
644 run((prob(numObj(0,2),Prob),close_to(Prob,0.06300000000000006)
645 )).
646
647:- end_tests(var_objdb). 648
649
650:- begin_tests(pcfg, []). 651
652:-ensure_loaded(library(examples/pcfg)). 653
654test(pcfg):-
655 run((prob(pcfg([a,b,a,a]),Prob),close_to(Prob,0.0024,0.0001)
656 )).
657
658:- end_tests(pcfg). 659
660
661:- begin_tests(pcfglrdb, []). 662
663:-ensure_loaded(library(examples/pcfglrdb)). 664
665test(pcfglrdb):-
666 run((prob(pcfg([a]),Prob),close_to(Prob,0.3)
667 )).
668
669:- end_tests(pcfglrdb). 670
671:- begin_tests(card, []). 672
673:-ensure_loaded(library(examples/card)). 674
675test(card):-
676 run((prob(pair,Prob),close_to(Prob,0.07692307692307693))).
677
678:- end_tests(card). 679
680:- begin_tests(card_body, []). 681
682:-ensure_loaded(library(examples/card_body)). 683
684test(card_body):-
685 run((prob(pair,Prob),close_to(Prob,0.07692307692307693))).
686
687:- end_tests(card_body). 688
689:- begin_tests(card_disc, []). 690
691:-ensure_loaded(library(examples/card_disc)). 692
693test(card_disc):-
694 run((prob(pair,Prob),close_to(Prob,0.07692307692307693))).
695
696:- end_tests(card_disc). 697
698:- begin_tests(card_disc_body, []). 699
700:-ensure_loaded(library(examples/card_disc_body)). 701
702test(card_disc_body):-
703 run((prob(pair,Prob),close_to(Prob,0.07692307692307693))).
704
705:- end_tests(card_disc_body).