public void Plus() { NFA nfa = NFA.Plus(NFA.Sequence(NFA.Char('a'), NFA.Char('b'))); DFA dfa = nfa.ToDfa(); Assert.IsFalse(dfa.IsMatch("")); Assert.IsFalse(dfa.IsMatch("a")); Assert.IsFalse(dfa.IsMatch("b")); Assert.IsFalse(dfa.IsMatch("aa")); Assert.IsFalse(dfa.IsMatch("bb")); Assert.IsFalse(dfa.IsMatch("ba")); Assert.IsFalse(dfa.IsMatch("cc")); Assert.IsFalse(dfa.IsMatch("aaa")); Assert.IsFalse(dfa.IsMatch("aba")); Assert.IsFalse(dfa.IsMatch("abb")); Assert.IsTrue(dfa.IsMatch("ab")); Assert.IsTrue(dfa.IsMatch("abab")); Assert.IsTrue(dfa.IsMatch("ababab")); }