Esempio n. 1
0
        public void StringMatchAutomatonBuilderTest2()
        {
            IFiniteAutomaton <char> finiteAutomaton = CreateFiniteAutomaton("ABCDABD");

            finiteAutomaton.AssertID(0);
            finiteAutomaton.AssertDegree(1);
            finiteAutomaton.AssertTransition('A', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('A');
            finiteAutomaton.AssertID(1);
            finiteAutomaton.AssertDegree(2);
            finiteAutomaton.AssertTransition('B', 2);
            finiteAutomaton.AssertTransition('A', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('B');
            finiteAutomaton.AssertID(2);
            finiteAutomaton.AssertDegree(2);
            finiteAutomaton.AssertTransition('C', 3);
            finiteAutomaton.AssertTransition('A', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('C');
            finiteAutomaton.AssertID(3);
            finiteAutomaton.AssertDegree(2);
            finiteAutomaton.AssertTransition('D', 4);
            finiteAutomaton.AssertTransition('A', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('D');
            finiteAutomaton.AssertID(4);
            finiteAutomaton.AssertDegree(1);
            finiteAutomaton.AssertTransition('A', 5);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('A');
            finiteAutomaton.AssertID(5);
            finiteAutomaton.AssertDegree(2);
            finiteAutomaton.AssertTransition('B', 6);
            finiteAutomaton.AssertTransition('A', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('B');
            finiteAutomaton.AssertID(6);
            finiteAutomaton.AssertDegree(3);
            finiteAutomaton.AssertTransition('D', 7);
            finiteAutomaton.AssertTransition('C', 3);
            finiteAutomaton.AssertTransition('A', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('D');
            finiteAutomaton.AssertID(7);
            finiteAutomaton.AssertDegree(1);
            finiteAutomaton.AssertTransition('A', 1);
            Assert.IsTrue(finiteAutomaton.IsStringAccepted);
        }
Esempio n. 2
0
        public void StringMatchAutomatonBuilderTest1()
        {
            IFiniteAutomaton <char> finiteAutomaton = CreateFiniteAutomaton("ababaca");

            finiteAutomaton.AssertID(0);
            finiteAutomaton.AssertDegree(1);
            finiteAutomaton.AssertTransition('a', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('a');
            finiteAutomaton.AssertID(1);
            finiteAutomaton.AssertDegree(2);
            finiteAutomaton.AssertTransition('b', 2);
            finiteAutomaton.AssertTransition('a', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('b');
            finiteAutomaton.AssertID(2);
            finiteAutomaton.AssertDegree(1);
            finiteAutomaton.AssertTransition('a', 3);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('a');
            finiteAutomaton.AssertID(3);
            finiteAutomaton.AssertDegree(2);
            finiteAutomaton.AssertTransition('b', 4);
            finiteAutomaton.AssertTransition('a', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('b');
            finiteAutomaton.AssertID(4);
            finiteAutomaton.AssertDegree(1);
            finiteAutomaton.AssertTransition('a', 5);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('a');
            finiteAutomaton.AssertID(5);
            finiteAutomaton.AssertDegree(3);
            finiteAutomaton.AssertTransition('c', 6);
            finiteAutomaton.AssertTransition('b', 4);
            finiteAutomaton.AssertTransition('a', 1);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('c');
            finiteAutomaton.AssertID(6);
            finiteAutomaton.AssertDegree(1);
            finiteAutomaton.AssertTransition('a', 7);
            Assert.IsFalse(finiteAutomaton.IsStringAccepted);
            finiteAutomaton.MakeTransition('a');
            finiteAutomaton.AssertID(7);
            finiteAutomaton.AssertDegree(2);
            finiteAutomaton.AssertTransition('a', 1);
            finiteAutomaton.AssertTransition('b', 2);
            Assert.IsTrue(finiteAutomaton.IsStringAccepted);
        }