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))
def testDadoUmAFDQueGeraApenasUmSimboloSabeQualEhASuaGramaticaRegularCorrespondente(self): gr1 = util.obter_gramatica_regular(construirAFDQueGeraOSimboloA()) afd1 = util.obter_afd(gr1) afd2 = construirAFDQueGeraOSimboloA() self.assertTrue(util.sao_equivalentes_af(afd1, afd2))
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))