/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.view; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertTrue; import java.math.BigDecimal; import org.testng.annotations.Test; import com.opengamma.util.test.TestGroup; /** * Test NumberDeltaComparer. */ @Test(groups = TestGroup.UNIT) public class NumberDeltaComparerTest { public void bothNulls() { NumberDeltaComparer ndc = new NumberDeltaComparer(4); assertFalse(ndc.isDelta(null, null)); } public void oneNulls() { NumberDeltaComparer ndc = new NumberDeltaComparer(4); assertTrue(ndc.isDelta(null, 1.5)); assertTrue(ndc.isDelta(1.5, null)); } public void testDoubleFourDecimalPlaces() { NumberDeltaComparer ndc = new NumberDeltaComparer(4); assertFalse(ndc.isDelta(1.0000456789, 1.000056789)); assertTrue(ndc.isDelta(1.000456789, 1.00056789)); assertTrue(ndc.isDelta(1.000456789, 1.100456789)); assertFalse(ndc.isDelta(99.99999999, 99.99998888)); assertTrue(ndc.isDelta(99.999999999, 99.999899999)); assertFalse(ndc.isDelta(0.0, 0.0000123456)); assertTrue(ndc.isDelta(0.0, 0.000123456)); assertFalse(ndc.isDelta(0.0000123456, -0.0000123456)); } public void testDoubleNoDecimalPlaces() { NumberDeltaComparer ndc = new NumberDeltaComparer(0); assertFalse(ndc.isDelta(1.456, 1.567)); assertTrue(ndc.isDelta(1.123, 2.123)); assertFalse(ndc.isDelta(99.0, 99.9)); assertTrue(ndc.isDelta(99.9, 100.0)); } public void testDoubleMinusTwoDecimalPlaces() { // Means we're only interested in hundreds or more changing NumberDeltaComparer ndc = new NumberDeltaComparer(-2); assertFalse(ndc.isDelta(1000.123, 1099.999)); assertTrue(ndc.isDelta(1000.123, 1100.123)); } public void testBigDecimalTenDecimalPlaces() { NumberDeltaComparer ndc = new NumberDeltaComparer(10); assertFalse(ndc.isDelta(new BigDecimal(25.1234567890123456), new BigDecimal(25.1234567890223456))); assertTrue(ndc.isDelta(new BigDecimal(25.1234567890123456), new BigDecimal(25.1234567891123456))); } }