diff options
Diffstat (limited to 'tests/test46.c')
-rw-r--r-- | tests/test46.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/test46.c b/tests/test46.c new file mode 100644 index 000000000..b3ac63762 --- /dev/null +++ b/tests/test46.c @@ -0,0 +1,84 @@ +#include <stdio.h> +#include "utarray.h" + +static int strsort(const void *_a, const void *_b) +{ + const char *a = *(const char* const *)_a; + const char *b = *(const char* const *)_b; + return strcmp(a,b); +} + +static int revsort(const void *_a, const void *_b) +{ + const char *a = *(const char* const *)_a; + const char *b = *(const char* const *)_b; + return strcmp(b,a); +} + +int main() +{ + UT_array *strs,*strs2; + char *s, **p=NULL; + utarray_new(strs, &ut_str_icd); + s=(char*)"hello"; + utarray_push_back(strs, &s); + s=(char*)"world"; + utarray_push_back(strs, &s); + while ( (p=(char**)utarray_next(strs,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + s=(char*)"begin"; + utarray_insert(strs,&s,0); + while ( (p=(char**)utarray_next(strs,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + utarray_new(strs2, &ut_str_icd); + s=(char*)"alt"; + utarray_push_back(strs2, &s); + s=(char*)"oth"; + utarray_push_back(strs2, &s); + utarray_inserta(strs2, strs, 1); + while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + utarray_erase(strs2,0,2); + while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + utarray_pop_back(strs2); + while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + utarray_concat(strs2, strs); + while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + utarray_clear(strs2); + utarray_concat(strs2, strs); + while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + printf("sorting strs2\n"); + utarray_sort(strs2,strsort); + while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + printf("reverse sorting strs2\n"); + utarray_sort(strs2,revsort); + while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { + printf("%s ",*p); + } + printf("\n"); + utarray_clear(strs2); + utarray_free(strs2); + utarray_free(strs); + return 0; +} |