Пример #1
0
        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));
        }
Пример #2
0
        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));
        }