@Test
public void testCalculateClusterAndFairRatios() {

  Map<String, Integer> index = ResourceUtils.getResourceTypeIndex();
  Resource used = Resources.createResource(10, 5);
  Resource capacity = Resources.createResource(100, 10);
  float[][] shares = new float[3][2];
  DominantResourceFairnessComparatorN comparator =
      new DominantResourceFairnessComparatorN();
  used.setResourceValue("test", 2L);
  capacity.setResourceValue("test", 5L);
  int dominant = comparator.calculateClusterAndFairRatios(used, capacity,
      shares, 1.0f);
  assertEquals("Calculated usage ratio for memory (10MB out of 100MB) is "
      + "incorrect", 0.1,
      shares[index.get(ResourceInformation.MEMORY_MB.getName())][0], .00001);
  assertEquals("Calculated usage ratio for vcores (5 out of 10) is "
      + "incorrect", 0.5,
      shares[index.get(ResourceInformation.VCORES.getName())][0], .00001);
  assertEquals("Calculated usage ratio for test resource (2 out of 5) is "
      + "incorrect", 0.4, shares[index.get("test")][0], .00001);
  assertEquals("The wrong dominant resource index was returned",
      index.get(ResourceInformation.VCORES.getName()).intValue(),
      dominant);
}