public void ForwardBackwardTest()
{
HiddenMarkovModel hmm = CreateModel1();
// G G C A
int[] observations = { 2, 2, 1, 0 };
double fwdLogLikelihood;
double[,] fwd = ForwardBackwardAlgorithm.Forward(hmm, observations, out fwdLogLikelihood);
double bwdLogLikelihood;
double[,] bwd = ForwardBackwardAlgorithm.Backward(hmm, observations, out bwdLogLikelihood);
Assert.AreEqual(fwdLogLikelihood, bwdLogLikelihood, 1e-10); // -5.5614629361549142
}