1*59c8e88eSDag-Erling Smørgrav #include <stdio.h>
2*59c8e88eSDag-Erling Smørgrav #include <stdlib.h>
3*59c8e88eSDag-Erling Smørgrav #include <string.h>
4*59c8e88eSDag-Erling Smørgrav #include <arraylist.h>
5*59c8e88eSDag-Erling Smørgrav 
test_basic(void)6*59c8e88eSDag-Erling Smørgrav void test_basic(void)
7*59c8e88eSDag-Erling Smørgrav {
8*59c8e88eSDag-Erling Smørgrav 	int *p;
9*59c8e88eSDag-Erling Smørgrav 	ARRAYLIST(int) list;
10*59c8e88eSDag-Erling Smørgrav 	ARRAYLIST_INIT(list, 2);
11*59c8e88eSDag-Erling Smørgrav 
12*59c8e88eSDag-Erling Smørgrav #define dump() do {\
13*59c8e88eSDag-Erling Smørgrav 		printf("(%d items)\n", list.len); \
14*59c8e88eSDag-Erling Smørgrav 		ARRAYLIST_FOREACH(p, list) \
15*59c8e88eSDag-Erling Smørgrav 			printf("[%lu] %d\n", \
16*59c8e88eSDag-Erling Smørgrav 			(unsigned long)ARRAYLIST_IDX(p, list), *p); \
17*59c8e88eSDag-Erling Smørgrav 		printf("\n"); \
18*59c8e88eSDag-Erling Smørgrav 	} while(0)
19*59c8e88eSDag-Erling Smørgrav 
20*59c8e88eSDag-Erling Smørgrav 	dump();
21*59c8e88eSDag-Erling Smørgrav 
22*59c8e88eSDag-Erling Smørgrav 	ARRAYLIST_ADD(p, list);
23*59c8e88eSDag-Erling Smørgrav 	*p = 100;
24*59c8e88eSDag-Erling Smørgrav 	dump();
25*59c8e88eSDag-Erling Smørgrav 
26*59c8e88eSDag-Erling Smørgrav 	ARRAYLIST_ADD(p, list);
27*59c8e88eSDag-Erling Smørgrav 	*p = 101;
28*59c8e88eSDag-Erling Smørgrav 	dump();
29*59c8e88eSDag-Erling Smørgrav 
30*59c8e88eSDag-Erling Smørgrav 	ARRAYLIST_ADD(p, list);
31*59c8e88eSDag-Erling Smørgrav 	*p = 102;
32*59c8e88eSDag-Erling Smørgrav 	dump();
33*59c8e88eSDag-Erling Smørgrav 
34*59c8e88eSDag-Erling Smørgrav #define insert_test(AT) do {\
35*59c8e88eSDag-Erling Smørgrav 		printf("insert at [" #AT "]:\n"); \
36*59c8e88eSDag-Erling Smørgrav 		ARRAYLIST_INSERT(p, list, AT); \
37*59c8e88eSDag-Erling Smørgrav 		*p = AT; \
38*59c8e88eSDag-Erling Smørgrav 		dump(); \
39*59c8e88eSDag-Erling Smørgrav 	} while(0)
40*59c8e88eSDag-Erling Smørgrav 
41*59c8e88eSDag-Erling Smørgrav 	insert_test(list.len - 1);
42*59c8e88eSDag-Erling Smørgrav 	insert_test(1);
43*59c8e88eSDag-Erling Smørgrav 	insert_test(0);
44*59c8e88eSDag-Erling Smørgrav 	insert_test(6);
45*59c8e88eSDag-Erling Smørgrav 	insert_test(123);
46*59c8e88eSDag-Erling Smørgrav 	insert_test(-42);
47*59c8e88eSDag-Erling Smørgrav 
48*59c8e88eSDag-Erling Smørgrav 	printf("clear:\n");
49*59c8e88eSDag-Erling Smørgrav 	ARRAYLIST_CLEAR(list);
50*59c8e88eSDag-Erling Smørgrav 	dump();
51*59c8e88eSDag-Erling Smørgrav 
52*59c8e88eSDag-Erling Smørgrav 	ARRAYLIST_FREE(list);
53*59c8e88eSDag-Erling Smørgrav }
54*59c8e88eSDag-Erling Smørgrav 
main(void)55*59c8e88eSDag-Erling Smørgrav int main(void)
56*59c8e88eSDag-Erling Smørgrav {
57*59c8e88eSDag-Erling Smørgrav 	test_basic();
58*59c8e88eSDag-Erling Smørgrav }
59