diff options
| author | Thomas Schmucker <ts@its1.de> | 2020-08-15 16:31:12 +0200 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2020-08-15 16:31:12 +0200 |
| commit | 5a869f2d5656523646b7526d59d48f49708a4c8c (patch) | |
| tree | d756271787a4213afdc9e65bc10754e4396259b8 | |
| parent | a1979af4de4c3f2d6a3cea3d3181170b67647143 (diff) | |
| download | data-structures-5a869f2d5656523646b7526d59d48f49708a4c8c.tar.gz data-structures-5a869f2d5656523646b7526d59d48f49708a4c8c.tar.bz2 data-structures-5a869f2d5656523646b7526d59d48f49708a4c8c.zip | |
Einfache Testroutine hinzugefügt.
| -rw-r--r-- | deque.c | 67 |
1 files changed, 67 insertions, 0 deletions
| @@ -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 | ||
| 280 | void | ||
| 281 | test_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 | |||
| 279 | int | 344 | int |
| 280 | main(void) | 345 | main(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); |
