private static void TestGrammar(CNFGrammar rg) {
Console.WriteLine("=====================");
for (int i = 0; i < 5; i++) {
var swps = rg.ProduceToDepth(i);
Console.WriteLine("------Depth {0}------", i);
foreach (var swp in swps) {
var actual = rg.Cyk(swp.Value);
var expected = swp.Probability;
if (actual < expected) {
Console.WriteLine("{0}, {1}", actual, expected);
Console.WriteLine(rg);
Console.WriteLine(swp);
}
// Console.WriteLine(swp.Sentence.AsTerminals());
// Console.WriteLine(sentence);
}
}
}
}