1/* vector_test.c .... Test the vector package. 2 * C. Scott Ananian <cananian@alumni.princeton.edu> 3 * 4 * $Id: vector_test.c,v 1.2 2003/06/17 17:25:47 reink Exp $ 5 */ 6 7#include <stdlib.h> 8#include <assert.h> 9#include "vector.h" 10 11#define MAX 25 12 13void main(void) { 14 int i, j, retval; 15 16 VECTOR *v = vector_create(); 17 assert(v != NULL); 18 assert(vector_size(v)==0); 19 for (i=0; i<=MAX; i++) { 20 assert(!vector_contains(v, i)); 21 assert(!vector_remove(v, i)); 22 assert(!vector_search(v, i, (PPTP_CALL **)&j)); 23 retval = vector_scan(v, i, MAX*2, &j); 24 assert(retval); 25 assert(j==i); 26 } 27 28 for (i=1; i<=MAX; i++) { 29 retval = vector_insert(v, i, (PPTP_CALL *)i); 30 assert(retval); 31 assert(vector_size(v)==i); 32 } 33 for (i=1; i<MAX; i++) { 34 retval = vector_search(v, i, (PPTP_CALL **)&j); 35 assert(retval); 36 assert(j==i); 37 retval = vector_contains(v, i); 38 assert(retval); 39 } 40 assert(vector_size(v)==MAX); 41 retval = vector_contains(v, MAX+1); 42 assert(!retval); 43 retval = vector_search(v, MAX+1, (PPTP_CALL **)&j); 44 assert(!retval); 45 46 retval = vector_scan(v, 0, MAX, &j); 47 assert(retval); 48 assert(j==0); 49 retval = vector_scan(v, 1, MAX, &j); 50 assert(!retval); 51 retval = vector_scan(v, 1, MAX+1, &j); 52 assert(retval); 53 assert(j==MAX+1); 54 retval = vector_scan(v, 1, MAX+MAX, &j); 55 assert(retval); 56 assert(j==MAX+1); 57 58 for (i=0; i<(MAX*10); i++) { 59 int k = (random() % MAX) + 1; 60 assert(vector_contains(v, k)); 61 assert(!vector_scan(v, 1, k, &j)); 62 assert(!vector_scan(v, k, MAX, &j)); 63 retval = vector_remove(v, k); 64 assert(retval); 65 assert(vector_size(v)==MAX-1); 66 assert(!vector_contains(v, k)); 67 assert(!vector_search(v, k, (PPTP_CALL **) &j)); 68 retval = vector_scan(v, 1, MAX, &j); 69 assert(retval); 70 assert(j==k); 71 retval = vector_insert(v, k, (PPTP_CALL *) k); 72 assert(retval); 73 assert(vector_size(v)==MAX); 74 assert(vector_contains(v, k)); 75 assert(!vector_scan(v, 1, MAX, &j)); 76 retval = vector_search(v, k, (PPTP_CALL **) &j); 77 assert(retval); 78 assert(j==k); 79 } 80 81 for (i=1; i<=MAX; i++) { 82 assert(vector_size(v)==MAX-(i-1)); 83 vector_remove(v, i); 84 assert(vector_size(v)==MAX-i); 85 assert(!vector_contains(v, i)); 86 retval = vector_search(v, i, (PPTP_CALL **) &j); 87 assert(!retval); 88 retval = vector_scan(v, 1, MAX, &j); 89 assert(retval); 90 assert(j==1); 91 } 92 assert(vector_size(v)==0); 93 vector_destroy(v); 94} 95