package stack;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Tester class to test Stack implementation
 * @author Winston Prakash
 */
public class StackTester {
    
    /** 
     * Create some random data
     */
    public static int[] createData(){
        List<Integer> data = new 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;
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int[] dataArray = createData();
        Stack<Integer> stack = new ArrayStack<Integer>();
        //Stack<Integer> stack = new LinkedListStack<Integer>();
        System.out.println("\nArray Stack");
        for(int i=0; i< dataArray.length; i++){
            stack.push(dataArray[i]);
            System.out.print(dataArray[i] + "(");
            System.out.print(stack.peek() + ") ");
        }
        System.out.println();
        int item = 7;
        System.out.println("The location of item " + item + " is " + stack.search(item));
        for(int i=0; i< dataArray.length; i++){
            System.out.print(stack.pop() + " ");
        }
        
        // Throws empty stack exception
        //stack.pop();
        //stack.peek();
    }
    
}