package azkaban.utils;
import org.junit.Assert;
import org.junit.Test;
public class MemUtilsTest {
@Test
public void testConversion() {
Assert.assertEquals(Utils.parseMemString("1024"), 1L);
Assert.assertEquals(Utils.parseMemString("1K"), 1L);
Assert.assertEquals(Utils.parseMemString("1M"), 1024L);
Assert.assertEquals(Utils.parseMemString("1G"), 1024L * 1024L);
Assert.assertEquals(Utils.parseMemString("1k"), 1L);
Assert.assertEquals(Utils.parseMemString("1m"), 1024L);
Assert.assertEquals(Utils.parseMemString("1g"), 1024L * 1024L);
Assert.assertEquals(Utils.parseMemString("5000"), 4L);
Assert.assertEquals(Utils.parseMemString("1024K"), 1024L);
Assert.assertEquals(Utils.parseMemString("512M"), 512 * 1024L);
Assert.assertEquals(Utils.parseMemString("2G"), 2L * 1024L * 1024L);
}
@Test
public void testBadFormat() {
badFormatHelper("1KB");
badFormatHelper("1MB");
badFormatHelper("1GB");
badFormatHelper("1kb");
badFormatHelper("1mb");
badFormatHelper("1gb");
badFormatHelper("100.5K");
badFormatHelper("512.8M");
badFormatHelper("0.5G");
badFormatHelper("100b");
badFormatHelper("100f");
badFormatHelper("100abcdc");
}
private void badFormatHelper(String str) {
try {
Utils.parseMemString(str);
Assert.fail("should get a runtime exception");
} catch (Exception e) {
Assert.assertEquals(e instanceof NumberFormatException, true);
}
}
}