1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#include <criterion/criterion.h>
#include "vector.h"
vector_t vec;
int n = 16;
void suitesetup(void){
vec = vector_init(n);
}
void suiteteardown(void){
destroy_vec(&vec);
}
TestSuite(vectortests, .init=suitesetup, .fini=suiteteardown);
Test(vectortests, capacity_test){
cr_expect(capacity(vec) == n, "Vector should have a capacity of %d", n);
cr_expect(capacity(vec) != n+1, "vector should have a capacity of %d", n);
}
Test(vectortests, is_empty_test){
cr_assert(is_empty(vec)==1, "is_empty should return 1");
push(&vec, 1);
cr_assert(is_empty(vec)==0, "is_empty should return 0");
}
Test(vectortests, is_full_test){
cr_assert(is_full(vec)==0, "is_full should return 0");
for (int i = 0; i < n; i++){
push(&vec, i);
}
cr_assert(is_full(vec)==1, "is_full should return 1");
}
Test(vectortests, size_test){
cr_assert(size(vec)==0, "Size of vector should be 0 at first");
for (int i = 0; i < 10; i++){
push(&vec, i);
}
cr_assert(size(vec)==10, "Size of vector should be 10");
}
Test(vectortests, at_test){
for (int i = 0; i < 10; i++){
push(&vec, i+3);
}
cr_assert(at(vec, 6)==9, "at(vec, 6) should return 9");
}
Test(vectortests, at_invalid_index_test, .exit_code = -1, .disabled=true){
at(vec, -5);
}
Test(vectortests, push_test){
push(&vec, 3);
push(&vec, 6);
push(&vec, 9);
cr_assert(at(vec, 1) == 6);
cr_assert(size(vec) == 3);
}
Test(vectortests, insert_test){
push(&vec, 3);
push(&vec, 6);
push(&vec, 9);
insert(&vec, 1, 55);
cr_assert(at(vec, 1) == 55);
cr_assert(at(vec, 2) == 6);
cr_assert(at(vec, 3) == 9);
cr_assert(size(vec) == 4);
}
Test(vectortests, delete_check){
push(&vec, 3);
push(&vec, 6);
push(&vec, 9);
insert(&vec, 1, 55);
delete_vec(&vec, 1);
cr_assert(at(vec, 1) == 6);
cr_assert(size(vec) == 3);
}
Test(vectortests, remove_test){
for (int i = 0; i < vec.max_size; i++){
if (i%2 == 0){
push(&vec, 5);
continue;
}
push(&vec, i);
}
remove_val(&vec, 5);
cr_assert(size(vec) == 7);
cr_assert(at(vec, 2) == 7);
}
Test(vectortests, prepend_test){
prepend(&vec, 99);
cr_assert(at(vec,0)==99);
prepend(&vec, 66);
cr_assert(at(vec,0)==66);
}
Test(vectortests, pop_test){
push(&vec, 3);
push(&vec, 6);
push(&vec, 9);
cr_assert(pop(&vec)==9);
cr_assert(pop(&vec)==6);
cr_assert(pop(&vec)==3);
}
|