/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.var.parametric; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import java.util.Collections; import java.util.Map; import org.testng.annotations.Test; import com.opengamma.analytics.math.matrix.ColtMatrixAlgebra; import com.opengamma.analytics.math.matrix.DoubleMatrix1D; import com.opengamma.analytics.math.matrix.DoubleMatrix2D; import com.opengamma.analytics.math.matrix.MatrixAlgebra; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class DeltaMeanCalculatorTest { private static final MatrixAlgebra ALGEBRA = new ColtMatrixAlgebra(); private static final DeltaMeanCalculator F = new DeltaMeanCalculator(ALGEBRA); private static final DoubleMatrix1D EMPTY_VECTOR = new DoubleMatrix1D(new double[0]); private static final DoubleMatrix2D EMPTY_MATRIX = new DoubleMatrix2D(new double[0][0]); private static final DoubleMatrix1D VECTOR = new DoubleMatrix1D(new double[] {3}); private static final DoubleMatrix2D MATRIX = new DoubleMatrix2D(new double[][] {new double[] {1}}); private static final DoubleMatrix1D ZERO = new DoubleMatrix1D(new double[] {0}); @Test(expectedExceptions = IllegalArgumentException.class) public void testNullAlgebra() { new DeltaMeanCalculator(null); } @Test(expectedExceptions = IllegalArgumentException.class) public void testNullData() { F.evaluate((Map<Integer, ParametricVaRDataBundle>) null); } @Test(expectedExceptions = IllegalArgumentException.class) public void testEmptyValueDeltaVector() { final ParametricVaRDataBundle data = new ParametricVaRDataBundle(null, null, EMPTY_VECTOR, EMPTY_MATRIX, 1); final Map<Integer, ParametricVaRDataBundle> bundle = Collections.singletonMap(1, data); F.evaluate(bundle); } @Test public void testEqualsAndHashCode() { final DeltaMeanCalculator f1 = new DeltaMeanCalculator(ALGEBRA); final DeltaMeanCalculator f2 = new DeltaMeanCalculator(new ColtMatrixAlgebra()); assertEquals(f1, F); assertEquals(f1.hashCode(), F.hashCode()); assertFalse(f1.equals(f2)); } @Test public void test() { ParametricVaRDataBundle data = new ParametricVaRDataBundle(null, ZERO, VECTOR, MATRIX, 1); Map<Integer, ParametricVaRDataBundle> bundle = Collections.singletonMap(1, data); assertEquals(F.evaluate(bundle), 0, 1e-9); data = new ParametricVaRDataBundle(null, VECTOR, VECTOR, MATRIX, 1); bundle = Collections.singletonMap(1, data); assertEquals(F.evaluate(bundle), 9, 1e-9); } }