public void LogForwardGesturesPriorsDeoptimizedTest()
{
int[] labels;
double[][][] words;
var classifier = IndependentMarkovFunctionTest.CreateModel4(out words, out labels, true);
var deopFun = new MarkovMultivariateFunction(classifier);
deopFun.Deoptimize();
var target1 = new HiddenConditionalRandomField<double[]>(deopFun);
var function = new MarkovMultivariateFunction(classifier);
var target2 = new HiddenConditionalRandomField<double[]>(function);
foreach (var word in words)
{
for (int c = 0; c < 3; c++)
{
for (int y = 0; y < 3; y++)
{
var actual = Accord.Statistics.Models.Fields.ForwardBackwardAlgorithm
.LogForward(target1.Function.Factors[c], word, y);
var expected = Accord.Statistics.Models.Fields.ForwardBackwardAlgorithm
.LogForward(target2.Function.Factors[c], word, y);
for (int i = 0; i < actual.GetLength(0); i++)
{
for (int j = 0; j < actual.GetLength(1); j++)
{
double a = actual[i, j];
double e = expected[i, j];
Assert.IsTrue(e.IsRelativelyEqual(a, 0.1));
}
}
}
}
}
}