//  File: htest.C
//
//  Testing the HashTable class for collisions

#include <stdio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include "hash.h"


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

   if (argc != 4) {
      cerr << "Usage: htest size reps seed" << endl ;
      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) {
      cerr << "Use integer arguments!" << endl ;
      exit(1) ;
   }


   cout << "size = " << size << ", reps = " << reps
        << ", seed = " << seed << endl ;


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

   for (i = 0 ; i < reps ; i++) {
      key = lrand48() ;
      Hptr->insert(key) ;
   }


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

   Hptr->stats() ;

   delete Hptr ;
}
