def iraDispararUmErroSeOPaiJaPossuir2Filhos(): numeros = ArvoreBinaria() numeros.inserir(0) numeros.inserir(1, 0) numeros.inserir(2, 0) with raises(FalhaNaOperacao): numeros.inserir(3, 0)
def testes_daPropiedade_tamanho_aposInserirAlgunsItens(): numeros = ArvoreBinaria() numeros.inserir(0) assert numeros.tamanho == 1 numeros.inserir(1, 0) numeros.inserir(2, 0) assert numeros.tamanho == 3 numeros.inserir(3, 1) numeros.inserir(4, 1) assert numeros.tamanho == 5 numeros.inserir(None, 4) assert numeros.tamanho == 6
def main(): """ Quando temos uma árvore, e precisamos navegar nessa árvore de maneira organizada, podemos usar um Visitor Permitir atualizações específicas em uma coleção de objetos de acordo com o tipo particular de cada objeto atualizado. Representar uma operação a ser executada nos elementos de uma estrutura de objetos. Visitor permite definir uma nova operação sem mudar as classes dos elementos sobre os quais opera. """ arvore = ArvoreBinaria(7) arvore.inserir(15) arvore.inserir(10) arvore.inserir(5) arvore.inserir(2) arvore.inserir(1) arvore.inserir(20) print("=== Exibindo em ordem ===") arvore.aceitar_visitante(ExibirInOrderVisitor()) print("\n=== Exibindo pré ordem ===") arvore.aceitar_visitante(ExibirPreOrderVisitor()) print("\n=== Exibindo pós ordem ===") arvore.aceitar_visitante(ExibirPostOrderVisitor())
def teste_IteradorPosFixado_iterarSobreUmaArvoreVazia(): with naoGeraErro(): for n in ArvoreBinaria(): pass
def iraDispararUmErroSeOPaiNaoForLocalizado(): num = ArvoreBinaria() num.inserir(0) with raises(ItemNaoEncontrado): num.inserir(1, 1)
def iraDispararUmErroSeOPaiNaoForInformadoEAArvoreNaoEstiverVazia(): a = ArvoreBinaria() a.inserir(0) with raises(ParametroNaoInformado): a.inserir(1)
def arvorePronta(): arv = ArvoreBinaria() arv.inserir(0) arv.inserir(1, 0) arv.inserir(2, 0) arv.inserir(3, 1) arv.inserir(4, 1) arv.inserir(None, 4) arv.inserir(5, 2) arv.inserir(6, 2) arv.inserir(7, 5) return arv
def definiraARaizDaArvoreSeOPaiNaoForInformadoEAArvoreEstiverVazia(): a = ArvoreBinaria() a.inserir(0) assert a.raiz == 0
def testes_metodo_inserir(): numeros = ArvoreBinaria() numeros.inserir(0) numeros.inserir(1, 0) numeros.inserir(2, 0) assert numeros.filhos(0) == (1, 2) assert numeros.pai(1) == numeros.pai(2) == 0 numeros.inserir(3, 1) numeros.inserir(4, 1) assert numeros.filhos(1) == (3, 4) assert numeros.pai(3) == numeros.pai(4) == 1 numeros.inserir(None, 4) assert numeros.filhos(4) == (None, ) assert numeros.pai(None) == 4 numeros.inserir(5, 2) numeros.inserir(6, 2) assert numeros.filhos(2) == (5, 6) assert numeros.pai(5) == numeros.pai(6) == 2