public void TestProbabilityUnit01() {
var productions = new HashSet<Production> {
CFGParser.Production("<A> -> 'a'"),
CFGParser.Production("<A> -> <B>"),
CFGParser.Production("<B> -> 'b'"),
CFGParser.Production("<B> -> <A>"),
};
var g = new Grammar(productions, Nonterminal.Of("A"));
var h = g.ToCNF();
Helpers.IsNear(2.0 / 3, h.Cyk(Sentence.FromLetters("a")));
Helpers.IsNear(1.0 / 3, h.Cyk(Sentence.FromLetters("b")));
}
}