public void HiddenMarkovModelFunctionConstructorTest()
{
HiddenMarkovModel model = CreateModel1();
MarkovDiscreteFunction target = new MarkovDiscreteFunction(model);
var features = target.Features;
double[] weights = target.Weights;
Assert.AreEqual(features.Length, 12);
Assert.AreEqual(weights.Length, 12);
int k = 0;
for (int i = 0; i < model.States; i++)
Assert.AreEqual(model.Probabilities[i], weights[k++]);
for (int i = 0; i < model.States; i++)
for (int j = 0; j < model.States; j++)
Assert.AreEqual(model.Transitions[i, j], weights[k++]);
for (int i = 0; i < model.States; i++)
for (int j = 0; j < model.Symbols; j++)
Assert.AreEqual(model.Emissions[i, j], weights[k++]);
}