/** * 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 org.testng.annotations.Test; import com.opengamma.util.test.TestGroup; /** * Tests {@link DoubleValueSizeBasedDecimalPlaceFormatter}. */ @Test(groups = TestGroup.UNIT) public class DoubleValueSizeBasedDecimalPlaceFormatterTest { @Test public void test_alwaysNoDP() { DoubleValueSizeBasedDecimalPlaceFormatter formatter = new DoubleValueSizeBasedDecimalPlaceFormatter(0, 0, 10, true); 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 test_alwaysOneDP() { DoubleValueSizeBasedDecimalPlaceFormatter formatter = new DoubleValueSizeBasedDecimalPlaceFormatter(1, 1, 10, true); 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 test_adaptive() { DoubleValueSizeBasedDecimalPlaceFormatter formatter = new DoubleValueSizeBasedDecimalPlaceFormatter(2, 0, 9, true); assertEquals("-12,346", format(formatter, -12345.57874)); assertEquals("-12,345", format(formatter, -12345.49999)); assertEquals("-60", format(formatter, -59.97)); assertEquals("-10", format(formatter, -10.01)); assertEquals("-9.97", format(formatter, -9.97)); assertEquals("-0.15", format(formatter, -0.15123)); assertEquals("-0.15", format(formatter, -0.14967)); assertEquals("-0.15", format(formatter, -0.14500)); assertEquals("-0.14", format(formatter, -0.14499)); assertEquals("0.00", format(formatter, 0)); assertEquals("0.12", format(formatter, 0.123)); assertEquals("0.16", format(formatter, 0.159)); assertEquals("9.98", format(formatter, 9.98)); assertEquals("10", format(formatter, 10.01)); assertEquals("123", format(formatter, 123.446)); assertEquals("124", format(formatter, 123.500)); assertEquals("12,346", format(formatter, 12345.57874)); } private String format(DoubleValueFormatter formatter, double number) { return formatter.format(BigDecimal.valueOf(number)); } }