| 152 |
152 |
| 153 CX_ARRAY(int, array); |
153 CX_ARRAY(int, array); |
| 154 cx_array_init(array, 4); |
154 cx_array_init(array, 4); |
| 155 |
155 |
| 156 CX_TEST_DO { |
156 CX_TEST_DO { |
| 157 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, cx_cmp_int, &d1)); |
157 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, &d1, cx_cmp_int)); |
| 158 CX_TEST_ASSERT(array.size == 1); |
158 CX_TEST_ASSERT(array.size == 1); |
| 159 CX_TEST_ASSERT(array.capacity == 4); |
159 CX_TEST_ASSERT(array.capacity == 4); |
| 160 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, cx_cmp_int, &d2)); |
160 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, &d2, cx_cmp_int)); |
| 161 CX_TEST_ASSERT(array.size == 2); |
161 CX_TEST_ASSERT(array.size == 2); |
| 162 CX_TEST_ASSERT(array.capacity == 4); |
162 CX_TEST_ASSERT(array.capacity == 4); |
| 163 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, cx_cmp_int, &d3)); |
163 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, &d3, cx_cmp_int)); |
| 164 CX_TEST_ASSERT(array.size == 3); |
164 CX_TEST_ASSERT(array.size == 3); |
| 165 CX_TEST_ASSERT(array.capacity == 4); |
165 CX_TEST_ASSERT(array.capacity == 4); |
| 166 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, cx_cmp_int, &d4)); |
166 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, &d4, cx_cmp_int)); |
| 167 CX_TEST_ASSERT(array.size == 4); |
167 CX_TEST_ASSERT(array.size == 4); |
| 168 CX_TEST_ASSERT(array.capacity == 4); |
168 CX_TEST_ASSERT(array.capacity == 4); |
| 169 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, cx_cmp_int, &d5)); |
169 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, &d5, cx_cmp_int)); |
| 170 CX_TEST_ASSERT(array.size == 5); |
170 CX_TEST_ASSERT(array.size == 5); |
| 171 CX_TEST_ASSERT(array.capacity >= 5); |
171 CX_TEST_ASSERT(array.capacity >= 5); |
| 172 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, cx_cmp_int, d6a, 6)); |
172 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, d6a, 6, cx_cmp_int)); |
| 173 CX_TEST_ASSERT(array.size == 11); |
173 CX_TEST_ASSERT(array.size == 11); |
| 174 CX_TEST_ASSERT(array.capacity >= 11); |
174 CX_TEST_ASSERT(array.capacity >= 11); |
| 175 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, cx_cmp_int, d7a, 6)); |
175 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, d7a, 6, cx_cmp_int)); |
| 176 CX_TEST_ASSERT(array.size == 17); |
176 CX_TEST_ASSERT(array.size == 17); |
| 177 CX_TEST_ASSERT(array.capacity >= 17); |
177 CX_TEST_ASSERT(array.capacity >= 17); |
| 178 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, cx_cmp_int, &d8)); |
178 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, &d8, cx_cmp_int)); |
| 179 CX_TEST_ASSERT(array.size == 18); |
179 CX_TEST_ASSERT(array.size == 18); |
| 180 CX_TEST_ASSERT(array.capacity >= 18); |
180 CX_TEST_ASSERT(array.capacity >= 18); |
| 181 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, cx_cmp_int, &d9)); |
181 CX_TEST_ASSERT(0 == cx_array_insert_sorted(array, &d9, cx_cmp_int)); |
| 182 CX_TEST_ASSERT(array.size == 19); |
182 CX_TEST_ASSERT(array.size == 19); |
| 183 CX_TEST_ASSERT(array.capacity >= 19); |
183 CX_TEST_ASSERT(array.capacity >= 19); |
| 184 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, cx_cmp_int, d10a, 3)); |
184 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, d10a, 3, cx_cmp_int)); |
| 185 CX_TEST_ASSERT(array.size == 22); |
185 CX_TEST_ASSERT(array.size == 22); |
| 186 CX_TEST_ASSERT(array.capacity >= 22); |
186 CX_TEST_ASSERT(array.capacity >= 22); |
| 187 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, cx_cmp_int, d11a, 6)); |
187 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, d11a, 6, cx_cmp_int)); |
| 188 CX_TEST_ASSERT(array.size == 28); |
188 CX_TEST_ASSERT(array.size == 28); |
| 189 CX_TEST_ASSERT(array.capacity >= 28); |
189 CX_TEST_ASSERT(array.capacity >= 28); |
| 190 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, cx_cmp_int, d12a, 3)); |
190 CX_TEST_ASSERT(0 == cx_array_insert_sorted_array(array, d12a, 3, cx_cmp_int)); |
| 191 CX_TEST_ASSERT(array.size == 31); |
191 CX_TEST_ASSERT(array.size == 31); |
| 192 CX_TEST_ASSERT(array.capacity >= 31); |
192 CX_TEST_ASSERT(array.capacity >= 31); |
| 193 |
193 |
| 194 CX_TEST_ASSERT(0 == memcmp(array.data, expected, 31 * sizeof(int))); |
194 CX_TEST_ASSERT(0 == memcmp(array.data, expected, 31 * sizeof(int))); |
| 195 } |
195 } |
| 215 |
215 |
| 216 CX_ARRAY(int, array); |
216 CX_ARRAY(int, array); |
| 217 cx_array_init(array, 4); |
217 cx_array_init(array, 4); |
| 218 |
218 |
| 219 CX_TEST_DO { |
219 CX_TEST_DO { |
| 220 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, cx_cmp_int, &d1)); |
220 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, &d1, cx_cmp_int)); |
| 221 CX_TEST_ASSERT(array.size == 1); |
221 CX_TEST_ASSERT(array.size == 1); |
| 222 CX_TEST_ASSERT(array.capacity == 4); |
222 CX_TEST_ASSERT(array.capacity == 4); |
| 223 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, cx_cmp_int, &d2)); |
223 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, &d2, cx_cmp_int)); |
| 224 CX_TEST_ASSERT(array.size == 2); |
224 CX_TEST_ASSERT(array.size == 2); |
| 225 CX_TEST_ASSERT(array.capacity == 4); |
225 CX_TEST_ASSERT(array.capacity == 4); |
| 226 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, cx_cmp_int, &d3)); |
226 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, &d3, cx_cmp_int)); |
| 227 CX_TEST_ASSERT(array.size == 3); |
227 CX_TEST_ASSERT(array.size == 3); |
| 228 CX_TEST_ASSERT(array.capacity == 4); |
228 CX_TEST_ASSERT(array.capacity == 4); |
| 229 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, cx_cmp_int, &d4)); |
229 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, &d4, cx_cmp_int)); |
| 230 CX_TEST_ASSERT(array.size == 4); |
230 CX_TEST_ASSERT(array.size == 4); |
| 231 CX_TEST_ASSERT(array.capacity == 4); |
231 CX_TEST_ASSERT(array.capacity == 4); |
| 232 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, cx_cmp_int, &d5)); |
232 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, &d5, cx_cmp_int)); |
| 233 CX_TEST_ASSERT(array.size == 5); |
233 CX_TEST_ASSERT(array.size == 5); |
| 234 CX_TEST_ASSERT(array.capacity >= 5); |
234 CX_TEST_ASSERT(array.capacity >= 5); |
| 235 CX_TEST_ASSERT(0 == cx_array_insert_unique_array(array, cx_cmp_int, d6a, 6)); |
235 CX_TEST_ASSERT(0 == cx_array_insert_unique_array(array, d6a, 6, cx_cmp_int)); |
| 236 CX_TEST_ASSERT(array.size == 11); |
236 CX_TEST_ASSERT(array.size == 11); |
| 237 CX_TEST_ASSERT(array.capacity >= 11); |
237 CX_TEST_ASSERT(array.capacity >= 11); |
| 238 CX_TEST_ASSERT(0 == cx_array_insert_unique_array(array, cx_cmp_int, d7a, 6)); |
238 CX_TEST_ASSERT(0 == cx_array_insert_unique_array(array, d7a, 6, cx_cmp_int)); |
| 239 CX_TEST_ASSERT(array.size == 17); |
239 CX_TEST_ASSERT(array.size == 17); |
| 240 CX_TEST_ASSERT(array.capacity >= 17); |
240 CX_TEST_ASSERT(array.capacity >= 17); |
| 241 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, cx_cmp_int, &d8)); |
241 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, &d8, cx_cmp_int)); |
| 242 CX_TEST_ASSERT(array.size == 18); |
242 CX_TEST_ASSERT(array.size == 18); |
| 243 CX_TEST_ASSERT(array.capacity >= 18); |
243 CX_TEST_ASSERT(array.capacity >= 18); |
| 244 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, cx_cmp_int, &d9)); |
244 CX_TEST_ASSERT(0 == cx_array_insert_unique(array, &d9, cx_cmp_int)); |
| 245 CX_TEST_ASSERT(array.size == 18); |
245 CX_TEST_ASSERT(array.size == 18); |
| 246 CX_TEST_ASSERT(array.capacity >= 18); |
246 CX_TEST_ASSERT(array.capacity >= 18); |
| 247 CX_TEST_ASSERT(0 == cx_array_insert_unique_array(array, cx_cmp_int, d10a, 3)); |
247 CX_TEST_ASSERT(0 == cx_array_insert_unique_array(array, d10a, 3, cx_cmp_int)); |
| 248 CX_TEST_ASSERT(array.size == 19); |
248 CX_TEST_ASSERT(array.size == 19); |
| 249 CX_TEST_ASSERT(array.capacity >= 19); |
249 CX_TEST_ASSERT(array.capacity >= 19); |
| 250 CX_TEST_ASSERT(0 == cx_array_insert_unique_array(array, cx_cmp_int, d11a, 8)); |
250 CX_TEST_ASSERT(0 == cx_array_insert_unique_array(array, d11a, 8, cx_cmp_int)); |
| 251 CX_TEST_ASSERT(array.size == 22); |
251 CX_TEST_ASSERT(array.size == 22); |
| 252 CX_TEST_ASSERT(array.capacity >= 22); |
252 CX_TEST_ASSERT(array.capacity >= 22); |
| 253 |
253 |
| 254 CX_TEST_ASSERT(0 == memcmp(array.data, expected, 22 * sizeof(int))); |
254 CX_TEST_ASSERT(0 == memcmp(array.data, expected, 22 * sizeof(int))); |
| 255 } |
255 } |