Ejemplo n.º 1
0
        public void Repeat()
        {
            NFA nfa = NFA.Repeat(NFA.Sequence(NFA.Char('a'), NFA.Char('b')), 2);
            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.IsFalse(dfa.IsMatch("ab"));
            Assert.IsTrue(dfa.IsMatch("abab"));
            Assert.IsFalse(dfa.IsMatch("ababab"));
        }