3 * Test driver for darray.
19 static void dump(vec *v)
21 printf("# len = %lu, sz = %lu, off = %lu; push = %u, unshift = %u\n",
22 (unsigned long)v->b.len,
23 (unsigned long)v->b.sz,
24 (unsigned long)v->b.off,
25 v->b.push, v->b.unshift);
29 printf(" %i", DA(v)[0]);
30 for (i = 1; i < DA_LEN(v); i++)
31 printf(", %i", DA(v)[i]);
34 assert(v->b.sz + v->b.off == 128);
45 /* setvbuf(stdout, 0, _IOLBF, BUFSIZ); */
47 while (fgets(buf, sizeof(buf), stdin)) {
48 buf[strlen(buf) - 1] = 0;
49 /* printf("# %s\n", buf); */
53 if (STRCMP(p, ==, "push")) {
54 int n = atoi(strtok(0, " "));
56 } else if (STRCMP(p, ==, "unshift")) {
57 int n = atoi(strtok(0, " "));
59 } else if (STRCMP(p, ==, "pop")) {
60 printf("%i\n", DA_POP(&v));
61 } else if (STRCMP(p, ==, "shift")) {
62 printf("%i\n", DA_SHIFT(&v));
63 } else if (STRCMP(p, ==, "insert") ||
64 STRCMP(p, ==, "append")) {
69 while ((p = strtok(0, " ")) != 0) {
73 if (STRCMP(q, ==, "insert")) {
74 DA_SHUNT(&v, DA_LEN(&vv));
75 DA_SLIDE(&v, DA_LEN(&vv));
76 memcpy(DA(&v), DA(&vv), DA_LEN(&vv) * sizeof(int));
78 size_t l = DA_LEN(&v);
79 DA_ENSURE(&v, DA_LEN(&vv));
80 DA_EXTEND(&v, DA_LEN(&vv));
81 memcpy(DA(&v) + l, DA(&vv), DA_LEN(&vv) * sizeof(int));
84 } else if (STRCMP(p, ==, "delete")) {
85 int n = atoi(strtok(0, " "));
87 } else if (STRCMP(p, ==, "reduce")) {
88 int n = atoi(strtok(0, " "));
90 } else if (STRCMP(p, ==, "set")) {
91 size_t i = atoi(strtok(0, " "));
92 int n = atoi(strtok(0, " "));
93 size_t l = DA_LEN(&v);
97 for (j = l; j < i; j++)
101 } else if (STRCMP(p, ==, "get")) {
102 size_t i = atoi(strtok(0, " "));
106 printf("%i\n", DA(&v)[i]);
107 } else if (STRCMP(p, ==, "first")) {
109 printf("%i\n", DA_FIRST(&v));
112 } else if (STRCMP(p, ==, "last")) {
114 printf("%i\n", DA_LAST(&v));
117 } else if (STRCMP(p, ==, "show")) {
122 printf("%i", DA(&v)[0]);
123 for (i = 1; i < DA_LEN(&v); i++)
124 printf(" %i", DA(&v)[i]);
129 } CATCH switch (exc_type) {
140 puts("*UNKNOWN-EXCEPTION*");