package aima.test.core.unit.probability.bayes.approx;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import aima.core.probability.RandomVariable;
import aima.core.probability.bayes.BayesianNetwork;
import aima.core.probability.bayes.approx.PriorSample;
import aima.core.probability.example.BayesNetExampleFactory;
import aima.core.probability.example.ExampleRV;
import aima.core.util.MockRandomizer;
/**
*
* @author Ciaran O'Reilly
* @author Ravi Mohan
*/
public class PriorSampleTest {
@Test
public void testPriorSample_basic() {
// AIMA3e pg. 530
BayesianNetwork bn = BayesNetExampleFactory
.constructCloudySprinklerRainWetGrassNetwork();
MockRandomizer r = new MockRandomizer(
new double[] { 0.5, 0.5, 0.5, 0.5 });
PriorSample ps = new PriorSample(r);
Map<RandomVariable, Object> event = ps.priorSample(bn);
Assert.assertEquals(4, event.keySet().size());
Assert.assertEquals(Boolean.TRUE, event.get(ExampleRV.CLOUDY_RV));
Assert.assertEquals(Boolean.FALSE, event.get(ExampleRV.SPRINKLER_RV));
Assert.assertEquals(Boolean.TRUE, event.get(ExampleRV.RAIN_RV));
Assert.assertEquals(Boolean.TRUE, event.get(ExampleRV.WET_GRASS_RV));
}
}