Exemple #1
0
 def testDadoUmAFPodeAplicarFechamentoPositivoNoMesmo(self):
   afd1 = construirAFDQueGeraOSimboloA()
   afd_pos = util.obter_fechamento_positivo_af(afd1)
   self.assertEqual(len(afd_pos.obterEstados()), len(afd1.obterEstados()))
   self.assertFalse(util.sao_equivalentes_af(afd1, afd_pos))
   
   self.assertTrue(afd1.reconhecePalavra('a'))
   self.assertFalse(afd1.reconhecePalavra('aa'))
   self.assertTrue(afd_pos.reconhecePalavra('aa'))
   self.assertTrue(afd_pos.reconhecePalavra('aaa'))
   self.assertTrue(afd_pos.reconhecePalavra('a'))
   self.assertFalse(afd_pos.reconhecePalavra(EPSILON))
Exemple #2
0
 def testDadoUmAFDQueGeraApenasUmSimboloSabeQualEhASuaGramaticaRegularCorrespondente(self):
   gr1 = util.obter_gramatica_regular(construirAFDQueGeraOSimboloA())
   afd1  = util.obter_afd(gr1)
   afd2 = construirAFDQueGeraOSimboloA()
   
   self.assertTrue(util.sao_equivalentes_af(afd1, afd2))
Exemple #3
0
 def testPodeConstruirOAutomatoQueGeraUmDadoSimbolo(self):
   afd = construirAFDQueGeraOSimboloA()
   afd2 = util.gerar_automato_finito('a')
   afd3 = util.gerar_automato_finito('b')
   self.assertTrue(util.sao_equivalentes_af(afd, afd2))
   self.assertFalse(util.sao_equivalentes_af(afd, afd3))