Esempio n. 1
0
        public void EqualityTest6() //   balanced parenthesis
        {
            String             sg1 = "S -> S S|(S)|";
            String             sg2 = "X -> | X X | (L    L->X) | X X)";
            ContextFreeGrammar g1  = GrammarParser <char> .Parse(f1, sg1);

            ContextFreeGrammar g2 = GrammarParser <char> .Parse(f1, sg2);

            var res = GrammarUtilities.findDifferenceWithTimelimit(g1, g2, true, 100);

            Assert.IsTrue(res.Item2.Count == 0 && res.Item3.Count == 0);
        }
Esempio n. 2
0
        public void EqualityTest5() //   (a|b)^n
        {
            String             sg1 = "S -> a|b|aa|aS|bS|bbbbS";
            String             sg2 = "S->X|X S   X->a|b";
            ContextFreeGrammar g1  = GrammarParser <char> .Parse(f1, sg1);

            ContextFreeGrammar g2 = GrammarParser <char> .Parse(f1, sg2);

            var res = GrammarUtilities.findDifferenceWithTimelimit(g1, g2, true, 100);

            Assert.IsTrue(res.Item2.Count == 0 && res.Item3.Count == 0);
        }
Esempio n. 3
0
        public void EqualityTest4() //   (a|b|c|d|e|f|g|h|i|j)*
        {
            String             sg1 = "S->|a|b|c|d|e|f|g|h|i|j|S S";
            String             sg2 = "S->X|X S|   X->a|b|c|d|e|f|g|h|i|j";
            ContextFreeGrammar g1  = GrammarParser <char> .Parse(f1, sg1);

            ContextFreeGrammar g2 = GrammarParser <char> .Parse(f1, sg2);

            var res = GrammarUtilities.findDifferenceWithTimelimit(g1, g2, true, 50);

            Assert.IsTrue(res.Item2.Count == 0 && res.Item3.Count == 0);
        }
Esempio n. 4
0
        public void EqualityTest3() //   a^n b^n
        {
            String             sg1 = "S->aT T->aT U|b U->b";
            String             sg2 = "P->aR R->abb|aRb|b";
            ContextFreeGrammar g1  = GrammarParser <char> .Parse(f1, sg1);

            ContextFreeGrammar g2 = GrammarParser <char> .Parse(f1, sg2);

            var res = GrammarUtilities.findDifferenceWithTimelimit(g1, g2, true, 100);

            Assert.IsTrue(res.Item2.Count == 0 && res.Item3.Count == 0);
        }
Esempio n. 5
0
        public void EqualityTest2()
        {
            String             sg1 = "S->aSb|absjjfhghs|";
            String             sg2 = "S->aSb|aaSbb|";
            ContextFreeGrammar g1  = GrammarParser <char> .Parse(f1, sg1);

            ContextFreeGrammar g2 = GrammarParser <char> .Parse(f1, sg2);

            var res = GrammarUtilities.findDifferenceWithTimelimit(g1, g2, true, 100);

            Assert.IsTrue(res.Item2[0].Equals("absjjfhghs") && res.Item3.Count == 0);
        }
Esempio n. 6
0
        public void EqualityTest7() //   empty grammars and invariants
        {
            String             sg1 = "S -> S S|(S)|";
            ContextFreeGrammar g1  = GrammarParser <char> .Parse(f1, sg1);

            var res = GrammarUtilities.findDifferenceWithTimelimit(g1, null, true, 25);

            Assert.IsTrue(res.Item1 == 0 && res.Item2.Count > 0 && res.Item3.Count == 0);
            res = GrammarUtilities.findDifferenceWithTimelimit(null, g1, true, 25);
            Assert.IsTrue(res.Item1 == 0 && res.Item2.Count == 0 && res.Item3.Count > 0);
            res = GrammarUtilities.findDifferenceWithTimelimit(g1, g1, true, 25);
            Assert.IsTrue(res.Item1 > 0 && res.Item2.Count == 0 && res.Item3.Count == 0);
            res = GrammarUtilities.findDifferenceWithTimelimit(null, null, true, 30);
            Assert.IsTrue(res.Item1 == 0 && res.Item2.Count == 0 && res.Item3.Count == 0);
        }