#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "pile.h"

int main(){
	pile_t* p = pile_vide();
	int x;

	empiler(p, 5);
	affiche_pile(p);
	assert(!est_vide(p));

	x = depiler(p);
	affiche_pile(p);
	assert(x = 5);

	empiler(p, 1);
	affiche_pile(p);

	empiler(p, 2);
	affiche_pile(p);

	empiler(p, 3);
	affiche_pile(p);

	empiler(p, 4);
	affiche_pile(p);

	assert(depiler(p) == 4);
	affiche_pile(p);

	assert(depiler(p) == 3);
	affiche_pile(p);

	assert(depiler(p) == 2);
	affiche_pile(p);

	empiler(p, 5);
	affiche_pile(p);

	assert(depiler(p) == 5);
	affiche_pile(p);

	assert(depiler(p) == 1);
	assert(est_vide(p));
	affiche_pile(p);

	// empiler 0, 1, ..., 999, puis dépile en vérifiant les valeurs
	for (int i = 0; i < 1000; ++i){
		empiler(p, i);
	}
	for (int i = 999; i >= 0; --i){
		assert(depiler(p) == i);
	}

	free_pile(p);
	return 0;
}