Add tree test.
authorJeff Garzik <jgarzik@src.gnome.org>
Sun, 3 Jan 1999 07:37:47 +0000 (07:37 +0000)
committerJeff Garzik <jgarzik@src.gnome.org>
Sun, 3 Jan 1999 07:37:47 +0000 (07:37 +0000)
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
tests/.cvsignore
tests/Makefile.am
tests/tree-test.c [new file with mode: 0644]

index c31a4bd..d78920d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,9 @@
 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
 
        * tests/Makefile.am:
-       add array-test.c
+       add array-test.c, tree-test.c
 
-       * tests/array-test.c:
+       * tests/array-test.c, tests/tree-test.c:
        New module, tests array family
 
        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
index c31a4bd..d78920d 100644 (file)
@@ -1,9 +1,9 @@
 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
 
        * tests/Makefile.am:
-       add array-test.c
+       add array-test.c, tree-test.c
 
-       * tests/array-test.c:
+       * tests/array-test.c, tests/tree-test.c:
        New module, tests array family
 
        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
index c31a4bd..d78920d 100644 (file)
@@ -1,9 +1,9 @@
 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
 
        * tests/Makefile.am:
-       add array-test.c
+       add array-test.c, tree-test.c
 
-       * tests/array-test.c:
+       * tests/array-test.c, tests/tree-test.c:
        New module, tests array family
 
        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
index c31a4bd..d78920d 100644 (file)
@@ -1,9 +1,9 @@
 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
 
        * tests/Makefile.am:
-       add array-test.c
+       add array-test.c, tree-test.c
 
-       * tests/array-test.c:
+       * tests/array-test.c, tests/tree-test.c:
        New module, tests array family
 
        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
index c31a4bd..d78920d 100644 (file)
@@ -1,9 +1,9 @@
 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
 
        * tests/Makefile.am:
-       add array-test.c
+       add array-test.c, tree-test.c
 
-       * tests/array-test.c:
+       * tests/array-test.c, tests/tree-test.c:
        New module, tests array family
 
        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
index c31a4bd..d78920d 100644 (file)
@@ -1,9 +1,9 @@
 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
 
        * tests/Makefile.am:
-       add array-test.c
+       add array-test.c, tree-test.c
 
-       * tests/array-test.c:
+       * tests/array-test.c, tests/tree-test.c:
        New module, tests array family
 
        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
index c31a4bd..d78920d 100644 (file)
@@ -1,9 +1,9 @@
 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
 
        * tests/Makefile.am:
-       add array-test.c
+       add array-test.c, tree-test.c
 
-       * tests/array-test.c:
+       * tests/array-test.c, tests/tree-test.c:
        New module, tests array family
 
        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
index c31a4bd..d78920d 100644 (file)
@@ -1,9 +1,9 @@
 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
 
        * tests/Makefile.am:
-       add array-test.c
+       add array-test.c, tree-test.c
 
-       * tests/array-test.c:
+       * tests/array-test.c, tests/tree-test.c:
        New module, tests array family
 
        * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
index 160f859..007e646 100644 (file)
@@ -30,3 +30,4 @@ relation-test
 slist-test
 string-test
 array-test
+tree-test
index b942c89..8631196 100644 (file)
@@ -9,7 +9,8 @@ TESTS = \
        node-test       \
        relation-test   \
        slist-test      \
-       string-test
+       string-test     \
+       tree-test
 
 noinst_PROGRAMS = $(TESTS)
 
@@ -21,4 +22,5 @@ node_test_LDADD = ../libglib.la
 relation_test_LDADD = ../libglib.la
 slist_test_LDADD = ../libglib.la
 string_test_LDADD = ../libglib.la
+tree_test_LDADD = ../libglib.la
 
diff --git a/tests/tree-test.c b/tests/tree-test.c
new file mode 100644 (file)
index 0000000..3b8d45e
--- /dev/null
@@ -0,0 +1,108 @@
+/* GLIB - Library of useful routines for C programming
+ * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+#undef G_LOG_DOMAIN
+
+#include <stdio.h>
+#include <string.h>
+#include "glib.h"
+
+int array[10000];
+gboolean failed = FALSE;
+
+#define        TEST(m,cond)    G_STMT_START { failed = !(cond); \
+if (failed) \
+  { if (!m) \
+      g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
+    else \
+      g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
+  } \
+else \
+  g_print ("."); fflush (stdout); \
+} G_STMT_END
+
+#define        C2P(c)          ((gpointer) ((long) (c)))
+#define        P2C(p)          ((gchar) ((long) (p)))
+
+#define GLIB_TEST_STRING "el dorado "
+#define GLIB_TEST_STRING_5 "el do"
+
+typedef struct {
+       guint age;
+       gchar name[40];
+} GlibTestInfo;
+
+
+static gint
+my_compare (gconstpointer a,
+           gconstpointer b)
+{
+  const char *cha = a;
+  const char *chb = b;
+
+  return *cha - *chb;
+}
+
+static gint
+my_traverse (gpointer key,
+            gpointer value,
+            gpointer data)
+{
+  char *ch = key;
+  g_assert ((*ch) > 0);
+  return FALSE;
+}
+
+int
+main (int   argc,
+      char *argv[])
+{
+  gint i, j;
+  GTree *tree;
+  char chars[62];
+
+  tree = g_tree_new (my_compare);
+  i = 0;
+  for (j = 0; j < 10; j++, i++)
+    {
+      chars[i] = '0' + j;
+      g_tree_insert (tree, &chars[i], &chars[i]);
+    }
+  for (j = 0; j < 26; j++, i++)
+    {
+      chars[i] = 'A' + j;
+      g_tree_insert (tree, &chars[i], &chars[i]);
+    }
+  for (j = 0; j < 26; j++, i++)
+    {
+      chars[i] = 'a' + j;
+      g_tree_insert (tree, &chars[i], &chars[i]);
+    }
+
+  g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL);
+
+  g_assert (g_tree_nnodes (tree) == (10 + 26 + 26));
+
+  for (i = 0; i < 10; i++)
+    g_tree_remove (tree, &chars[i]);
+
+  g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL);
+
+  return 0;
+}
+