@SuppressWarnings("unchecked")
 protected CheckTuple createDoubleCheckTuple(double[] fieldValues, int numKeyFields) {
   RTreeCheckTuple<Double> checkTuple =
       new RTreeCheckTuple<Double>(fieldValues.length, numKeyFields);
   for (double v : fieldValues) {
     checkTuple.appendField(v);
   }
   return checkTuple;
 }
 @SuppressWarnings("unchecked")
 @Override
 protected CheckTuple createIntCheckTuple(int[] fieldValues, int numKeyFields) {
   RTreeCheckTuple<Integer> checkTuple =
       new RTreeCheckTuple<Integer>(fieldValues.length, numKeyFields);
   for (int v : fieldValues) {
     checkTuple.appendField(v);
   }
   return checkTuple;
 }
 @SuppressWarnings("unchecked")
 // Create a new ArrayList containing the elements satisfying the search key
 public HashMultiSet<RTreeCheckTuple> getRangeSearchExpectedResults(
     Collection<RTreeCheckTuple> checkTuples, RTreeCheckTuple key) {
   HashMultiSet<RTreeCheckTuple> expectedResult = new HashMultiSet<RTreeCheckTuple>();
   Iterator<RTreeCheckTuple> iter = checkTuples.iterator();
   while (iter.hasNext()) {
     RTreeCheckTuple t = iter.next();
     if (t.intersect(key)) {
       expectedResult.add(t);
     }
   }
   return expectedResult;
 }
 @Override
 public void checkExpectedResults(
     ITreeIndexCursor cursor,
     Collection checkTuples,
     ISerializerDeserializer[] fieldSerdes,
     int keyFieldCount,
     Iterator<CheckTuple> checkIter)
     throws Exception {
   int actualCount = 0;
   try {
     while (cursor.hasNext()) {
       cursor.next();
       ITupleReference tuple = cursor.getTuple();
       RTreeCheckTuple checkTuple =
           (RTreeCheckTuple) createCheckTupleFromTuple(tuple, fieldSerdes, keyFieldCount);
       if (!checkTuples.contains(checkTuple)) {
         fail("Scan or range search returned unexpected answer: " + checkTuple.toString());
       }
       actualCount++;
     }
     if (actualCount < checkTuples.size()) {
       fail(
           "Scan or range search returned fewer answers than expected.\nExpected: "
               + checkTuples.size()
               + "\nActual  : "
               + actualCount);
     }
     if (actualCount > checkTuples.size()) {
       fail(
           "Scan or range search returned more answers than expected.\nExpected: "
               + checkTuples.size()
               + "\nActual  : "
               + actualCount);
     }
   } finally {
     cursor.close();
   }
 }