Accord.Tests.Statistics.Models.Fields.ForwardBackwardAlgorithmTest.ForwardTest3 C# (CSharp) Method

ForwardTest3() private method

private ForwardTest3 ( ) : void
return void
        public void ForwardTest3()
        {
            HiddenMarkovModel hmm = Accord.Tests.Statistics.Models.Markov.
                ForwardBackwardAlgorithmTest.CreateModel3();

            MarkovDiscreteFunction function = new MarkovDiscreteFunction(hmm);

            //                     L  L  R  R
            int[] observations = { 0, 0, 1, 1 };

            double[,] actual = Accord.Statistics.Models.Fields.
                ForwardBackwardAlgorithm.Forward(function.Factors[0], observations);

            // Forward matrices from R's HMM package are
            // transposed in relation to the framework's:

            Assert.AreEqual(4, actual.GetLength(0));
            Assert.AreEqual(2, actual.GetLength(1));

            Assert.AreEqual(0.675, actual[0, 0], 1e-10);
            Assert.AreEqual(0.012, actual[0, 1], 1e-10);

            Assert.AreEqual(0.4077, actual[1, 0], 1e-10);
            Assert.AreEqual(0.017208, actual[1, 1], 1e-10);

            Assert.AreEqual(0.0828306, actual[2, 0], 1e-10);
            Assert.AreEqual(0.082355328, actual[2, 1], 1e-10);

            Assert.AreEqual(0.0227427696, actual[3, 0], 1e-10);
            Assert.AreEqual(0.065309067648, actual[3, 1], 1e-10);

            foreach (double p in actual)
                Assert.IsFalse(double.IsNaN(p));
        }