#include <cassert>
#include <iostream>
using namespace std;

#include <buckettest.h>
#include <commandline.h>
#include <hashtabletest.h>
#include <typedefs.h>


int main(int argc, char** argv)
{

  commandline cmd(argc,argv);
  uint prog(0);
  cmd.mapvar(prog,"prog");

  switch (prog)
  {
    case 0:
      cout << "./main prog=1  " << hashtabletest::doc[1] << endl;
      cout << "./main prog=2  " << hashtabletest::doc[2] << endl;
      cout << "./main prog=3  " << hashtabletest::doc[3] << endl;
      cout << "./main prog=4  " << hashtabletest::doc[4] << endl;
      cout << "./main prog=5  " << hashtabletest::doc[5] << endl;
      cout << "./main prog=6  " << hashtabletest::doc[6] << endl;
      cout << "./main prog=7  " << hashtabletest::doc[7] << endl;
      cout << "./main prog=8  " << hashtabletest::doc[8] << endl;

      cout << "./main prog=11  " << buckettest::doc[1] << endl;
      cout << "./main prog=12  " << buckettest::doc[2] << endl;
      cout << "./main prog=13  " << buckettest::doc[3] << endl;
      cout << "./main prog=14  " << buckettest::doc[4] << endl;

      break;


    case 1: hashtabletest::test01(); break;
    case 2: return hashtabletest::test02unit(); 
    case 3: return hashtabletest::test03unit(); 
    case 4: return hashtabletest::test04unit(); 
    case 5: hashtabletest::test05(); break;
    case 6: hashtabletest::test06(); break;
    case 7: hashtabletest::test07(); break;
    case 8: hashtabletest::test08(); break;
    case 11: buckettest::test01(); break;
    case 12: buckettest::test02(); break;
    case 13: buckettest::test03(); break;
    case 14: buckettest::test04(); break;

    default: cout << "error:  No case handled." << endl; return 1;
  }

  return 0;
}



