Skip to content

Instantly share code, notes, and snippets.

@mgiagante
Created May 11, 2016 19:33
Show Gist options
  • Save mgiagante/c19574abbb1e208c8f3fa37114fb6d20 to your computer and use it in GitHub Desktop.
Save mgiagante/c19574abbb1e208c8f3fa37114fb6d20 to your computer and use it in GitHub Desktop.
package tp04.ejercicio1;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class ArbolBinarioTest {
private ArbolBinario<Integer> arbolBinarioTest;
@Before
public void setUp() throws Exception {
}
@Test
public void testCompletoConArbolCompleto() {
//Construye el siguiente arbol binario completo desde abajo hacia arriba.
/*
|5|
|8| |2|
|10| |2| |3| |1|
*/
//Instanciacion del subarbol izquierdo.
ArbolBinario<Integer> hijoIzqDelSubArbolIzq = new ArbolBinario<Integer>(10);
ArbolBinario<Integer> hijoDerDelSubArbolIzq = new ArbolBinario<Integer>(2);
ArbolBinario<Integer> subArbolIzq = new ArbolBinario<Integer>(8);
subArbolIzq.agregarHijoIzquierdo(hijoIzqDelSubArbolIzq);
subArbolIzq.agregarHijoDerecho(hijoDerDelSubArbolIzq);
//Instanciacion del subarbol derecho.
ArbolBinario<Integer> hijoIzqDelSubArbolDer = new ArbolBinario<Integer>(3);
ArbolBinario<Integer> hijoDerDelSubArbolDer = new ArbolBinario<Integer>(1);
ArbolBinario<Integer> subArbolDer = new ArbolBinario<Integer>(2);
subArbolDer.agregarHijoIzquierdo(hijoIzqDelSubArbolDer);
subArbolDer.agregarHijoDerecho(hijoDerDelSubArbolDer);
//Instanciacion de la raiz
ArbolBinario<Integer> raiz = new ArbolBinario<Integer>(5);
raiz.agregarHijoIzquierdo(subArbolIzq);
raiz.agregarHijoDerecho(subArbolDer);
arbolBinarioTest = raiz;
assertTrue(arbolBinarioTest.completo()); //Deberia considerarlo completo.
}
@Test
public void testCompletoConArbolVacio() {
ArbolBinario<Integer> arbolBinarioTest = new ArbolBinario<Integer>(null);
assertFalse(arbolBinarioTest.completo()); //No deberia considerarlo completo.
}
@Test
public void testCompletoConArbolNoLleno() {
//Instanciacion del subarbol derecho.
ArbolBinario<Integer> hijoIzqDelSubArbolDer = new ArbolBinario<Integer>(3);
ArbolBinario<Integer> hijoDerDelSubArbolDer = new ArbolBinario<Integer>(1);
ArbolBinario<Integer> subArbolDer = new ArbolBinario<Integer>(2);
subArbolDer.agregarHijoIzquierdo(hijoIzqDelSubArbolDer);
subArbolDer.agregarHijoDerecho(hijoDerDelSubArbolDer);
//Instanciacion de la raiz
ArbolBinario<Integer> raiz = new ArbolBinario<Integer>(5);
raiz.agregarHijoDerecho(subArbolDer);
arbolBinarioTest = raiz;
assertFalse(arbolBinarioTest.completo());
}
@Test
public void testCompletoConArbolNoCompletadoDeIzqADer() {
//Instanciacion del subarbol izquierdo.
ArbolBinario<Integer> hijoIzqDelSubArbolIzq = new ArbolBinario<Integer>(10);
ArbolBinario<Integer> hijoDerDelSubArbolIzq = new ArbolBinario<Integer>(2);
ArbolBinario<Integer> subArbolIzq = new ArbolBinario<Integer>(8);
subArbolIzq.agregarHijoIzquierdo(hijoIzqDelSubArbolIzq);
subArbolIzq.agregarHijoDerecho(hijoDerDelSubArbolIzq);
//Instanciacion del subarbol derecho.
ArbolBinario<Integer> hijoDerDelSubArbolDer = new ArbolBinario<Integer>(1);
ArbolBinario<Integer> subArbolDer = new ArbolBinario<Integer>(2);
subArbolDer.agregarHijoDerecho(hijoDerDelSubArbolDer);
//Instanciacion de la raiz
ArbolBinario<Integer> raiz = new ArbolBinario<Integer>(5);
raiz.agregarHijoIzquierdo(subArbolIzq);
raiz.agregarHijoDerecho(subArbolDer);
//Instanciacion del arbol binario
arbolBinarioTest = raiz;
assertFalse(arbolBinarioTest.completo());
}
public void testCompletoConArbolCompletadoDeIzqADer() {
//Instanciacion del subarbol izquierdo.
ArbolBinario<Integer> hijoIzqDelSubArbolIzq = new ArbolBinario<Integer>(10);
ArbolBinario<Integer> hijoDerDelSubArbolIzq = new ArbolBinario<Integer>(2);
ArbolBinario<Integer> subArbolIzq = new ArbolBinario<Integer>(8);
subArbolIzq.agregarHijoIzquierdo(hijoIzqDelSubArbolIzq);
subArbolIzq.agregarHijoDerecho(hijoDerDelSubArbolIzq);
//Instanciacion del subarbol derecho.
ArbolBinario<Integer> hijoIzqDelSubArbolDer = new ArbolBinario<Integer>(3);
ArbolBinario<Integer> subArbolDer = new ArbolBinario<Integer>(2);
subArbolDer.agregarHijoIzquierdo(hijoIzqDelSubArbolDer);
//Instanciacion de la raiz
ArbolBinario<Integer> raiz = new ArbolBinario<Integer>(5);
raiz.agregarHijoIzquierdo(subArbolIzq);
raiz.agregarHijoDerecho(subArbolDer);
//Instanciacion del arbol binario
arbolBinarioTest = raiz;
assertTrue(arbolBinarioTest.completo()); //Deberia considerarlo completo.
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment