def testDadoUmNaoTerminalQueNaoExisteNaGramaticaSeTentarObterProducoesRetornaConjuntoVazio(self):
   vn = set(['S', 'V'])
   vt = set(['a', 'b', 'c'])
   s = 'S'
   producoes_s = set([Producao('S', 'a V'), Producao('S', 'b')])
   producoes_v = set([Producao('V', 'a S'), Producao('V', 'c')])
   producoes = set()
   producoes.update(producoes_s)
   producoes.update(producoes_v)
   
   gramatica = GramaticaLivreContexto(producoes, vn,vt,s)
   self.assertEqual(set(), gramatica.obterProducoesDoAlpha('T'))
 def testDadoUmNaoTerminalSabeQuaisSaoAsProducoesDesseNaoTerminal(self):
   vn = set(['S', 'V'])
   vt = set(['a', 'b', 'c'])
   s = 'S'
   producoes_s = set([Producao('S', 'a V'), Producao('S', 'b')])
   producoes_v = set([Producao('V', 'a S'), Producao('V', 'c')])
   producoes = set()
   producoes.update(producoes_s)
   producoes.update(producoes_v)
   
   gramatica = GramaticaLivreContexto(producoes, vn,vt,s)
   self.assertEqual(producoes_s, gramatica.obterProducoesDoAlpha('S'))
   self.assertEqual(producoes_v, gramatica.obterProducoesDoAlpha('V'))