/*---------------------------------------------------------
palindrome test
par Martin Robinson
-----------------------------------------------------------
preprocesseur
---------------------------------------------------------*/
#include <iostream>

using namespace std;

#include <stdio.h>
#include <string.h>

#include "pile.hpp"

/*---------------------------------------------------------
programme principal
---------------------------------------------------------*/

int main()
{

    pile<int> p;
    
    cout << "test de pile\n";

    for (int i=0;i<20;i++)
        p.push(i);
    
    cout << "apres avoir pusher 20 nombres.. regardons le top : ";
    cout << p.top() << endl;
    cout << "testons le copieur\n";
    pile<int> p2;
	p2 = p;
    cout << "top de la nouvelle pile devrai donné 19 : ";
    cout << p2.top() << endl;
    cout << "le nouveau devrai egaler le premier\n";
    cout << (p==p2?"vrai":"faux") <<endl;
        
    cout << "poppons les nombres de la 1er pile un a un\n";
    while(!p.empty())
    {
        cout << p.top() << " ";
        p.pop();
    }
    cout << endl;

    cout << "poppons les nombres de la 2em pile un a un\n";
    while(!p2.empty())
    {
        cout << p2.top() << " ";
        p2.pop();
    }
    cout << endl;
    
//    cout << "regardons le top d'une pile vide " << p.top() <<endl; //assert
    cout << "popons un nombre dans une pile vide\n";
    p.pop();
    cout << "cetait suppose rien faire\n";

	system("pause");

    return 0;
}
