public void CompleteSimple() { // We build a DFA that accepts a* // And we complete it over { a, b } var dfa = new Dfa <char, char>(); dfa.InitialState = 'q'; dfa.AcceptingStates.Add('q'); dfa.AddTransition('q', 'a', 'q'); dfa.Alphabet.Add('b'); Assert.True(dfa.Complete('t')); var expectedStates = new[] { 'q', 't' }.ToHashSet(); Assert.True(expectedStates.SetEquals(dfa.States)); Assert.Equal(4, dfa.Transitions.Count); AssertTransition(dfa, 'q', 'a', 'q'); AssertTransition(dfa, 'q', 'b', 't'); AssertTransition(dfa, 't', 'a', 't'); AssertTransition(dfa, 't', 'b', 't'); }