test.c
Raw
1#include <cutils/cutils.h>
2#include <stdio.h>
3#include <assert.h>
4
5struct test
6{
7 int a;
8 int b;
9};
10
11static int cmp_str(const void* str1, const void* str2)
12{
13 const struct test* str1_s = str1;
14 const struct test* str2_s = str2;
15 return !((str1_s->a == str2_s->a) && (str1_s->b == str2_s->b));
16}
17
18static void test1(void)
19{
20 size_t* find;
21 Vector* test;
22 struct test* my_struct;
23
24 my_struct = malloc(sizeof(*my_struct));
25 test = new_vector()
26
27 my_struct->a = 5;
28 my_struct->b = 5;
29 vector_push(test, my_struct);
30
31 my_struct = malloc(sizeof(*my_struct));
32 my_struct->a = 6;
33 my_struct->b = 6;
34 vector_push(test, my_struct);
35
36 my_struct = malloc(sizeof(*my_struct));
37 my_struct->a = 7;
38 my_struct->b = 7;
39 vector_push(test, my_struct);
40 assert(test->length == 3);
41
42 vector_remove(test, 0,free);
43 assert(test->length == 2);
44
45 my_struct = malloc(sizeof(*my_struct));
46 my_struct->a = 8;
47 my_struct->b = 8;
48 vector_insert(test, 2, my_struct);
49 assert(test->length == 3);
50
51 my_struct = malloc(sizeof(*my_struct));
52 my_struct->a = 8;
53 my_struct->b = 8;
54
55 find = vector_find(test, my_struct, cmp_str);
56
57 assert(*find == 2);
58 free(find);
59
60 free(my_struct);
61 my_struct = vector_pop(test);
62 assert(my_struct->a == 8 && my_struct->b == 8);
63 free(my_struct);
64
65 delete_vector(test,free);
66}
67
68static void test2(void)
69{
70 String* test;
71 String* test2;
72 char* cstring;
73
74 test = new_string();
75
76 string_push(test, 'a');
77 string_push(test, 'b');
78 string_push(test, 'c');
79 string_push(test, 'd');
80 assert(test->length == 4);
81
82 cstring = to_cstring(test);
83 assert(strcmp(cstring, "abcd") == 0);
84 free(cstring);
85
86 string_remove(test, 3);
87 cstring = to_cstring(test);
88 assert(strcmp(cstring, "abc") == 0);
89 free(cstring);
90 assert(test->length == 3);
91
92 string_insert(test, 0,'a');
93 cstring = to_cstring(test);
94 assert(strcmp(cstring, "aabc") == 0);
95 free(cstring);
96
97 test2 = from_cstring("xyz");
98
99 string_concat(test,test2);
100 cstring = to_cstring(test);
101 assert(strcmp(cstring, "aabcxyz") == 0);
102 free(cstring);
103
104 delete_string(test2);
105 delete_string(test);
106}
107
108int main(int argc, char** argv)
109{
110 test1();
111 test2();
112 sleep_ms(1000);
113 return 0;
114}
115