AIMA.Test.Core.Unit.Probability.Reasoning.HMMAgentTest.testRainmanHMMPredictionAndMeasurementUpdateStepsModifyBeliefCorrectly C# (CSharp) Method

testRainmanHMMPredictionAndMeasurementUpdateStepsModifyBeliefCorrectly() private method

        public void testRainmanHMMPredictionAndMeasurementUpdateStepsModifyBeliefCorrectly()
        {
            Assert.AreEqual(0.5, rainman.belief().getProbabilityOf(
                    HmmConstants.RAINING), 0.001);
            Assert.AreEqual(0.5, rainman.belief().getProbabilityOf(
                    HmmConstants.NOT_RAINING), 0.001);

            rainman.waitWithoutActing();
            Assert.AreEqual(0.5, rainman.belief().getProbabilityOf(
                    HmmConstants.RAINING), 0.001);
            Assert.AreEqual(0.5, rainman.belief().getProbabilityOf(
                    HmmConstants.NOT_RAINING), 0.001);

            rainman.perceive(HmmConstants.SEE_UMBRELLA);
            Assert.AreEqual(0.818, rainman.belief().getProbabilityOf(
                    HmmConstants.RAINING), TOLERANCE);
            Assert.AreEqual(0.182, rainman.belief().getProbabilityOf(
                    HmmConstants.NOT_RAINING), TOLERANCE);

            rainman.waitWithoutActing();
            Assert.AreEqual(0.627, rainman.belief().getProbabilityOf(
                    HmmConstants.RAINING), TOLERANCE);
            Assert.AreEqual(0.373, rainman.belief().getProbabilityOf(
                    HmmConstants.NOT_RAINING), TOLERANCE);

            rainman.perceive(HmmConstants.SEE_UMBRELLA);
            Assert.AreEqual(0.883, rainman.belief().getProbabilityOf(
                    HmmConstants.RAINING), TOLERANCE);
            Assert.AreEqual(0.117, rainman.belief().getProbabilityOf(
                    HmmConstants.NOT_RAINING), TOLERANCE);
        }
    }