package tree;

import java.util.Collections;

/**
 * Tree Data Structure Tester
 * @author Winston   Prakash
 */
public class TreeTester {
    
    /**
     * Create some random data
     */
    public static int[] createData(){
        java.util.List<Integer> data = new java.util.ArrayList<Integer>();
        for (int i = 0; i < 11; i++){
            data.add(i);
        }
        Collections.shuffle(data);
        int[] dataArray = new int[data.size()];
        for (int i = 0; i < dataArray.length; i++){
            dataArray[i] = data.get(i);
        }
        return dataArray;
    }
    
    public static void main(String[] args) {
        int[] dataArray = createData();
        Tree<Integer> tree = new BinarySearchTree<Integer>();
        System.out.println("\nTree Test");
        for(int i=0; i< dataArray.length; i++){
            System.out.print(dataArray[i] + "(");
            System.out.print(i + ") ");
            tree.insert(dataArray[i]);
        }
        System.out.println();
        tree.display();
        
        int value = 8; // true
        System.out.println("Contains value " + value + " - " + tree.contains(value));
        
        value = 18; // false
        System.out.println("Contains value " + value + " - " + tree.contains(value));
        
        System.out.println("Maximum value - " + tree.maximum());
        
        System.out.println("Maximum value - " + tree.minimum());
        
        value = 10;
        System.out.println("Remove value - " +  value);
        tree.remove(value);
        tree.display();
    }
    
}