aboutsummaryrefslogtreecommitdiff
path: root/deque.c
diff options
context:
space:
mode:
Diffstat (limited to 'deque.c')
-rw-r--r--deque.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/deque.c b/deque.c
index 0e0bbf0..168669e 100644
--- a/deque.c
+++ b/deque.c
@@ -295,6 +295,7 @@ test_deque(void)
295 assert(deque_pop_back(d, &data) == true); 295 assert(deque_pop_back(d, &data) == true);
296 assert(data == i); 296 assert(data == i);
297 } 297 }
298 assert(deque_is_empty(d) == true);
298 299
299 deque_free(d); 300 deque_free(d);
300 301
@@ -309,6 +310,7 @@ test_deque(void)
309 assert(deque_pop_front(d, &data) == true); 310 assert(deque_pop_front(d, &data) == true);
310 assert(data == i); 311 assert(data == i);
311 } 312 }
313 assert(deque_is_empty(d) == true);
312 314
313 deque_free(d); 315 deque_free(d);
314 316
@@ -323,6 +325,35 @@ test_deque(void)
323 assert(deque_pop_back(d, &data) == true); 325 assert(deque_pop_back(d, &data) == true);
324 assert(data == i); 326 assert(data == i);
325 } 327 }
328 assert(deque_is_empty(d) == true);
329
330 deque_free(d);
331
332 deque_init(d);
333
334 for ( int i = 0; i != N; ++i ) {
335 if ( i & 1 ) {
336 deque_push_front(d, i);
337 }
338 else {
339 deque_push_back(d, i);
340 }
341 }
342
343 for ( int i = N - 1; i >= 0; --i ) {
344 int data;
345 if ( i & 1 ) {
346 assert(deque_pop_front(d, &data) == true);
347 }
348 else {
349 assert(deque_pop_back(d, &data) == true);
350 }
351 if ( data != i ) {
352 printf("i: %d - data: %d\n", i, data);
353 }
354 assert(data == i);
355 }
356 assert(deque_is_empty(d) == true);
326 357
327 deque_free(d); 358 deque_free(d);
328 359
@@ -337,6 +368,7 @@ test_deque(void)
337 assert(deque_pop_front(d, &data) == true); 368 assert(deque_pop_front(d, &data) == true);
338 assert(data == i); 369 assert(data == i);
339 } 370 }
371 assert(deque_is_empty(d) == true);
340 372
341 deque_free(d); 373 deque_free(d);
342} 374}