/* Test of ordered set data type implementation.
- Copyright (C) 2006-2008 Free Software Foundation, Inc.
+ Copyright (C) 2006-2011 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This program is free software: you can redistribute it and/or modify
#include "gl_array_oset.h"
-#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include "gl_xlist.h"
#include "gl_array_list.h"
#include "progname.h"
+#include "macros.h"
static const char *objects[30] =
{
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "<", ">", "[", "]"
};
-#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
-#define ASSERT(expr) \
- do \
- { \
- if (!(expr)) \
- { \
- fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
- fflush (stderr); \
- abort (); \
- } \
- } \
- while (0)
#define RANDOM(n) (rand () % (n))
#define RANDOM_OBJECT() objects[RANDOM (SIZEOF (objects))]
unsigned int repeat;
/* Create set1. */
- set1 = gl_oset_create_empty (GL_ARRAY_OSET, (gl_setelement_compar_fn) strcmp, NULL);
+ set1 = gl_oset_nx_create_empty (GL_ARRAY_OSET, (gl_setelement_compar_fn) strcmp, NULL);
+ ASSERT (set1 != NULL);
/* Create set2. */
set2 = gl_list_create_empty (GL_ARRAY_LIST, NULL, NULL, NULL, false);
for (i = 0; i < initial_size; i++)
{
const char *obj = RANDOM_OBJECT ();
- ASSERT (gl_oset_add (set1, obj)
- == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL
- ? false
- : (gl_sortedlist_add (set2, (gl_listelement_compar_fn)strcmp, obj), true)));
+ ASSERT (gl_oset_nx_add (set1, obj)
+ == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL
+ ? false
+ : (gl_sortedlist_add (set2, (gl_listelement_compar_fn)strcmp, obj), true)));
check_all (set1, set2);
}
{
const char *obj = RANDOM_OBJECT ();
ASSERT (gl_oset_search (set1, obj)
- == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL));
+ == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL));
}
break;
case 1:
{
const char *obj = RANDOM_OBJECT ();
- ASSERT (gl_oset_add (set1, obj)
- == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL
- ? false
- : (gl_sortedlist_add (set2, (gl_listelement_compar_fn)strcmp, obj), true)));
+ ASSERT (gl_oset_nx_add (set1, obj)
+ == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL
+ ? false
+ : (gl_sortedlist_add (set2, (gl_listelement_compar_fn)strcmp, obj), true)));
}
break;
case 2:
{
const char *obj = RANDOM_OBJECT ();
ASSERT (gl_oset_remove (set1, obj)
- == gl_sortedlist_remove (set2, (gl_listelement_compar_fn)strcmp, obj));
+ == gl_sortedlist_remove (set2, (gl_listelement_compar_fn)strcmp, obj));
}
break;
}