public void AutomataIsFiniteShouldReturnFalseWhenHasCycle() { // arrange State s1 = new State("S1"); State s2 = new State("S2"); State s3 = new State("S3"); Letter l1 = new Letter('a'); s3.isFinalState = true; s1.outgoingLetters.Add(l1); s2.outgoingLetters.Add(l1); s3.outgoingLetters.Add(l1); List <Transition> transitions = new List <Transition>() { new Transition(s1, s2, l1), new Transition(s2, s3, l1), new Transition(s2, s2, l1), new Transition(s2, s1, l1) }; IFiniteController finiteController = new FiniteController(new List <Trace>(), transitions); // act finiteController.InstantiateTraces(s1, s1, new List <Transition>()); var isFinite = finiteController.AutomataIsFinite(); // assert Assert.IsFalse(isFinite); }
public void InitializeAllTracesShouldCreateAllPossibleTraces() { // arrange State s1 = new State("S1"); State s2 = new State("S2"); State s3 = new State("S3"); s3.isFinalState = true; Letter l1 = new Letter('a'); List <Transition> transitions = new List <Transition>() { new Transition(s1, s2, l1), new Transition(s2, s3, l1) }; IFiniteController finiteController = new FiniteController(new List <Trace>(), transitions); // act finiteController.InstantiateTraces(s1, s1, new List <Transition>()); // assert Assert.IsTrue(((FiniteController)finiteController).traces.Count == 1); }
public void ExtractAllWordsFromAutomataShouldReturnAllWordsFromAutomata() { // arrange State s1 = new State("S1"); State s2 = new State("S2"); State s3 = new State("S3"); s3.isFinalState = true; Letter l1 = new Letter('a'); List <Transition> transitions = new List <Transition>() { new Transition(s1, s2, l1), new Transition(s2, s3, l1) }; IFiniteController finiteController = new FiniteController(new List <Trace>(), transitions); // act finiteController.InstantiateTraces(s1, s1, new List <Transition>()); var words = finiteController.ExtractAllWordsFromAutomata(); // assert Assert.AreEqual(words[0].word, "aa"); }