private <K, V> void validateMap(Map<K, V> aMap, Map<K, V> bMap) {
    if ((aMap == null || aMap.isEmpty()) && (bMap == null || bMap.isEmpty())) {
      return;
    }
    // Equality is verified here because metastore updates stats automatically
    // and adds them in the returned partition. So the returned partition will
    // have parameters + some more parameters for the basic stats
    Assert.assertTrue(bMap.size() >= aMap.size());
    for (Entry<K, V> entries : aMap.entrySet()) {
      Assert.assertTrue("Expected " + entries.getKey() + " is missing from the map",
          bMap.containsKey(entries.getKey()));
      Assert.assertEquals("Expected value to be " + aMap.get(entries.getKey()) + " found" + bMap
          .get(entries.getKey()), aMap.get(entries.getKey()), bMap.get(entries.getKey()));
    }
  }
Confirms if the partitionWithoutSD object at partitionWithoutSDSIndex index has all the
projected fields set to values which are same as the ones set in origPartitions
@param projectedFields
@param sharedSD
@param partitionWithoutSDS
@param partitionWithoutSDSIndex
@throws IllegalAccessException
@throws InvocationTargetException
@throws NoSuchMethodException
standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestGetPartitionsUsingProjectionAndFilterSpecs.java