aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2020-08-15 16:31:12 +0200
committerThomas Schmucker <ts@its1.de>2020-08-15 16:31:12 +0200
commit5a869f2d5656523646b7526d59d48f49708a4c8c (patch)
treed756271787a4213afdc9e65bc10754e4396259b8
parenta1979af4de4c3f2d6a3cea3d3181170b67647143 (diff)
downloaddata-structures-5a869f2d5656523646b7526d59d48f49708a4c8c.tar.gz
data-structures-5a869f2d5656523646b7526d59d48f49708a4c8c.tar.bz2
data-structures-5a869f2d5656523646b7526d59d48f49708a4c8c.zip
Einfache Testroutine hinzugefügt.
-rw-r--r--deque.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/deque.c b/deque.c
index f1da207..0e0bbf0 100644
--- a/deque.c
+++ b/deque.c
@@ -1,3 +1,4 @@
1#include <assert.h>
1#include <stdbool.h> 2#include <stdbool.h>
2#include <stdio.h> 3#include <stdio.h>
3#include <stdlib.h> 4#include <stdlib.h>
@@ -276,9 +277,75 @@ deque_show(struct deque *d)
276 putchar('\n'); 277 putchar('\n');
277} 278}
278 279
280void
281test_deque(void)
282{
283 struct deque d[1];
284
285 deque_init(d);
286
287 const int N = 10000000;
288
289 for ( int i = 0; i != N; ++i ) {
290 deque_push_front(d, i);
291 }
292
293 for ( int i = 0; i != N; ++i ) {
294 int data;
295 assert(deque_pop_back(d, &data) == true);
296 assert(data == i);
297 }
298
299 deque_free(d);
300
301 deque_init(d);
302
303 for ( int i = 0; i != N; ++i ) {
304 deque_push_back(d, i);
305 }
306
307 for ( int i = 0; i != N; ++i ) {
308 int data;
309 assert(deque_pop_front(d, &data) == true);
310 assert(data == i);
311 }
312
313 deque_free(d);
314
315 deque_init(d);
316
317 for ( int i = 0; i != N; ++i ) {
318 deque_push_back(d, i);
319 }
320
321 for ( int i = N - 1; i >= 0; --i ) {
322 int data;
323 assert(deque_pop_back(d, &data) == true);
324 assert(data == i);
325 }
326
327 deque_free(d);
328
329 deque_init(d);
330
331 for ( int i = 0; i != N; ++i ) {
332 deque_push_front(d, i);
333 }
334
335 for ( int i = N - 1; i >= 0; --i ) {
336 int data;
337 assert(deque_pop_front(d, &data) == true);
338 assert(data == i);
339 }
340
341 deque_free(d);
342}
343
279int 344int
280main(void) 345main(void)
281{ 346{
347 test_deque();
348
282 struct deque c; 349 struct deque c;
283 350
284 deque_init(&c); 351 deque_init(&c);