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

testRobotHMMPredictionAndMeasurementUpdateStepsModifyBeliefCorrectly() private method

        public void testRobotHMMPredictionAndMeasurementUpdateStepsModifyBeliefCorrectly()
        {

            Assert.AreEqual(0.5, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_OPEN), 0.001);
            Assert.AreEqual(0.5, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_CLOSED), 0.001);

            robot.act(HmmConstants.DO_NOTHING);
            Assert.AreEqual(0.5, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_OPEN), 0.001);
            Assert.AreEqual(0.5, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_CLOSED), 0.001);

            robot.perceive(HmmConstants.SEE_DOOR_OPEN);
            Assert.AreEqual(0.75, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_OPEN), TOLERANCE);
            Assert.AreEqual(0.25, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_CLOSED), TOLERANCE);

            robot.act(HmmConstants.PUSH_DOOR);
            Assert.AreEqual(0.95, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_OPEN), 0.001);
            Assert.AreEqual(0.05, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_CLOSED), 0.001);

            robot.perceive(HmmConstants.SEE_DOOR_OPEN);
            Assert.AreEqual(0.983, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_OPEN), TOLERANCE);
            Assert.AreEqual(0.017, robot.belief().getProbabilityOf(
                    HmmConstants.DOOR_CLOSED), TOLERANCE);
        }