public void ForwardTest4()
{
var hmmc = Accord.Tests.Statistics.Models.Fields.
MultivariateMarkovFunctionTest.CreateModel3();
var hmm = hmmc[0];
var function = new MarkovMultivariateFunction(hmm);
var observations = Accord.Tests.Statistics.Models.Fields.
MultivariateMarkovFunctionTest.inputTest[3];
double expectedLogLikelihood;
double[,] expected = Accord.Statistics.Models.Markov
.ForwardBackwardAlgorithm.Forward(hmm, observations, out expectedLogLikelihood);
double actualLogLikelihood;
double[,] actual = Accord.Statistics.Models.Fields.
ForwardBackwardAlgorithm.Forward(function.Factors[0], observations, 0, out actualLogLikelihood);
Assert.IsTrue(expected.IsEqual(actual, 1e-10));
Assert.AreEqual(expectedLogLikelihood, actualLogLikelihood, 1e-6);
Assert.IsFalse(Double.IsNaN(actualLogLikelihood));
}