/* File: htest.C

   Testing the HashTable class for collisions
*/

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "hash.h"

main(int argc, char *argv[]) {
   int size, reps, i, r1, r2, r3, key ;
   long seed ;
   HashTable *H ; 

   if (argc != 4) {
	  printf("Usage: htest size reps seed\n") ;
	  exit(1) ;
   }
   r1 = sscanf(argv[1], "%d", &size) ;
   r2 = sscanf(argv[2], "%d", &reps) ;
   r3 = sscanf(argv[3], "%ld", &seed) ;	// long

   if (r1+r2+r3 < 3) {
	  printf("Use integer arguments!\n") ;
	  exit(1) ;
   }


   printf("size = %d, reps = %d, seed = %d\n", size, reps, seed) ;

   H = new HashTable(size) ;
   srand48(seed) ;

   for (i = 0 ; i < reps ; i++) {
	  key = lrand48() ;
	  H->Insert(ListItem(key)) ;
   }

// Comment out for large tables !
//   H->dump() ;

   H->stats() ;

   delete H ;
}
