]> git.llucax.com Git - z.facultad/75.42/calculadora.git/commitdiff
Se agrega una prueba de la DLList.
authorLeandro Lucarella <llucax@gmail.com>
Mon, 1 Sep 2003 01:38:51 +0000 (01:38 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 1 Sep 2003 01:38:51 +0000 (01:38 +0000)
dllist_test.c [new file with mode: 0644]

diff --git a/dllist_test.c b/dllist_test.c
new file mode 100644 (file)
index 0000000..5c52a49
--- /dev/null
@@ -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 <llucare@fi.uba.ar>
+ * 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 <stdio.h>
+/* Para utilizar EXIT_SUCCES */
+#include <stdlib.h>
+/* Para utilizar assert() */
+#include <assert.h>
+
+/**
+ * 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;
+}
+