/** * 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 DoubleValueSignificantFiguresFormatter} */ @Test(groups = TestGroup.UNIT) public class DoubleValueSignificantFiguresFormatterTest { @Test public void test3SF() { DoubleValueSignificantFiguresFormatter formatter = new DoubleValueSignificantFiguresFormatter(3, false); assertEquals("-1,234", format(formatter, -1234.123)); assertEquals("-1.23", format(formatter, -1.22678)); assertEquals("0.0", format(formatter, 0)); assertEquals("0.00000123", format(formatter, 0.00000123456)); assertEquals("123", format(formatter, 123.456)); assertEquals("123,457", format(formatter, 123456.789)); } @Test public void testLocale() { DoubleValueSignificantFiguresFormatter formatter = new DoubleValueSignificantFiguresFormatter(2, false, DecimalFormatSymbols.getInstance(Locale.GERMAN)); assertEquals("-1.234", format(formatter, -1234.432)); assertEquals("-12", format(formatter, -12.123)); assertEquals("0,0", format(formatter, 0)); assertEquals("0,12", format(formatter, 0.12)); assertEquals("1.234", format(formatter, 1233.56)); formatter = new DoubleValueSignificantFiguresFormatter(5, false, DecimalFormatSymbols.getInstance(Locale.FRENCH)); String nbsp = "\u00A0"; assertEquals("1" + nbsp + "234,5", format(formatter, 1234.4567)); } private String format(DoubleValueFormatter formatter, double number) { return formatter.format(BigDecimal.valueOf(number)); } }