AIMA.Test.Core.Unit.Probability.Reasoning.HMMTest.testForwardBackwardOnRainmanHmmFor3daysData C# (CSharp) Method

testForwardBackwardOnRainmanHmmFor3daysData() private method

private testForwardBackwardOnRainmanHmmFor3daysData ( ) : void
return void
        public void testForwardBackwardOnRainmanHmmFor3daysData()
        {
            List<String> perceptions = new List<String>();
            perceptions.Add(HmmConstants.SEE_UMBRELLA);
            perceptions.Add(HmmConstants.SEE_UMBRELLA);
            perceptions.Add(HmmConstants.SEE_NO_UMBRELLA);

            List<RandomVariable> results = rainmanHmm.forward_backward(perceptions);
            Assert.AreEqual(4, results.Count);
            Assert.IsNull(results[0]);

            RandomVariable smoothedDayOne = results[1];
            Assert.AreEqual(0.964, smoothedDayOne
                    .getProbabilityOf(HmmConstants.RAINING), TOLERANCE);
            Assert.AreEqual(0.036, smoothedDayOne
                    .getProbabilityOf(HmmConstants.NOT_RAINING), TOLERANCE);

            RandomVariable smoothedDayTwo = results[2];
            Assert.AreEqual(0.484, smoothedDayTwo
                    .getProbabilityOf(HmmConstants.RAINING), TOLERANCE);
            Assert.AreEqual(0.516, smoothedDayTwo
                    .getProbabilityOf(HmmConstants.NOT_RAINING), TOLERANCE);

            RandomVariable smoothedDayThree = results[3];
            Assert.AreEqual(0.190, smoothedDayThree
                    .getProbabilityOf(HmmConstants.RAINING), TOLERANCE);
            Assert.AreEqual(0.810, smoothedDayThree
                    .getProbabilityOf(HmmConstants.NOT_RAINING), TOLERANCE);
        }