Accord.Tests.Statistics.Models.Markov.ForwardBackwardAlgorithmTest.ForwardBackwardGenericTest C# (CSharp) Method

ForwardBackwardGenericTest() private method

private ForwardBackwardGenericTest ( ) : void
return void
        public void ForwardBackwardGenericTest()
        {
            var discreteModel = CreateModel1();
            var genericModel = CreateModel4();

            int[] discreteObservations = { 2, 2, 1, 0 };
            double[][] genericObservations = 
            {
                new double[] { 2 }, new double[] { 2 },
                new double[] { 1 }, new double[] { 0 }
            };

            double[] scaling = new double[3];

            double discreteFwdLogLikelihood;
            double[,] discreteFwd = ForwardBackwardAlgorithm.Forward(discreteModel,
                discreteObservations, out scaling, out discreteFwdLogLikelihood);

            double[,] discreteBwd = ForwardBackwardAlgorithm.Backward(discreteModel,
                discreteObservations, scaling);

            double genericFwdLogLikelihood;
            double[,] genericFwd = ForwardBackwardAlgorithm.Forward(genericModel,
                genericObservations, out scaling, out genericFwdLogLikelihood);

            double[,] genericBwd = ForwardBackwardAlgorithm.Backward(genericModel,
                genericObservations, scaling);

            Assert.AreEqual(discreteFwdLogLikelihood, genericFwdLogLikelihood);

            for (int i = 0; i < discreteFwd.GetLength(0); i++)
            {
                for (int j = 0; j < discreteFwd.GetLength(1); j++)
                {
                    Assert.AreEqual(discreteFwd[i, j], genericFwd[i, j]);
                    Assert.AreEqual(discreteBwd[i, j], genericBwd[i, j]);
                }
            }

        }