public static void main(String[] args) throws Exception {
    Class mapClass = MAP_CLASS;
    int numTests = 50;
    int size = 50000;

    if (args.length > 0) {
      try {
        mapClass = Class.forName(args[0]);
      } catch (ClassNotFoundException e) {
        throw new RuntimeException("Class " + args[0] + " not found.");
      }
    }


    if (args.length > 1) {
      numTests = Integer.parseInt(args[1]);
    }

    if (args.length > 2) {
      size = Integer.parseInt(args[2]);
    }

    boolean doSerializeTest = args.length > 3;

    System.out.println("Testing " + mapClass.getName() + " trials: " + numTests + " size: " + size);

    absentSize = 4;
    while (absentSize <= size) {
      absentSize <<= 1;
    }
    absentMask = absentSize - 1;
    absent = new Integer[absentSize];
    for (int i = 0; i < absentSize; ++i) {
      absent[i] = 2 * (i - 1) + 1;
    }

    Integer[] key = new Integer[size];
    for (int i = 0; i < size; ++i) {
      key[i] = 2 * i;
    }

    for (int rep = 0; rep < numTests; ++rep) {
      shuffle(absent);
      runTest(newMap(mapClass), key);
    }

    TestTimer.printStats();


    if (doSerializeTest) {
      stest(newMap(mapClass), size);
    }
  }
@test
@synopsis Times and checks basic map operations
geode-core/src/integrationTest/java/org/apache/geode/internal/util/concurrent/cm/IntMapCheckJUnitTest.java