public void TestGetSequenceProbabilityForBigramModel()
{
var model = new NGramModel(Bigram);
model.AddSentence(Text1.Split(null).ToList());
model.AddSentence(Text2.Split(null).ToList());
model.AddSentence(Text3.Split(null).ToList());
double actual = model.GetSentenceProbability("I", "am", "Sam");
double expected = .111;
Assert.AreEqual(expected, Math.Round(actual, 3));
actual = model.GetSentenceProbability("Sam", "I", "am");
expected = .056;
Assert.AreEqual(expected, Math.Round(actual, 3));
actual = model.GetSentenceProbability("I", "do", "not", "like", "green", "eggs", "and", "ham");
expected = .222;
Assert.AreEqual(expected, Math.Round(actual, 3));
actual = model.GetSentenceProbability("I", "am", "Sam", "I", "am");
expected = .037;
Assert.AreEqual(expected, Math.Round(actual, 3));
actual = model.GetSentenceProbability("I", "am");
expected = .222;
Assert.AreEqual(expected, Math.Round(actual, 3));
actual = model.GetSentenceProbability("I", "am", "the");
expected = .0;
Assert.AreEqual(expected, actual);
}