// Should be able to run all the same queries for this independent
// sub model.
test_ToothacheCavityCatchModel(model);
// AIMA3e pg. 486
AssignmentProposition asunny = new AssignmentProposition(
ExampleRV.WEATHER_RV, "sunny");
AssignmentProposition arain = new AssignmentProposition(
ExampleRV.WEATHER_RV, "rain");
AssignmentProposition acloudy = new AssignmentProposition(
ExampleRV.WEATHER_RV, "cloudy");
AssignmentProposition asnow = new AssignmentProposition(
ExampleRV.WEATHER_RV, "snow");
Assert.assertEquals(0.6, model.prior(asunny), DELTA_THRESHOLD);
Assert.assertEquals(0.1, model.prior(arain), DELTA_THRESHOLD);
Assert.assertEquals(0.29, model.prior(acloudy), DELTA_THRESHOLD);
Assert.assertEquals(0.01, model.prior(asnow), DELTA_THRESHOLD);
// AIMA3e pg. 488
// P(sunny, cavity)
// P(sunny AND cavity)
AssignmentProposition atoothache = new AssignmentProposition(
ExampleRV.TOOTHACHE_RV, Boolean.TRUE);
AssignmentProposition acatch = new AssignmentProposition(
ExampleRV.CATCH_RV, Boolean.TRUE);
AssignmentProposition acavity = new AssignmentProposition(
ExampleRV.CAVITY_RV, Boolean.TRUE);
ConjunctiveProposition sunnyAndCavity = new ConjunctiveProposition(
asunny, acavity);
// 0.6 (sunny) * 0.2 (cavity) = 0.12