//
//  testclassi.cpp
//  pila_131031
//
//  Created by Paolo on 04/11/13.
//  Copyright (c) 2013 dib. All rights reserved.
//

#include "testclassi.h"
#include <iostream>

using namespace std;

void testLista(){
    
    Lista lista;
    lista.creaLista();
    posizione p;
    p=lista.primoLista();
    lista.insLista(1p);
    p=lista.succLista(p);
    lista.insLista(2p);
    p=lista.succLista(p);
    lista.insLista(3p);
    p=lista.succLista(p);
    lista.insLista(4p);
    p=lista.succLista(p);
    lista.insLista(5p);
    cout << "valore della posizione corrente di p: "<<lista.leggiLista(p)<<endl;
    
    cout << "Valori lista:" << endl;

    p=lista.primoLista();
    while (!lista.fineLista(p)){
        cout << lista.leggiLista(p) << endl;
        p=lista.succLista(p);
    }
//    lista.cancLista(lista.primoLista());
    if (lista.listaVuota()) cout << "Lista svuotata" << endl;
    else cout << "C'รจ qualcosa in lista " << endl;
}

void testPila(){
    Pila garageTunnel;
    tipoelem targa;
    
    targa=123456;
    garageTunnel.inPila(targa);
    
    targa=654321;
    garageTunnel.inPila(targa);
    
    garageTunnel.fuoriPila();
    garageTunnel.fuoriPila();
    garageTunnel.fuoriPila();
    
    if(garageTunnel.pilaVuota())
        cout << "garage vuoto" << endl;
    else
        cout << "garage con auto, vedo l'auto targata: "
        << garageTunnel.leggiPila() << endl;
}

void testPilaP(){
    PilaP garageTunnel;
    tipoelempila targa;
    
    targa=123456;
    garageTunnel.inPila(targa);
    
    targa=654321;
    garageTunnel.inPila(targa);
    
    if(garageTunnel.pilaVuota())
        cout << "garage vuoto" << endl;
    else
        cout << "garage con auto, vedo l'auto targata: "
        << garageTunnel.leggiPila() << endl;
    garageTunnel.fuoriPila();
    garageTunnel.fuoriPila();
    //garageTunnel.fuoriPila();//TODO: verificare funzionamento pilaVuota
}

void testCoda(){
    Coda posta;
    
    posta.inCoda(10);
    posta.inCoda(20);
    posta.inCoda(30);
    posta.inCoda(40);
    
    
    cout << posta.leggiCoda()<<endl;
    posta.fuoriCoda();
    posta.inCoda(4);
    cout << posta.leggiCoda()<<endl;
    posta.fuoriCoda();
    cout << posta.leggiCoda()<<endl;
    posta.inCoda(5);
    posta.fuoriCoda();
    cout << posta.leggiCoda()<<endl;
    posta.fuoriCoda();
    cout << posta.leggiCoda()<<endl;
    posta.fuoriCoda();
    cout << posta.leggiCoda()<<endl;
    //posta.fuoriCoda();
    cout<<"coda vuota: "<<posta.codaVuota()<<endl;
    cout<<"leggo la coda"<<posta.leggiCoda()<<endl;
}