TEST( PilaCharTest, desapilaTresElementosCumplindoFIFO ) {

    Pila<char> pila;

    pila.apilar('A');
    pila.apilar('B');
    pila.apilar('C');

    ASSERT_FALSE( pila.estaVacia() );
    ASSERT_EQ( 'C', pila.desapilar() );
    ASSERT_FALSE( pila.estaVacia() );
    ASSERT_EQ( 'B', pila.desapilar() );
    ASSERT_FALSE( pila.estaVacia() );
    ASSERT_EQ( 'A', pila.desapilar() );
    ASSERT_TRUE( pila.estaVacia() );
}
TEST( PilaCharTest, desapilarElUnicoElementoApilado ) {

    Pila<char> pila;

    pila.apilar('S');
    const char elemento = pila.desapilar();

    ASSERT_TRUE( pila.estaVacia());
    ASSERT_EQ( 'S', elemento);
}
TEST( PilaCharTest, obtenerTopeNoModificaLaPila ) {

    Pila<char> pila;

    pila.apilar('X');

    ASSERT_FALSE( pila.estaVacia() );
    ASSERT_EQ( 'X', pila.obtenerTope() );
    ASSERT_EQ( 'X', pila.obtenerTope() );
    ASSERT_EQ( 'X', pila.obtenerTope() );

    ASSERT_EQ( 'X', pila.desapilar() );
    ASSERT_TRUE( pila.estaVacia() );
}
int main() {

    Pila<int> pila;

    pila.apilar(3);
    pila.apilar(5);
    pila.apilar(1);
    pila.apilar(6);

    while (! pila.estaVacia()) {

        cout << pila.desapilar() << endl;
    }

    return 0;
}
Esempio n. 5
0
int main(){

Pila pila;
pila.apilar( 5 );
pila.apilar( 6 );
pila.apilar( 7 );
pila.apilar( 8 );
pila.apilar( 9 );
pila.apilar( 10 );

while(  pila.esVacia() == 0 ){
   printf(" %d\n", pila.desapilar() );
}



   return 0;
}
TEST( PilaCharTest, desapilarConLaPilaVaciaLanzaExcepcion ) {

    Pila<char> pila;

    ASSERT_THROW(pila.desapilar(), std::string) << "Pila vacía";
}