Beispiel #1
0
  /* =============================================================================
   * initializeManager
   * =============================================================================
   */
  public Manager initializeManager() {
    int i;
    int t;
    System.out.println("Initializing manager... ");

    Random randomPtr = new Random();
    randomPtr.random_alloc();
    Manager managerPtr = new Manager();

    int numRelation = RELATIONS;
    int ids[] = new int[numRelation];
    for (i = 0; i < numRelation; i++) {
      ids[i] = i + 1;
    }

    for (t = 0; t < 4; t++) {

      /* Shuffle ids */
      for (i = 0; i < numRelation; i++) {
        int x = randomPtr.posrandom_generate() % numRelation;
        int y = randomPtr.posrandom_generate() % numRelation;
        int tmp = ids[x];
        ids[x] = ids[y];
        ids[y] = tmp;
      }

      /* Populate table */
      for (i = 0; i < numRelation; i++) {
        boolean status;
        int id = ids[i];
        int num = ((randomPtr.posrandom_generate() % 5) + 1) * 100;
        int price = ((randomPtr.posrandom_generate() % 5) * 10) + 50;
        if (t == 0) {
          status = managerPtr.manager_addCar(id, num, price);
        } else if (t == 1) {
          status = managerPtr.manager_addFlight(id, num, price);
        } else if (t == 2) {
          status = managerPtr.manager_addRoom(id, num, price);
        } else if (t == 3) {
          status = managerPtr.manager_addCustomer(id);
        }
        // assert(status);
      }
    } /* for t */

    System.out.println("done.");
    return managerPtr;
  }
Beispiel #2
0
  void checkTables(Manager managerPtr) {
    int i;
    int numRelation = RELATIONS;
    RBTree customerTablePtr = managerPtr.customerTablePtr;
    RBTree tables[] = new RBTree[3];
    tables[0] = managerPtr.carTablePtr;
    tables[1] = managerPtr.flightTablePtr;
    tables[2] = managerPtr.roomTablePtr;
    int numTable = 3;

    int t;

    System.out.println("Checking tables... ");

    /* Check for unique customer IDs */
    int percentQuery = QUERIES;
    int queryRange = (int) ((double) percentQuery / 100.0 * (double) numRelation + 0.5);
    int maxCustomerId = queryRange + 1;
    for (i = 1; i <= maxCustomerId; i++) {
      if (customerTablePtr.find(i) != null) {
        customerTablePtr.remove(i);
      }
    }

    /* Check reservation tables for consistency and unique ids */
    for (t = 0; t < numTable; t++) {
      RBTree tablePtr = tables[t];
      for (i = 1; i <= numRelation; i++) {
        if (tablePtr.find(i) != null) {
          if (t == 0) {
            managerPtr.manager_addCar(i, 0, 0);
          } else if (t == 1) {
            managerPtr.manager_addFlight(i, 0, 0);
          } else if (t == 2) {
            managerPtr.manager_addRoom(i, 0, 0);
          }
          tablePtr.remove(i);
        }
      }
    }

    System.out.println("done.");
  }