From: Leandro Lucarella Date: Mon, 1 Sep 2003 01:38:51 +0000 (+0000) Subject: Se agrega una prueba de la DLList. X-Git-Tag: svn_import~25 X-Git-Url: https://git.llucax.com/z.facultad/75.42/calculadora.git/commitdiff_plain/69f46e63ac33f84bcb8235e205ff702bb8c03748?hp=9bd9e775760d72533fcf53dde53f5f6c8f634895 Se agrega una prueba de la DLList. --- diff --git a/dllist_test.c b/dllist_test.c new file mode 100644 index 0000000..5c52a49 --- /dev/null +++ b/dllist_test.c @@ -0,0 +1,233 @@ +/* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=0 fo+=t: + * + * Taller de Programación (75.42). + * + * Ejercicio Número 2: + * Programa calculadora. + * + * Copyleft 2003 - Leandro Lucarella + * Puede copiar, modificar y distribuir este programa bajo los términos de + * la licencia GPL (http://www.gnu.org/). + * + * Creado: sáb ago 30 18:24:31 ART 2003 + * + * $Id$ + */ + +/** + * \file + * Hace varios chequeos para probar si anda bien la + * \ref DLList "lista doblemente enlazada". + */ + +#include "dllist.h" + +/* Para utilizar printf() */ +#include +/* Para utilizar EXIT_SUCCES */ +#include +/* Para utilizar assert() */ +#include + +/** + * Programa para probar la DLList. + * + * \return EXIT_SUCCESS o código de error devuelto por abort() si hubo un + * error. + */ +int main(void) { + /* Declaración de variables. */ + DLList lista; + int a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8; + + printf("Chequeo de inicialización: "); + assert(DLList_init(&lista)); + printf("OK!\n"); + + printf("Chequeo si está vacía: "); + assert(DLList_empty(&lista)); + printf("OK!\n"); + + printf("Chequeo si no tiene más elementos: "); + assert(!DLList_have_more(&lista)); + printf("OK!\n"); + + printf("Agrego elemento '%i' al inicio: ", a); + assert(DLList_unshift(&lista, &a)); + printf("OK!\n"); + + printf("Chequeo que no esté vacía: "); + assert(!DLList_empty(&lista)); + printf("OK!\n"); + + printf("Agrego elemento '%i' al final: ", b); + assert(DLList_push(&lista, &b)); + printf("OK!\n"); + + printf("Chequeo que no esté vacía: "); + assert(!DLList_empty(&lista)); + printf("OK!\n"); + + printf("Agrego elemento '%i' al inicio: ", c); + assert(DLList_unshift(&lista, &c)); + printf("OK!\n"); + + printf("Agrego elemento '%i' al inicio: ", d); + assert(DLList_unshift(&lista, &d)); + printf("OK!\n"); + + printf("Agrego elemento '%i' al final: ", e); + assert(DLList_push(&lista, &e)); + printf("OK!\n"); + + printf("Agrego elemento '%i' al final: ", f); + assert(DLList_push(&lista, &f)); + printf("OK!\n"); + + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == &f); + printf("OK!\n"); + + printf("Agrego elemento '%i' al final: ", g); + assert(DLList_push(&lista, &g)); + printf("OK!\n"); + + printf("Agrego elemento '%i' al inicio: ", h); + assert(DLList_unshift(&lista, &h)); + printf("OK!\n"); + + printf("Obtengo el primer elemento: "); + assert(DLList_begin(&lista) == &h); + printf("OK!\n"); + + printf("Chequeo si hay más elementos: "); + assert(DLList_have_more(&lista)); + printf("OK!\n"); + + printf("Obtengo el elemento anterior elemento: "); + assert(DLList_prev(&lista) == NULL); + printf("OK!\n"); + + printf("Chequeo que no haya más elementos: "); + assert(!DLList_have_more(&lista)); + printf("OK!\n"); + + printf("Obtengo el último elemento: "); + assert(DLList_end(&lista) == &g); + printf("OK!\n"); + + printf("Chequeo si hay más elementos: "); + assert(DLList_have_more(&lista)); + printf("OK!\n"); + + printf("Obtengo el próximo elemento elemento: "); + assert(DLList_next(&lista) == NULL); + printf("OK!\n"); + + printf("Chequeo que no haya más elementos: "); + assert(!DLList_have_more(&lista)); + printf("OK!\n"); + + printf("Recorro la lista...\n"); + printf("Elemento 1: "); + assert(DLList_begin(&lista) == &h); + printf("OK!\n"); + printf("Elemento 2: "); + assert(DLList_next(&lista) == &d); + printf("OK!\n"); + printf("Elemento 3: "); + assert(DLList_next(&lista) == &c); + printf("OK!\n"); + printf("Elemento 4: "); + assert(DLList_next(&lista) == &a); + printf("OK!\n"); + printf("Elemento 5: "); + assert(DLList_next(&lista) == &b); + printf("OK!\n"); + printf("Elemento 6: "); + assert(DLList_next(&lista) == &e); + printf("OK!\n"); + printf("Elemento actual (6): "); + assert(DLList_current(&lista) == &e); + printf("OK!\n"); + printf("Elemento anterior (5): "); + assert(DLList_prev(&lista) == &b); + printf("OK!\n"); + printf("Elemento siguiente (6 de nuevo): "); + assert(DLList_next(&lista) == &e); + printf("OK!\n"); + printf("Elemento 7: "); + assert(DLList_next(&lista) == &f); + printf("OK!\n"); + printf("Elemento 8: "); + assert(DLList_next(&lista) == &g); + printf("OK!\n"); + printf("Elemento 9: "); + assert(DLList_next(&lista) == NULL); + printf("OK!\n"); + printf("Chequeo que no haya más elementos: "); + assert(!DLList_have_more(&lista)); + printf("OK!\n"); + + printf("Saco el primer elemento: "); + assert(DLList_shift(&lista) == &h); + printf("OK!\n"); + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == &d); + printf("OK!\n"); + + printf("Saco el último elemento: "); + assert(DLList_pop(&lista) == &g); + printf("OK!\n"); + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == &f); + printf("OK!\n"); + + printf("Saco el último elemento: "); + assert(DLList_pop(&lista) == &f); + printf("OK!\n"); + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == &e); + printf("OK!\n"); + + printf("Saco el último elemento: "); + assert(DLList_pop(&lista) == &e); + printf("OK!\n"); + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == &b); + printf("OK!\n"); + + printf("Saco el primer elemento: "); + assert(DLList_shift(&lista) == &d); + printf("OK!\n"); + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == &c); + printf("OK!\n"); + + printf("Saco el primer elemento: "); + assert(DLList_shift(&lista) == &c); + printf("OK!\n"); + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == &a); + printf("OK!\n"); + + printf("Saco el primer elemento: "); + assert(DLList_shift(&lista) == &a); + printf("OK!\n"); + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == &b); + printf("OK!\n"); + + printf("Saco el primer elemento: "); + assert(DLList_shift(&lista) == &b); + printf("OK!\n"); + printf("Chequeo elemento actual: "); + assert(DLList_current(&lista) == NULL); + printf("OK!\n"); + printf("Chequeo si está vacía: "); + assert(DLList_empty(&lista)); + printf("OK!\n"); + + return EXIT_SUCCESS; +} +