def ligacoes(self, a, b): """Retorna uma tupla contendo todas as ligações de a para b. Se a ou b não for localizado será retornada uma tupla vazia. """ a = executar(lambda: self._vertice(a), None) b = executar(lambda: self._vertice(b), None) if a is None or b is None: return tuple() return tuple(_ligacoes(a, b))
def eUmaArvoreAVL(arvore): for numero in arvore: esquerdo = executar(lambda: arvore.filhoEsquerdo(numero)) alturaEsquerdo = -1 if esquerdo is None else arvore.altura(esquerdo) direito = executar(lambda: arvore.filhoDireito(numero)) alturaDireito = -1 if direito is None else arvore.altura(direito) if esquerdo is not None and esquerdo > numero: return False if direito is not None and direito < numero: return False return abs(alturaEsquerdo - alturaDireito) <= 1 return True
def teste_funcao_executar_informarUmCallableQueGeraNenhumErro(): def gerarErro(): raise Exception assert executar(gerarErro, -1) == -1 assert executar(lambda: 1 / 0, 'erro') == 'erro'
def teste_funcao_executar_informarUmCallableQueNaoGeraNenhumErro(): assert executar(lambda: max(4, 5)) == 5 assert executar(lambda: 5) == 5
def desligar(self, vertice): i = executar(lambda: self._adjacentes.index(vertice), -1) while i is not -1: del self._adjacentes[i:i + 2] i = executar(lambda: self._adjacentes.index(vertice), -1)
def remover(self, ligacao): i = executar(lambda: self._adjacentes.index(ligacao), -1) if i is not -1: del self._adjacentes[i - 1:i + 1]