/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.web.server.conversion; import static org.testng.AssertJUnit.assertEquals; import java.math.BigDecimal; import java.text.DecimalFormatSymbols; import java.util.Locale; import org.testng.annotations.Test; import com.opengamma.util.test.TestGroup; /** * Tests {@link DoubleValueDecimalPlaceFormatter} */ @Test(groups = TestGroup.UNIT) public class DoubleValueDecimalPlaceFormatterTest { @Test public void testNoDP() { DoubleValueDecimalPlaceFormatter formatter = new DoubleValueDecimalPlaceFormatter(0, false); assertEquals("-1,234", format(formatter, -1234.123)); assertEquals("-10", format(formatter, -9.98543)); assertEquals("0", format(formatter, -0.1)); assertEquals("0", format(formatter, 0)); assertEquals("0", format(formatter, 0.1)); assertEquals("123", format(formatter, 123.456)); assertEquals("124", format(formatter, 123.556)); assertEquals("1,234", format(formatter, 1234.123)); assertEquals("12,345", format(formatter, 12345.123)); assertEquals("123,456", format(formatter, 123456.123)); assertEquals("1,234,567", format(formatter, 1234567.123)); assertEquals("12,345,678", format(formatter, 12345678.123)); } @Test public void testOneDP() { DoubleValueDecimalPlaceFormatter formatter = new DoubleValueDecimalPlaceFormatter(1, false); assertEquals("-12,345.6", format(formatter, -12345.57874)); assertEquals("-60.0", format(formatter, -59.97)); assertEquals("-0.2", format(formatter, -0.15123)); assertEquals("-0.1", format(formatter, -0.14967)); assertEquals("0.0", format(formatter, 0)); assertEquals("0.1", format(formatter, 0.123)); assertEquals("0.2", format(formatter, 0.159)); assertEquals("123.4", format(formatter, 123.446)); assertEquals("123.5", format(formatter, 123.456)); assertEquals("12,345.6", format(formatter, 12345.57874)); } @Test public void testFiveDP() { DoubleValueDecimalPlaceFormatter formatter = new DoubleValueDecimalPlaceFormatter(5, false); assertEquals("0.00000", format(formatter, 0)); assertEquals("12,345.57874", format(formatter, 12345.57874123)); } @Test public void testLocale() { DoubleValueDecimalPlaceFormatter formatter = new DoubleValueDecimalPlaceFormatter(2, false, DecimalFormatSymbols.getInstance(Locale.GERMAN)); assertEquals("1.234.567,98", format(formatter, 1234567.98)); assertEquals("1.234.567,00", format(formatter, 1234567)); assertEquals("1,23", format(formatter, 1.22666)); formatter = new DoubleValueDecimalPlaceFormatter(2, false, DecimalFormatSymbols.getInstance(Locale.FRENCH)); String nbsp = "\u00A0"; assertEquals("1" + nbsp + "234,99", format(formatter, 1234.987654321)); } private String format(DoubleValueFormatter formatter, double number) { return formatter.format(BigDecimal.valueOf(number)); } }