package org.civilian.text; import java.util.Locale; import org.civilian.CivTest; import org.junit.BeforeClass; import org.junit.Test; public class NumberFormatTest extends CivTest { @BeforeClass public static void beforeClass() { formatDe_ = new NumberFormat(Locale.GERMAN); formatUk_ = new NumberFormat(Locale.UK); } @Test public void testAccessors() { assertEquals(',', formatDe_.getDecimalSeparator()); assertEquals('.', formatUk_.getDecimalSeparator()); assertEquals('.', formatDe_.getGroupingSeparator()); assertEquals(',', formatUk_.getGroupingSeparator()); assertEquals(".", formatDe_.getGroupingSepString()); assertEquals(",", formatUk_.getGroupingSepString()); } @Test public void testFormatSimple() { assertEquals( "4", formatDe_.formatNatural( 4)); assertEquals( "234", formatDe_.formatNatural( 234)); assertEquals( "1.234", formatDe_.formatNatural( 1234)); assertEquals( "1,234", formatUk_.formatNatural( 1234)); assertEquals( "12.345", formatDe_.formatNatural( 12345)); assertEquals( "234,567", formatUk_.formatNatural( 234567)); assertEquals( "-4", formatDe_.formatNatural( -4)); assertEquals( "-234", formatDe_.formatNatural( -234)); assertEquals( "-1.234", formatDe_.formatNatural( -1234)); assertEquals( "-1,234", formatUk_.formatNatural( -1234)); assertEquals( "-12.345", formatDe_.formatNatural( -12345)); assertEquals("-234,567", formatUk_.formatNatural(-234567)); } @Test public void testPredefinedStyles() { assertEquals(2, NumberStyle.DEFAULT.minDecimals()); assertEquals(2, NumberStyle.DEFAULT.maxDecimals()); assertEquals(true, NumberStyle.DEFAULT.useGrouping()); assertEquals( 0, NumberStyle.RAW.minDecimals()); assertEquals(Integer.MAX_VALUE, NumberStyle.RAW.maxDecimals()); assertEquals(false, NumberStyle.RAW.useGrouping()); } @Test public void testStyleCreation() { assertEquals( 0, NumberStyle.DEFAULT.minDecimals(0).minDecimals()); assertEquals( 7, NumberStyle.DEFAULT.maxDecimals(7).maxDecimals()); assertEquals(false, NumberStyle.DEFAULT.useGrouping(false).useGrouping()); } @Test public void testStyleWholeNumbers() { NumberStyle style = NumberStyle.DEFAULT; assertEquals( "1", formatDe_.formatNatural(1, style)); assertEquals( "12", formatUk_.formatNatural(12, style)); assertEquals( "123", formatDe_.formatNatural(123, style)); assertEquals( "1,234", formatUk_.formatNatural(1234, style)); assertEquals( "12.345", formatDe_.formatNatural(12345, style)); assertEquals("123,456", formatUk_.formatNatural(123456, style)); style = NumberStyle.RAW; assertEquals( "1", formatDe_.formatNatural(1, style)); assertEquals( "12", formatUk_.formatNatural(12, style)); assertEquals( "123", formatDe_.formatNatural(123, style)); assertEquals( "1234", formatUk_.formatNatural(1234, style)); assertEquals( "12345", formatDe_.formatNatural(12345, style)); assertEquals( "123456", formatUk_.formatNatural(123456, style)); } @Test public void testStyleDecimals() { NumberStyle style = NumberStyle.DEFAULT; assertEquals("1,00", formatDe_.formatDecimal(1, style)); assertEquals("1.20", formatUk_.formatDecimal(1.2, style)); assertEquals("1,23", formatDe_.formatDecimal(1.23, style)); assertEquals("1,23", formatDe_.formatDecimal(1.239, style)); assertEquals("1.234,56",formatDe_.formatDecimal(1234.56, style)); assertEquals("1234.56", formatUk_.formatDecimal(1234.56, NumberStyle.RAW)); style = NumberStyle.DEFAULT.maxDecimals(3); assertEquals("1,00", formatDe_.formatDecimal(1, style)); assertEquals("1.20", formatUk_.formatDecimal(1.2, style)); assertEquals("1,23", formatDe_.formatDecimal(1.23, style)); assertEquals("1,239", formatDe_.formatDecimal(1.239, style)); assertEquals("1,239", formatDe_.formatDecimal(1.2398, style)); style = NumberStyle.DEFAULT.decimals(0); } private static NumberFormat formatDe_; private static NumberFormat formatUk_; }