public void FindAllTerminals() { var cfgCore = CFGCoreGenerator.Generate(); var actual = cfgCore.FindAllTerminals(); var expected = new HashSet <Symbol> { Symbol.Of <TermA>(), Symbol.Of <TermB>() }; Assert.IsTrue(expected.SetEquals(actual)); }
public void FindFirsts() { var actual = CFGCoreGenerator.Generate().FindFirsts(); var expected = new Dictionary <Symbol, HashSet <Symbol> > { { Symbol.Of <TermA>(), new HashSet <Symbol> { Symbol.Of <TermA>() } }, { Symbol.Of <TermB>(), new HashSet <Symbol> { Symbol.Of <TermB>() } }, { Symbol.Of <A>(), new HashSet <Symbol> { Symbol.Of <TermA>(), Symbol.Of <TermB>() } }, { Symbol.Of <B>(), new HashSet <Symbol> { Symbol.Of <TermA>(), Symbol.Of <TermB>() } } }; Assert.IsTrue(expected.DictionaryEquals(actual)); }