Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.71 KB | None | 0 0
  1. import java.lang.reflect.Array;
  2.  
  3. public class UnitTests {
  4.     public static void main(String[]args){
  5.         testRemoveLeaf();
  6.         testRemoveLeaf2();
  7.         test1();
  8.         test2();
  9.         test3();
  10.     }
  11.  
  12.     private static boolean testFindThrows(AVLTree tree, int key) {
  13.         boolean threwException = false;
  14.         try {
  15.             tree.find(key);
  16.         } catch ( AVLTreeException e ) {
  17.             threwException = true;
  18.         }
  19.         return threwException;
  20.     }
  21.  
  22.     private static void test1(){
  23.         AVLTree<Integer> tree = new AVLTree<Integer>();
  24.         tree.insert(6);
  25.         tree.insert(10);
  26.         tree.insert(4);
  27.         tree.insert(5);
  28.  
  29.         tree.remove(10);
  30.  
  31.         assert testFindThrows(tree, 10) : "Test1: 10 not removed";
  32.  
  33.         assert tree.find(5) != null : "Test1: 5 was removed.";
  34.         assert tree.find(6) != null : "Test1: 6 was removed.";
  35.         assert tree.find(4) != null : "Test1: 4 was removed.";
  36.  
  37.         assert tree.getRoot().getElement() == 5 : "Test1: Root is not 5.";
  38.  
  39.         assert tree.getRoot().getLeft().getElement() == 4 : "Test1: Left child is not 4.";
  40.         assert tree.getRoot().getRight().getElement() == 6 : "Test1: Right child is not 6.";
  41.  
  42.         assert tree.getNodeHeight(5) == 1 : "Test1: Height is not 1.";
  43.     }
  44.  
  45.     private static void test2(){
  46.         AVLTree<Integer> tree = new AVLTree<Integer>();
  47.         tree.insert(6);
  48.         tree.insert(10);
  49.         tree.insert(4);
  50.         tree.insert(15);
  51.  
  52.         tree.remove(4);
  53.  
  54.         assert testFindThrows(tree, 4) : "Test2: 4 not removed.";
  55.  
  56.         assert tree.find(6) != null : "Test2: 6 was removed.";
  57.         assert tree.find(10) != null : "Test2: 10 was removed.";
  58.         assert tree.find(15) != null : "Test2: 15 was removed.";
  59.  
  60.         assert tree.getRoot().getElement() == 10 : "Test2: Root is not 10.";
  61.  
  62.         assert tree.getRoot().getLeft().getElement() == 6 : "Test2: Left child is not 6.";
  63.         assert tree.getRoot().getRight().getElement() == 15 : "Test2: Right child is not 15.";
  64.  
  65.         assert tree.getNodeHeight(10) == 1 : "Test2: Height is not 1.";
  66.     }
  67.  
  68.     private static void test3(){
  69.         AVLTree<Integer> tree = new AVLTree<Integer>();
  70.         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};
  71.  
  72.         for(Integer key : inputs)
  73.             tree.insert(key);
  74.  
  75.         tree.remove(9);
  76.  
  77.         assert testFindThrows(tree, 9) : "Test3: 9 was not removed";
  78.  
  79.         assert tree.getNodeHeight(6) == 3 : "Test3: The tree height is not correct!";
  80.  
  81.         assert tree.getRoot().getElement() == 6 : "Test3: The root is not 6.";
  82.  
  83.         assert tree.getRoot().getLeft().getElement() == 4 : "Test3: root > left is not 4.";
  84.         assert tree.getRoot().getLeft().getLeft().getElement() == 2 : "Test3: root > left > left is not 2.";
  85.         assert tree.getRoot().getLeft().getRight().getElement() == 5 : "Test3 : root > left > right is not 5";
  86.         assert tree.getRoot().getLeft().getLeft().getLeft().getElement() == 1 : "Test3: root > left > left > left is not 1";
  87.         assert tree.getRoot().getLeft().getLeft().getRight().getElement() == 3 : "Test3: root > left > left > right is not 3";
  88.  
  89.         assert tree.getRoot().getRight().getElement() == 10 : "Test3: root > right is not 10";
  90.         assert tree.getRoot().getRight().getLeft().getElement() == 7 : "Test3: root > right > left is not 7";
  91.         assert tree.getRoot().getRight().getLeft().getRight().getElement() == 8 : "Test3: root > right > left > right is not 8";
  92.         assert tree.getRoot().getRight().getRight().getElement() == 12 : "Test3: root > right > right is not 12";
  93.         assert tree.getRoot().getRight().getRight().getLeft().getElement() == 11 : "Test3: root > right > right > left is not 11";
  94.         assert tree.getRoot().getRight().getRight().getRight().getElement() == 13 : "Test3: root > right > right > right is not 13";
  95.  
  96.  
  97.     }
  98.  
  99.     private static void testRemoveLeaf(){
  100.         AVLTree<Integer> tree = new AVLTree<Integer>();
  101.         tree.insert(6);
  102.         tree.insert(10);
  103.         tree.insert(4);
  104.         tree.insert(5);
  105.  
  106.         tree.remove(5);
  107.  
  108.         assert testFindThrows(tree, 5) : "TestRemoveLeaf: 5 not removed.";
  109.  
  110.         assert tree.find(6) != null : "TestRemoveLeaf: 6 was removed.";
  111.         assert tree.find(10) != null : "TestRemoveLeaf: 10 was removed.";
  112.         assert tree.find(4) != null : "TestRemoveLeaf: 4 was removed.";
  113.  
  114.         assert tree.getRoot().getElement() == 6 : "TestRemoveLeaf: Root is not 6.";
  115.  
  116.         assert tree.getRoot().getLeft().getElement() == 4 : "TestRemoveLeaf: Left child is not 4.";
  117.         assert tree.getRoot().getRight().getElement() == 10 : "TestRemoveLeaf: Right child is not 10.";
  118.  
  119.         assert tree.getNodeHeight(6) == 1 : "TestRemoveLeaf: Height is not 1.";
  120.     }
  121.  
  122.     private static void testRemoveLeaf2(){
  123.         AVLTree<Integer> tree = new AVLTree<Integer>();
  124.         tree.insert(6);
  125.         tree.insert(10);
  126.         tree.insert(4);
  127.         tree.insert(5);
  128.  
  129.         tree.remove(4);
  130.  
  131.         assert testFindThrows(tree, 4) : "TestRemoveLeaf2: 4 not removed.";
  132.  
  133.         assert tree.find(6) != null : "TestRemoveLeaf2: 6 was removed.";
  134.         assert tree.find(10) != null : "TestRemoveLeaf2: 10 was removed.";
  135.         assert tree.find(5) != null : "TestRemoveLeaf2: 5 was removed.";
  136.  
  137.         assert tree.getRoot().getElement() == 6 : "TestRemoveLeaf2: Root is not 6.";
  138.  
  139.         assert tree.getRoot().getLeft().getElement() == 5 : "TestRemoveLeaf2: Left child is not 5.";
  140.         assert tree.getRoot().getRight().getElement() == 10 : "TestRemoveLeaf2: Right child is not 10.";
  141.  
  142.         assert tree.getNodeHeight(6) == 1 : "TestRemoveLeaf2: Height is not 1.";
  143.     }
  144.  
  145.  
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement