Blame


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