package org.tessell.util;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.fail;
import org.junit.Test;
public class NumberUtilsTest {
@Test
public void testFormatLong() {
assertThat(NumberUtils.format(-100), is("-100"));
assertThat(NumberUtils.format(0), is("0"));
assertThat(NumberUtils.format(100), is("100"));
assertThat(NumberUtils.format(1000), is("1,000"));
assertThat(NumberUtils.format(1000000000), is("1,000,000,000"));
}
@Test
public void testFormatDouble() {
assertThat(NumberUtils.format(-100, 2), is("-100.00"));
assertThat(NumberUtils.format(0, 0), is("0"));
assertThat(NumberUtils.format(0, 2), is("0.00"));
assertThat(NumberUtils.format(100.0, 0), is("100"));
assertThat(NumberUtils.format(100.6, 0), is("101"));
assertThat(NumberUtils.format(100.1, 2), is("100.10"));
assertThat(NumberUtils.format(10.1234, 2), is("10.12"));
assertThat(NumberUtils.format(10.1234, 4), is("10.1234"));
assertThat(NumberUtils.format(1000.123, 2), is("1,000.12"));
assertThat(NumberUtils.format(1000.126, 2), is("1,000.13"));
}
@Test
public void testParseDouble() throws Exception {
assertThat(NumberUtils.parse("0.", 2), is(0.0));
assertThat(NumberUtils.parse(".0", 2), is(0.0));
assertThat(NumberUtils.parse("0.0", 2), is(0.0));
assertThat(NumberUtils.parse("0.10", 2), is(0.10));
assertThat(NumberUtils.parse("0.10001", 2), is(0.10));
assertThat(NumberUtils.parse("1.10", 2), is(1.10));
assertThat(NumberUtils.parse("1.3", 2), is(1.30));
assertThat(NumberUtils.parse("1.33", 2), is(1.33));
assertThat(NumberUtils.parse("1.335", 2), is(1.34));
assertThat(NumberUtils.parse("-1.33", 2), is(-1.33));
assertThat(NumberUtils.parse("1,333", 2), is(1333.0));
assertThat(NumberUtils.parse("-1,333", 2), is(-1333.0));
assertNumberFormatException("");
assertNumberFormatException(".");
}
private static void assertNumberFormatException(final String value) {
try {
NumberUtils.parse(value, 2);
fail();
} catch (final NumberFormatException nfe) {
}
}
}