Ejemplo n.º 1
0
    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))
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
def teste_funcao_executar_informarUmCallableQueGeraNenhumErro():
    def gerarErro():
        raise Exception

    assert executar(gerarErro, -1) == -1
    assert executar(lambda: 1 / 0, 'erro') == 'erro'
Ejemplo n.º 4
0
def teste_funcao_executar_informarUmCallableQueNaoGeraNenhumErro():
    assert executar(lambda: max(4, 5)) == 5
    assert executar(lambda: 5) == 5
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    def remover(self, ligacao):
        i = executar(lambda: self._adjacentes.index(ligacao), -1)

        if i is not -1:
            del self._adjacentes[i - 1:i + 1]