Beispiel #1
0
 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")
Beispiel #2
0
   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")
Beispiel #3
0
   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")
Beispiel #4
0
   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")