def testSabeSePossuiRecursaoAEsquerdaDireta(self):
   self.assertTrue(construirGLCExpAritmeticaComRecEsquerdaDireta().possuiRecursaoAEsquerda())
예제 #2
0
 def testDadaUmaGLCComRecursaoAEsquerdaDiretaPodeRetornarUmaGLCSemRecursaoAEsquerda(self):
   glc_nok = construirGLCExpAritmeticaComRecEsquerdaDireta()
   self.assertTrue(glc_nok.possuiRecursaoAEsquerda())
   glc_nok = util.remover_recursao_esquerda_glc(glc_nok)
   self.assertFalse(glc_nok.possuiRecursaoAEsquerda())
 def testSabeQuandoNaoDerivaEpsilon(self):
   self.assertEqual(set(), construirGLCExpAritmeticaComRecEsquerdaDireta().obterNaoTerminaisQueDerivamEpsilon())
   self.assertEqual(set(), construirGLCComRecEsquerdaIndireta().obterNaoTerminaisQueDerivamEpsilon())
   self.assertEqual(set(), construirGLCQueNaoProduzEpsilon().obterNaoTerminaisQueDerivamEpsilon())
예제 #4
0
 def testDadaUmaGLCEpsilonLivreSeTransformarEmEpsilonLivreRetornaAMesmaGramatica(self):
   self.assertEqual(construirGLCComABOndeNumAsEhIgualNumBsEpsilonLivre(), util.transformar_em_epsilon_livre_glc(construirGLCComABOndeNumAsEhIgualNumBsEpsilonLivre()))
   self.assertEqual(construirGLCExpAritmeticaComRecEsquerdaDireta(), util.transformar_em_epsilon_livre_glc(construirGLCExpAritmeticaComRecEsquerdaDireta()))