def testDadoUmaProducaoQueNaoEhDaGramaticaRetornaNoneAoTentarObterNaoTerminaisDoBeta(self):
   vn = set(['S', 'V'])
   vt = set(['a', 'b', 'c'])
   s = 'S'
 
   producoes = set()
   producoes.add(Producao('S', 'a S V b'))
   producoes.add(Producao('S', EPSILON))
   
   glc1 = Gramatica(producoes, vn,vt,s)
   self.assertEqual(None, glc1.obterNaoTerminaisDoBeta(Producao('S', 'S V b')))
 def testDadoUmaProducaoDaGramaticaSabeInformarQuaisSaoOsNaoTerminaisExistentesNoBeta(self):
   vn = set(['S', 'V'])
   vt = set(['a', 'b', 'c'])
   s = 'S'
 
   producoes = set()
   producoes.add(Producao('S', 'a S V b'))
   producoes.add(Producao('S', EPSILON))
   
   glc1 = Gramatica(producoes, vn,vt,s)
   self.assertEqual(set(['S','V']), glc1.obterNaoTerminaisDoBeta(Producao('S', 'a S V b')))
 def testDadoUmaProducaoDaGramaticaSeNaoPossuiNaoTerminaisNoBetaRetornaVazioAoTentarObtelos(self):
   vn = set(['S', 'V'])
   vt = set(['a', 'b', 'c'])
   s = 'S'
 
   producoes = set()
   producoes.add(Producao('S', 'a S V b'))
   producoes.add(Producao('S', EPSILON))
   
   glc1 = Gramatica(producoes, vn,vt,s)
   self.assertEqual(set(), glc1.obterNaoTerminaisDoBeta(Producao('S', EPSILON)))