/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics;
import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
import org.testng.annotations.Test;
import com.opengamma.util.money.Currency;
import com.opengamma.util.test.TestGroup;
@Test(groups = TestGroup.UNIT)
public class DoubleCurrencyLabelledMatrix2DTest {
public void testAddUsingDoubleLabels() {
DoubleCurrencyLabelledMatrix2D m1 = new DoubleCurrencyLabelledMatrix2D(
new Double[] { 1d, 3d }, new Object[] { "1", "3" },
new Currency[] { Currency.USD }, new Object[] { "USD" },
new double[][] { new double[] { 0.3, 0.5 } });
DoubleCurrencyLabelledMatrix2D m1Doubled = m1.addUsingDoubleLabels(m1);
assertArrayEquals(m1.getXKeys(), m1Doubled.getXKeys());
assertArrayEquals(m1.getXLabels(), m1Doubled.getXLabels());
assertArrayEquals(m1.getYKeys(), m1Doubled.getYKeys());
assertArrayEquals(m1.getYLabels(), m1Doubled.getYLabels());
assertArrayEquals(new double[][] { new double[] { 0.6, 1.0 } }, m1Doubled.getValues());
DoubleCurrencyLabelledMatrix2D m2 = new DoubleCurrencyLabelledMatrix2D(
new Double[] { 1d, 2d }, new Object[] { "1", "2" },
new Currency[] { Currency.USD }, new Object[] { "USD" },
new double[][] { new double[] { 0.1, 0.7 } });
DoubleCurrencyLabelledMatrix2D m1PlusM2 = m1.addUsingDoubleLabels(m2);
assertArrayEquals(new Double[] { 1d, 2d, 3d }, m1PlusM2.getXKeys());
assertArrayEquals(new Object[] { "1", "2", "3" }, m1PlusM2.getXLabels());
assertArrayEquals(new Currency[] { Currency.USD }, m1PlusM2.getYKeys());
assertArrayEquals(new Object[] { "USD" }, m1PlusM2.getYLabels());
assertArrayEquals(new double[][] { new double[] { 0.4, 0.7, 0.5 } }, m1PlusM2.getValues());
DoubleCurrencyLabelledMatrix2D m3 = new DoubleCurrencyLabelledMatrix2D(
new Double[] { 1d, 2d }, new Object[] { "1", "2" },
new Currency[] { Currency.GBP }, new Object[] { "GBP" },
new double[][] { new double[] { 0.1, 0.7 } });
DoubleCurrencyLabelledMatrix2D m1PlusM3 = m1.addUsingDoubleLabels(m3);
assertArrayEquals(new Double[] { 1d, 2d, 3d }, m1PlusM3.getXKeys());
assertArrayEquals(new Object[] { "1", "2", "3" }, m1PlusM3.getXLabels());
assertArrayEquals(new Currency[] { Currency.GBP, Currency.USD }, m1PlusM3.getYKeys());
assertArrayEquals(new Object[] { "GBP", "USD" }, m1PlusM3.getYLabels());
assertArrayEquals(new double[][] { new double[] { 0.1, 0.7, 0.0 }, new double[] { 0.3, 0.0, 0.5 } }, m1PlusM3.getValues());
}
}