def testCriaUmaCopiaDoConjuntoDeProducoesInformados(self): vn = set(['S', 'V']) vt = set(['a', 'b', 'c']) s = 'S' producoes = set() producoes.add(Producao('S', 'aV')) producoes.add(Producao('V', 'b')) g1 = GramaticaRegular(producoes, vn,vt,s) self.assertEqual(producoes, g1.obterProducoes()) producoes.pop() self.assertNotEqual(producoes, g1.obterProducoes())
def testDadoUmNaoTerminalQueNaoExisteNaGramaticaSeTentarObterProducoesRetornaConjuntoVazio(self): vn = set(['S', 'V']) vt = set(['a', 'b', 'c']) s = 'S' producoes_s = set([Producao('S', 'aV'), Producao('S', 'b')]) producoes_v = set([Producao('V', 'aS'), Producao('V', 'c')]) producoes = set() producoes.update(producoes_s) producoes.update(producoes_v) gramatica = GramaticaRegular(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', 'aV'), Producao('S', 'b')]) producoes_v = set([Producao('V', 'aS'), Producao('V', 'c')]) producoes = set() producoes.update(producoes_s) producoes.update(producoes_v) gramatica = GramaticaRegular(producoes, vn,vt,s) self.assertEqual(producoes_s, gramatica.obterProducoesDoAlpha('S')) self.assertEqual(producoes_v, gramatica.obterProducoesDoAlpha('V'))