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); }
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); }