
import java.io.*;
import java.util.Random;

/** Test the List classes. */
public class ListTest
{

  /** User tests List functionality. */
  public static void main(String f[])
  {
    System.out.println("ListTest");
    System.out.println("");
    System.out.println(" 1: add elements to list and print ");
    System.out.println(" 2: add some elements in order to print ");
    System.out.println(" 3: removeall test ");

    BufferedReader in=new BufferedReader(
      new InputStreamReader(System.in));
    
    int ch;
    try
      { ch = in.read(); }
    catch (IOException e)
      { System.out.println("error:  unable to read selection."); return; }

    switch (ch)
    {
      case '1':  (new ListTest()).test1(); break;
      case '2':  (new ListTest()).test2(); break;
      case '3':  (new ListTest()).test3(); break;

      default:
        System.out.println("no valid choice, bye");
    } 
  }

  /**  add elements to list and print. */
  void test1()
  {
    List L = new List();
    L.addToHead(23);
    L.addToHead(12);
    L.addToHead(66);

    L.print();
  }

  /** Add some elements in order to print. */
  void test2()
  {
    List L = new List();
    L.addInOrder(39);
    L.addInOrder(23);
    L.addInOrder(2);
    L.addInOrder(99);

    L.print();
  }

  /** removeall test. */
  void test3()
  {
    List L = new List();

    Random r = new Random();

    for (int i=0; i<20; ++i)
      L.addToHead( r.nextInt(50) );

    L.print();

    System.out.println("");
    System.out.print("Enter element to delete: ");
    try
    {
      BufferedReader stdin = new BufferedReader(
        new InputStreamReader(System.in) );
      String msg = stdin.readLine();
      int elem = Integer.parseInt(msg);

System.out.println("elem="+elem);
      L.removeAll(elem);

      L.print();
  
    }
    catch( IOException e)
    {
      System.out.println("error: unable to read integer input.");
    }
  }

}




