aboutsummaryrefslogtreecommitdiff
path: root/tests/test43.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test43.c')
-rw-r--r--tests/test43.c130
1 files changed, 130 insertions, 0 deletions
diff --git a/tests/test43.c b/tests/test43.c
new file mode 100644
index 000000000..216f529aa
--- /dev/null
+++ b/tests/test43.c
@@ -0,0 +1,130 @@
+#include <stdio.h>
+#include "utarray.h"
+
+typedef struct {
+ int a;
+ int b;
+} intpair_t;
+
+int main()
+{
+ UT_array *pairs, *pairs_cpy;
+ intpair_t it, *ip;
+ UT_icd pairicd = { sizeof(intpair_t),NULL,NULL,NULL};
+ size_t zero=0;
+ utarray_new(pairs, &pairicd);
+ printf("length is %u\n", utarray_len(pairs));
+ it.a = 1;
+ it.b=2;
+ utarray_push_back(pairs, &it);
+ printf("push\n");
+ printf("length is %u\n", utarray_len(pairs));
+ ip = (intpair_t*)utarray_back(pairs);
+ printf("back is %d %d\n", ip->a, ip->b);
+ utarray_pop_back(pairs);
+ printf("pop\n");
+ printf("length is %u\n", utarray_len(pairs));
+ it.a = 1;
+ it.b=2;
+ utarray_push_back(pairs, &it);
+ printf("push\n");
+ it.a = 3;
+ it.b=4;
+ utarray_push_back(pairs, &it);
+ printf("push\n");
+ printf("length is %u\n", utarray_len(pairs));
+ ip=NULL;
+ while( (ip=(intpair_t*)utarray_next(pairs,ip)) != NULL ) {
+ printf("%d %d\n", ip->a, ip->b);
+ }
+ utarray_erase(pairs,0,1);
+ printf("erase [0]\n");
+ printf("length is %u\n", utarray_len(pairs));
+ while( (ip=(intpair_t*)utarray_next(pairs,ip)) != NULL ) {
+ printf("%d %d\n", ip->a, ip->b);
+ }
+ it.a = 1;
+ it.b=2;
+ utarray_push_back(pairs, &it);
+ printf("push\n");
+ while( (ip=(intpair_t*)utarray_next(pairs,ip)) != NULL ) {
+ printf("%d %d\n", ip->a, ip->b);
+ }
+ utarray_clear(pairs);
+ printf("clear\n");
+ printf("length is %u\n", utarray_len(pairs));
+ utarray_extend_back(pairs);
+ printf("extend\n");
+ ip = (intpair_t*)utarray_back(pairs);
+ printf("length is %u\n", utarray_len(pairs));
+ printf("ip points to [0] ? %s\n", (ip==(intpair_t*)utarray_front(pairs)) ? "yes" : "no");
+ it.a = 1;
+ it.b=2;
+ utarray_push_back(pairs, &it);
+ printf("push\n");
+ ip=NULL;
+ while( (ip=(intpair_t*)utarray_next(pairs,ip)) != NULL ) {
+ printf("%d %d\n", ip->a, ip->b);
+ }
+ utarray_erase(pairs,1,1);
+ printf("erase [1]\n");
+ printf("length is %u\n", utarray_len(pairs));
+ while( (ip=(intpair_t*)utarray_next(pairs,ip)) != NULL ) {
+ printf("%d %d\n", ip->a, ip->b);
+ }
+ it.a = 3;
+ it.b=4;
+ utarray_push_back(pairs, &it);
+ printf("push\n");
+ for(ip=(intpair_t*)utarray_front(pairs); ip!=NULL; ip=(intpair_t*)utarray_next(pairs,ip)) {
+ printf("%d %d\n", ip->a,ip->b);
+ }
+ ip = (intpair_t*)utarray_back(pairs);
+ printf("back is %d %d\n", ip->a, ip->b);
+ utarray_new(pairs_cpy, &pairicd);
+ utarray_concat(pairs_cpy, pairs);
+ printf("copy\n");
+ printf("cpy length is %u\n", utarray_len(pairs_cpy));
+ ip=NULL;
+ while( (ip=(intpair_t*)utarray_next(pairs_cpy,ip)) != NULL ) {
+ printf("cpy %d %d\n", ip->a, ip->b);
+ }
+ it.a=5;
+ it.b=6;
+ utarray_insert(pairs_cpy, &it, 0);
+ printf("insert cpy[0]\n");
+ printf("cpy length is %u\n", utarray_len(pairs_cpy));
+ while( (ip=(intpair_t*)utarray_next(pairs_cpy,ip)) != NULL ) {
+ printf("cpy %d %d\n", ip->a, ip->b);
+ }
+ utarray_erase(pairs_cpy,0,2);
+ printf("erase cpy [0] [1]\n");
+ printf("cpy length is %u\n", utarray_len(pairs_cpy));
+ while( (ip=(intpair_t*)utarray_next(pairs_cpy,ip)) != NULL ) {
+ printf("cpy %d %d\n", ip->a, ip->b);
+ }
+ utarray_inserta(pairs_cpy, pairs, 1);
+ printf("inserta at cpy[1]\n");
+ printf("cpy length is %u\n", utarray_len(pairs_cpy));
+ while( (ip=(intpair_t*)utarray_next(pairs_cpy,ip)) != NULL ) {
+ printf("cpy %d %d\n", ip->a, ip->b);
+ }
+ utarray_free(pairs_cpy);
+ printf("free cpy\n");
+ printf("length is %u\n", utarray_len(pairs));
+ utarray_resize(pairs, 30);
+ printf("resize to 30\n");
+ printf("length is %u\n", utarray_len(pairs));
+ while( (ip=(intpair_t*)utarray_next(pairs,ip)) != NULL ) {
+ printf("%d %d\n", ip->a, ip->b);
+ }
+ utarray_resize(pairs, 1);
+ printf("resize to 1\n");
+ printf("length is %u\n", utarray_len(pairs));
+ utarray_resize(pairs, zero);
+ printf("resize to 0\n");
+ printf("length is %u\n", utarray_len(pairs));
+ utarray_free(pairs);
+ printf("free\n");
+ return 0;
+}