public class PruebaColaEnlazada
{
    static String a = "a";
    static String b = "b";
    static String c = "c";
    static String d = "d";
    static String f = "f";

    public static void primerApartado() {
        ColaEnlazada q = new ColaEnlazada();

        q.insertar(a);
        q.insertar(b);
        q.insertar(c);
        q.insertar(d);
        System.out.println("Esta es la cola sobre la que buscaremos");
        System.out.println();
        q.print();
        System.out.print("Existe un Nodo que contiene d? (Correcto SI) : tu programa dice que... ");
        if (q.existeReferencia(d)){ System.out.println("Si");}
        else{System.out.println("No");}

        System.out.print("Existe un Nodo que contiene f? (Correcto NO) : tu programa dice que... ");
        if (q.existeReferencia(f)){ System.out.println("Si");}
        else{System.out.println("No");}

        System.out.print("Existe un Nodo que contiene a? (Correcto SI) : tu programa dice que... ");
        if (q.existeReferencia(a)) { System.out.println("Si"); }
        else { System.out.println("No"); }        
    }

    public static void segundoApartado() {
        String titulo1 = "Enter sadman";
        String titulo2 = "ONE";
        String titulo3 = "Master of puppets";
        String titulo4 = "Stone cold crazy";
        String titulo5 = "Seek and destroy";
        String titulo6 = "Concierto entero. Unplugged in NY";

        Disco colaCanciones = new Disco();

        colaCanciones.añadirCancion(new Cancion(titulo1, 248));
        colaCanciones.añadirCancion(new Cancion(titulo2, 321));
        colaCanciones.añadirCancion(new Cancion(titulo3, 233));
        colaCanciones.añadirCancion(new Cancion(titulo4, 128));
        colaCanciones.añadirCancion(new Cancion(titulo5, 289));

        colaCanciones.cola.print();
        int tiempo = colaCanciones.comprobarTiempo(4000);
        if (tiempo > 0)
            System.out.println("Entra en el CD, sobra " + tiempo + "s");
        else
            System.out.println("No entra en el CD, resultado " + tiempo + "s");
        System.out.println("añadimos una cancion larga... a ver si entra ahora");
        colaCanciones.añadirCancion(new Cancion(titulo1, 248));
        colaCanciones.añadirCancion(new Cancion(titulo2, 321));
        colaCanciones.añadirCancion(new Cancion(titulo3, 233));
        colaCanciones.añadirCancion(new Cancion(titulo4, 128));
        colaCanciones.añadirCancion(new Cancion(titulo5, 289));
        /* el concierto */
        colaCanciones.añadirCancion(new Cancion(titulo6, 3000));
        colaCanciones.cola.print();
        tiempo = colaCanciones.comprobarTiempo(4000);
        if (tiempo > 0)
            System.out.println("Entra en el CD, sobra " + tiempo + "s");
        else
            System.out.println("No entra en el CD, resultado " + tiempo + "s");

    }
    
    public static void tercerApartado() {
        ColaEnlazada q = new ColaEnlazada();
        q.insertar(a);
        q.insertar(b);
        q.insertar(c);
        q.insertar(d);
        System.out.println("Cola inicial:");
        q.print();
        q.eliminarUnoDeCadaDos();
        System.out.println("Después de eliminar uno de cada dos:");
        q.print();
        System.out.println("Bottom: " + q.bottom.getElem());
  
        q.insertar(d);
        q.eliminarUnoDeCadaDos();
        System.out.println("Después de insertar \"d\" y eliminar uno de cada dos:");
        q.print();
        System.out.println("Bottom: " + q.bottom.getElem());
    }
    
    public static void main(String args[])
    {
        boolean ejecutada = false;

        if (args.length == 1) {
            try {
                int apartado = Integer.parseInt(args[0]);
                if (apartado == 1) {
                    primerApartado();
                    ejecutada = true;
                } else if (apartado == 2) {
                    segundoApartado();
                    ejecutada = true;
                } else if (apartado == 3) {
                    tercerApartado();
                    ejecutada = true;
                }
            } catch (NumberFormatException e) {
                // nada...
            }
        }

        if (!ejecutada) {
            System.out.println("El programa de pruebas debe recibir");
            System.out.println("el número de ejercicio como parámetro");
            System.out.println("Ejemplo: java PruebaPilaEnlazada 1");
        }
    }
}

