Accord.Tests.Statistics.GenericHiddenMarkovModelTest2.ConstructorTest2 C# (CSharp) Method

ConstructorTest2() private method

private ConstructorTest2 ( ) : void
return void
        public void ConstructorTest2()
        {

            double[,] A = new double[,]
            {
                { 0.5, 0.5 },
                { 0.5, 0.5 }
            };

            double[] pi = new double[] { 1, 0 };

            var distribution = new MultivariateNormalDistribution(3);
            var hmm = new HiddenMarkovModel<MultivariateNormalDistribution, double[]>(2, distribution);

            for (int i = 0; i < hmm.Emissions.Length; i++)
            {
                IDistribution b = hmm.Emissions[i];

                Assert.AreNotSame(distribution, b);
                Assert.IsTrue(b is MultivariateNormalDistribution);

                MultivariateNormalDistribution n = b as MultivariateNormalDistribution;

                Assert.AreEqual(n.Dimension, hmm.NumberOfInputs);

                Assert.AreNotSame(n.Covariance, distribution.Covariance);
                Assert.IsTrue(n.Covariance.IsEqual(distribution.Covariance));

                Assert.AreNotSame(n.Mean, distribution.Mean);
                Assert.IsTrue(n.Mean.IsEqual(distribution.Mean));
            }

            Assert.AreEqual(2, hmm.States);
            Assert.AreEqual(3, hmm.NumberOfInputs);
            Assert.AreEqual(2, hmm.Emissions.Length);

            var logA = Matrix.Log(A);
            var logPi = Matrix.Log(pi);

            Assert.IsTrue(logA.IsEqual(hmm.LogTransitions));
            Assert.IsTrue(logPi.IsEqual(hmm.LogInitial));
        }