public void TestNullate01() {
PrivateType nullateClass = new PrivateType(typeof(CFGtoCNF));
var production = CFGParser.Production("<S> -> <A> 'b' <B> [1]");
var nullableDictionary = new Dictionary<Nonterminal, double> {
{ Nonterminal.Of("A"), 0.5 },
{ Nonterminal.Of("B"), 0.2 }
};
var actualList = (List<Production>)nullateClass.InvokeStatic("Nullate", new object[] { production, nullableDictionary });
var actual = new HashSet<string>(actualList.Select((p) => p.ToString()));
var expected = new HashSet<string> {
CFGParser.Production("<S> -> <A> 'b' <B> [0.4]").ToString(),
CFGParser.Production("<S> -> <A> 'b' [0.1]").ToString(),
CFGParser.Production("<S> -> 'b' <B> [0.4]").ToString(),
CFGParser.Production("<S> -> 'b' [0.1]").ToString(),
};
Assert.IsTrue(actual.SetEquals(expected));
}