Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.lang.reflect.Array;
- public class UnitTests {
- public static void main(String[]args){
- testRemoveLeaf();
- testRemoveLeaf2();
- test1();
- test2();
- test3();
- }
- private static boolean testFindThrows(AVLTree tree, int key) {
- boolean threwException = false;
- try {
- tree.find(key);
- } catch ( AVLTreeException e ) {
- threwException = true;
- }
- return threwException;
- }
- private static void test1(){
- AVLTree<Integer> tree = new AVLTree<Integer>();
- tree.insert(6);
- tree.insert(10);
- tree.insert(4);
- tree.insert(5);
- tree.remove(10);
- assert testFindThrows(tree, 10) : "Test1: 10 not removed";
- assert tree.find(5) != null : "Test1: 5 was removed.";
- assert tree.find(6) != null : "Test1: 6 was removed.";
- assert tree.find(4) != null : "Test1: 4 was removed.";
- assert tree.getRoot().getElement() == 5 : "Test1: Root is not 5.";
- assert tree.getRoot().getLeft().getElement() == 4 : "Test1: Left child is not 4.";
- assert tree.getRoot().getRight().getElement() == 6 : "Test1: Right child is not 6.";
- assert tree.getNodeHeight(5) == 1 : "Test1: Height is not 1.";
- }
- private static void test2(){
- AVLTree<Integer> tree = new AVLTree<Integer>();
- tree.insert(6);
- tree.insert(10);
- tree.insert(4);
- tree.insert(15);
- tree.remove(4);
- assert testFindThrows(tree, 4) : "Test2: 4 not removed.";
- assert tree.find(6) != null : "Test2: 6 was removed.";
- assert tree.find(10) != null : "Test2: 10 was removed.";
- assert tree.find(15) != null : "Test2: 15 was removed.";
- assert tree.getRoot().getElement() == 10 : "Test2: Root is not 10.";
- assert tree.getRoot().getLeft().getElement() == 6 : "Test2: Left child is not 6.";
- assert tree.getRoot().getRight().getElement() == 15 : "Test2: Right child is not 15.";
- assert tree.getNodeHeight(10) == 1 : "Test2: Height is not 1.";
- }
- private static void test3(){
- AVLTree<Integer> tree = new AVLTree<Integer>();
- Integer[] inputs = {1,9,1,4,1,11,1,2,1,6,1,10,1,12,1,1,1,3,1,5,1,7,1,13,1,8};
- for(Integer key : inputs)
- tree.insert(key);
- tree.remove(9);
- assert testFindThrows(tree, 9) : "Test3: 9 was not removed";
- assert tree.getNodeHeight(6) == 3 : "Test3: The tree height is not correct!";
- assert tree.getRoot().getElement() == 6 : "Test3: The root is not 6.";
- assert tree.getRoot().getLeft().getElement() == 4 : "Test3: root > left is not 4.";
- assert tree.getRoot().getLeft().getLeft().getElement() == 2 : "Test3: root > left > left is not 2.";
- assert tree.getRoot().getLeft().getRight().getElement() == 5 : "Test3 : root > left > right is not 5";
- assert tree.getRoot().getLeft().getLeft().getLeft().getElement() == 1 : "Test3: root > left > left > left is not 1";
- assert tree.getRoot().getLeft().getLeft().getRight().getElement() == 3 : "Test3: root > left > left > right is not 3";
- assert tree.getRoot().getRight().getElement() == 10 : "Test3: root > right is not 10";
- assert tree.getRoot().getRight().getLeft().getElement() == 7 : "Test3: root > right > left is not 7";
- assert tree.getRoot().getRight().getLeft().getRight().getElement() == 8 : "Test3: root > right > left > right is not 8";
- assert tree.getRoot().getRight().getRight().getElement() == 12 : "Test3: root > right > right is not 12";
- assert tree.getRoot().getRight().getRight().getLeft().getElement() == 11 : "Test3: root > right > right > left is not 11";
- assert tree.getRoot().getRight().getRight().getRight().getElement() == 13 : "Test3: root > right > right > right is not 13";
- }
- private static void testRemoveLeaf(){
- AVLTree<Integer> tree = new AVLTree<Integer>();
- tree.insert(6);
- tree.insert(10);
- tree.insert(4);
- tree.insert(5);
- tree.remove(5);
- assert testFindThrows(tree, 5) : "TestRemoveLeaf: 5 not removed.";
- assert tree.find(6) != null : "TestRemoveLeaf: 6 was removed.";
- assert tree.find(10) != null : "TestRemoveLeaf: 10 was removed.";
- assert tree.find(4) != null : "TestRemoveLeaf: 4 was removed.";
- assert tree.getRoot().getElement() == 6 : "TestRemoveLeaf: Root is not 6.";
- assert tree.getRoot().getLeft().getElement() == 4 : "TestRemoveLeaf: Left child is not 4.";
- assert tree.getRoot().getRight().getElement() == 10 : "TestRemoveLeaf: Right child is not 10.";
- assert tree.getNodeHeight(6) == 1 : "TestRemoveLeaf: Height is not 1.";
- }
- private static void testRemoveLeaf2(){
- AVLTree<Integer> tree = new AVLTree<Integer>();
- tree.insert(6);
- tree.insert(10);
- tree.insert(4);
- tree.insert(5);
- tree.remove(4);
- assert testFindThrows(tree, 4) : "TestRemoveLeaf2: 4 not removed.";
- assert tree.find(6) != null : "TestRemoveLeaf2: 6 was removed.";
- assert tree.find(10) != null : "TestRemoveLeaf2: 10 was removed.";
- assert tree.find(5) != null : "TestRemoveLeaf2: 5 was removed.";
- assert tree.getRoot().getElement() == 6 : "TestRemoveLeaf2: Root is not 6.";
- assert tree.getRoot().getLeft().getElement() == 5 : "TestRemoveLeaf2: Left child is not 5.";
- assert tree.getRoot().getRight().getElement() == 10 : "TestRemoveLeaf2: Right child is not 10.";
- assert tree.getNodeHeight(6) == 1 : "TestRemoveLeaf2: Height is not 1.";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement