/** * Converts a memory value from human readable form to the value in bytes. * * @param magnitude the magnitude * @param inUnit the input (comparison is case insensitve) * @param outUnit the output (comparison is case insensitve) * @return the value converted to bytes */ public static double memoryToBytes(double magnitude, String unit) { if (BINARY_MEMORY_UNITS.contains(unit.toLowerCase())) { return memoryBinaryConversion(magnitude, unit, "b"); } else { return memoryDecimalConversion(magnitude, unit, "b"); } }
@Test public void testBinaryMemory() throws Exception { assertEquals(2.0, ConversionUtil.memoryBinaryConversion(2, "B", "B"), 0.01); assertEquals(2048.0, ConversionUtil.memoryBinaryConversion(2, "KiB", "B"), 0.01); assertEquals(2097152.0, ConversionUtil.memoryBinaryConversion(2, "MiB", "B"), 0.01); assertEquals(2147483648.0, ConversionUtil.memoryBinaryConversion(2, "GiB", "B"), 0.01); assertEquals(2199023255552.0, ConversionUtil.memoryBinaryConversion(2, "TiB", "B"), 0.01); assertEquals(2251799813685248.0, ConversionUtil.memoryBinaryConversion(2, "PiB", "B"), 0.01); }
@Test public void testMemoryConversion() throws Exception { assertEquals(2147483648.0, ConversionUtil.memoryBinaryConversion(2.0, "GiB", "B"), 0.01); assertEquals(2097152.0, ConversionUtil.memoryBinaryConversion(2.0, "GiB", "kiB"), 0.01); assertEquals(2048.0, ConversionUtil.memoryBinaryConversion(2.0, "GiB", "MiB"), 0.01); assertEquals(2.0, ConversionUtil.memoryBinaryConversion(2.0, "GiB", "GiB"), 0.01); assertEquals(2097152.0, ConversionUtil.memoryBinaryConversion(2.0, "MiB", "B"), 0.01); assertEquals(2048.0, ConversionUtil.memoryBinaryConversion(2.0, "MiB", "kiB"), 0.01); assertEquals(2.0, ConversionUtil.memoryBinaryConversion(2.0, "MiB", "MiB"), 0.01); assertEquals(0.00195, ConversionUtil.memoryBinaryConversion(2.0, "MiB", "GiB"), 0.00001); } }