Accord.Tests.Statistics.GenericHiddenMarkovModelTest.checkDegenerate C# (CSharp) Method

checkDegenerate() private static method

private static checkDegenerate ( double observations, int states ) : void
observations double
states int
return void
        private static void checkDegenerate(double[][][] observations, int states)
        {
            bool thrown = false;
            try
            {
                var density = new MultivariateNormalDistribution(2);
                var model = new HiddenMarkovModel<MultivariateNormalDistribution>(new Forward(states), density);

                var learning = new BaumWelchLearning<MultivariateNormalDistribution>(model)
                {
                    Tolerance = 0.0001,
                    Iterations = 0,
                };

                double logLikelihood = learning.Run(observations);

                Assert.AreEqual(0, logLikelihood);
            }
            catch (NonPositiveDefiniteMatrixException)
            {
                thrown = true;
            }

            Assert.IsTrue(thrown);

            {
                var density = new MultivariateNormalDistribution(2);
                var model = new HiddenMarkovModel<MultivariateNormalDistribution>(new Forward(states), density);

                var learning = new BaumWelchLearning<MultivariateNormalDistribution>(model)
                {
                    Tolerance = 0.0001,
                    Iterations = 0,
                    FittingOptions = new NormalOptions() { Robust = true }
                };

                double logLikelihood = learning.Run(observations);

                Assert.IsFalse(Double.IsNaN(logLikelihood));

                foreach (double value in model.Transitions)
                    Assert.IsFalse(Double.IsNaN(value));

                foreach (double value in model.Probabilities)
                    Assert.IsFalse(Double.IsNaN(value));
            }
        }