public void TestGetNullable03() {
var productions = new HashSet<Production> {
CFGParser.Production("<A> -> <B> <C>"),
CFGParser.Production("<B> -> <C>"),
CFGParser.Production("<B> -> 'b'"),
CFGParser.Production("<B> -> ε"),
CFGParser.Production("<C> -> <B>"),
CFGParser.Production("<C> -> 'c'"),
CFGParser.Production("<C> -> ε"),
};
var result = (Dictionary<Nonterminal, double>)nullableClass.InvokeStatic("GetNullable", new object[] { productions });
Assert.IsTrue(result.Count == 3);
Helpers.AssertNear(0.25, result[Nonterminal.Of("A")]);
Helpers.AssertNear(0.5, result[Nonterminal.Of("B")]);
Helpers.AssertNear(0.5, result[Nonterminal.Of("C")]);
}