@Test public void testCanTranslateBackAndForthBetweenMapAndArrayConsistently() { ResourceMapArrayBridge bridge = new ResourceMapArrayBridge(); Map<String, Double> allResources = new HashMap<>(); allResources.put(gpuResourceName, 2.0); allResources.put(disksResourceName, 64.0); Map<String, Double> normalizedResources = normalize(allResources); double[] resources = bridge.translateToResourceArray(normalizedResources); Map<String, Integer> resourceNamesToArrayIndex = bridge.getResourceNamesToArrayIndex(); assertThat(resourceNamesToArrayIndex.size(), is(2)); int gpuIndex = resourceNamesToArrayIndex.get(gpuResourceName); int disksIndex = resourceNamesToArrayIndex.get(disksResourceName); assertThat(resources.length, is(2)); assertThat(resources[gpuIndex], is(2.0)); assertThat(resources[disksIndex], is(64.0)); Map<String, Double> roundTrippedResources = bridge.translateFromResourceArray(resources); assertThat(roundTrippedResources, is(normalizedResources)); double[] roundTrippedResourceArray = bridge.translateToResourceArray(roundTrippedResources); assertThat(roundTrippedResourceArray, equalTo(resources)); }