public void PushTest()
{
var hmm = createModel();
var running = new RunningMarkovStatistics<MultivariateNormalDistribution>(hmm);
double[][][] sequences =
{
new[]
{
new double[] { 1, 2 },
new double[] { 6, 7 },
new double[] { 2, 3 },
},
new[]
{
new double[] { 2, 2 },
new double[] { 9, 8 },
new double[] { 1, 0 },
},
new[]
{
new double[] { 8, 7 },
new double[] { 9, 8 },
new double[] { 1, 0 }
}
};
for (int i = 0; i < sequences.Length; i++)
{
running.Clear();
double[][] sequence = sequences[i];
for (int j = 0; j < sequence.Length; j++)
running.Push(sequence[j]);
double actual = running.LogForward;
double expected = hmm.Evaluate(sequence);
Assert.AreEqual(expected, actual);
}
}