package rocks.inspectit.ui.rcp.formatter; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import org.testng.annotations.Test; import rocks.inspectit.shared.all.testbase.TestBase; /** * Test for the {@link NumberFormatter} class. * * @author Marius Oehler * */ public class NumberFormatterTest extends TestBase { /** * Tests the {@link NumberFormatter#humanReadableByteCount(long)} and * {@link NumberFormatter#humanReadableByteCount(long, int)} methods. */ public static class HumanReadableByteCount extends NumberFormatterTest { @Test public void validResultBytes() { String result = NumberFormatter.humanReadableByteCount(512L); assertThat(result, is(equalTo("512 B"))); } @Test public void validResultWithOneDecimalPlace() { String result = NumberFormatter.humanReadableByteCount(1900L); assertThat(result, is(equalTo("1.9 KiB"))); } @Test public void validResultWithMultipleDecimalPlaces() { String result = NumberFormatter.humanReadableByteCount(1900L, 3); assertThat(result, is(equalTo("1.855 KiB"))); } @Test public void validResultWithoutDecimalPlaces() { String result = NumberFormatter.humanReadableByteCount(1900L, 0); assertThat(result, is(equalTo("2 KiB"))); } @Test public void validResultMegaBytes() { long input = (long) Math.pow(1024D, 2D); String result = NumberFormatter.humanReadableByteCount(input); assertThat(result, is(equalTo("1.0 MiB"))); } @Test public void validResultGigaBytes() { long input = (long) Math.pow(1024D, 3D); String result = NumberFormatter.humanReadableByteCount(input); assertThat(result, is(equalTo("1.0 GiB"))); } @Test public void validResultTerraBytes() { long input = (long) Math.pow(1024D, 4D); String result = NumberFormatter.humanReadableByteCount(input); assertThat(result, is(equalTo("1.0 TiB"))); } @Test public void validResultPetaBytes() { long input = (long) Math.pow(1024D, 5D); String result = NumberFormatter.humanReadableByteCount(input); assertThat(result, is(equalTo("1.0 PiB"))); } @Test public void validResultExaBytes() { long input = (long) Math.pow(1024D, 6D); String result = NumberFormatter.humanReadableByteCount(input); assertThat(result, is(equalTo("1.0 EiB"))); } @Test public void validResultMaxLong() { String result = NumberFormatter.humanReadableByteCount(Long.MAX_VALUE); assertThat(result, is(equalTo("8.0 EiB"))); } } }