def testCloncat(self): a = epsilon_nfa.symbol("a") b = epsilon_nfa.symbol("b") aAndB = epsilon_nfa.concat(a, b).toDFA() self.assert_(not aAndB.accepts()) aAndB.run("a") self.assert_(not aAndB.accepts()) aAndB.run("b") self.assert_(aAndB.accepts()) self.assertRaises(Exception, aAndB.run, "a") aAndB.reset() self.assert_(not aAndB.accepts()) self.assertRaises(Exception, aAndB.run, "b") self.assertRaises(Exception, aAndB.run, "a") aAndB = epsilon_nfa.concat(b, a).toDFA() self.assert_(not aAndB.accepts()) aAndB.run("b") self.assert_(not aAndB.accepts()) aAndB.run("a") self.assert_(aAndB.accepts()) self.assertRaises(Exception, aAndB.run, "a") aAndB.reset() self.assert_(not aAndB.accepts()) self.assertRaises(Exception, aAndB.run, "a") self.assertRaises(Exception, aAndB.run, "b")
def testAlt(self): a = epsilon_nfa.symbol("a") b = epsilon_nfa.symbol("b") aOrB = epsilon_nfa.alt(a, b).toDFA() self.assert_(not aOrB.accepts()) aOrB.run("a") self.assert_(aOrB.accepts()) self.assertRaises(Exception, aOrB.run, "b") aOrB.reset() self.assert_(not aOrB.accepts()) aOrB.run("b") self.assert_(aOrB.accepts()) self.assertRaises(Exception, aOrB.run, "b") aOrB = epsilon_nfa.alt(b, a).toDFA() self.assert_(not aOrB.accepts()) aOrB.run("a") self.assert_(aOrB.accepts()) self.assertRaises(Exception, aOrB.run, "a") aOrB.reset() self.assert_(not aOrB.accepts()) aOrB.run("b") self.assert_(aOrB.accepts()) self.assertRaises(Exception, aOrB.run, "a")
def testSymbol(self): dfa = epsilon_nfa.symbol("a").toDFA() self.assert_(not dfa.accepts()) dfa.run("a") self.assert_(dfa.accepts()) self.assertRaises(Exception, dfa.run, "a") dfa = epsilon_nfa.symbol("a").toDFA() self.assert_(not dfa.accepts()) self.assertRaises(Exception, dfa.run, "b") dfa = epsilon_nfa.symbol("").toDFA() self.assert_(not dfa.accepts()) dfa.run("") self.assert_(dfa.accepts()) self.assertRaises(Exception, dfa.run, "a") dfa = epsilon_nfa.symbol(None).toDFA() self.assert_(dfa.accepts()) self.assertRaises(Exception, dfa.run, "c")
def testKleene(self): a = epsilon_nfa.symbol("a") aStar = epsilon_nfa.kleene(a).toDFA() self.assert_(aStar.accepts()) aStar.run("a") self.assert_(aStar.accepts()) aStar.run("a") self.assert_(aStar.accepts()) aStar.run("a") self.assert_(aStar.accepts()) aStar.run("a") self.assertRaises(Exception, aStar.run, "b")