package list;

import java.util.Collections;

/**
 * Tester to test the List implementation
 * @author Winston Prakash
 */
public class ListTester {
    
    /**
     * 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;
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int[] dataArray = createData();
        //List<Integer> list = new DoublyCircularlyLinkedList<Integer>();
        List<Integer> list = new ArrayList<Integer>();
        System.out.println("\nList Test");
        for(int i=0; i< dataArray.length; i++){
            list.append(dataArray[i]);
            System.out.print(dataArray[i] + "(");
            System.out.print(list.indexOf(dataArray[i]) + ") ");
        }
        
        int index = 0;
        int value = 50;
        System.out.println("\nSet item at index " + index + " with " + value);
        list.set(index, value);
        list.display();
        
        index = 5;
        value = 40;
        System.out.println("\nSet item at index " + index + " with " + value);
        list.set(index, value);
        list.display();
        
        index = 8;
        value = 75;
        System.out.println("\nInsert item at index " + index + " with " + value);
        list.insert(index, value);
        list.display();
        
        index = 0;
        System.out.println("\nRemove item at index " + index);
        list.removeAt(index);
        list.display();
        
        index = 5;
        System.out.println("\nRemove item at index " + index);
        list.removeAt(index);
        list.display();
        
        System.out.println("\nRemove item " + value);
        list.remove(value);
        list.display();
        
        index = 3;
        value = list.get(index);
        System.out.println("\nValue of item at index " + index + " is " + value);
        
        value = 75;
        System.out.println("Contains item " + value + " - " + list.contains(value));
        
        value = 8;
        System.out.println("Contains item " + value + " - " + list.contains(value));
    }
    
}