/* ============================================================================= * 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; }
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."); }