/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.fudgemsg;
import static org.testng.AssertJUnit.assertEquals;
import org.testng.annotations.Test;
import org.threeten.bp.LocalDate;
import com.opengamma.financial.analytics.DoubleLabelledMatrix1D;
import com.opengamma.financial.analytics.LocalDateLabelledMatrix1D;
import com.opengamma.financial.analytics.StringLabelledMatrix1D;
import com.opengamma.financial.analytics.TenorLabelledMatrix1D;
import com.opengamma.util.test.TestGroup;
import com.opengamma.util.time.Tenor;
/**
*
*/
@Test(groups = TestGroup.UNIT)
public class LabelledMatrix1DBuilderTest extends AnalyticsTestBase {
@Test
public void testDouble() {
final Double[] keys = new Double[] {1., 2., 3., 4., 5.};
final Object[] labels = new Object[] {"1y", "2y", "3y", "4y", "5y"};
final double[] values = new double[] {0.1, 0.2, 0.3, 0.4, 0.5};
final DoubleLabelledMatrix1D m1 = new DoubleLabelledMatrix1D(keys, labels, values);
final DoubleLabelledMatrix1D m2 = cycleObject(DoubleLabelledMatrix1D.class, m1);
assertEquals(m1, m2);
final DoubleLabelledMatrix1D m3 = new DoubleLabelledMatrix1D(keys, values);
final DoubleLabelledMatrix1D m4 = cycleObject(DoubleLabelledMatrix1D.class, m3);
assertEquals(m3, m4);
final DoubleLabelledMatrix1D m5 = new DoubleLabelledMatrix1D(keys, keys, values);
final DoubleLabelledMatrix1D m6 = cycleObject(DoubleLabelledMatrix1D.class, m5);
assertEquals(m5, m6);
final DoubleLabelledMatrix1D m7 = new DoubleLabelledMatrix1D(keys, labels, "labels", values, "values");
final DoubleLabelledMatrix1D m8 = cycleObject(DoubleLabelledMatrix1D.class, m7);
assertEquals(m7, m8);
}
@Test
public void testLocalDate() {
final LocalDate[] keys = new LocalDate[] {LocalDate.of(2012, 1, 1), LocalDate.of(2013, 1, 1), LocalDate.of(2014, 1, 1), LocalDate.of(2015, 1, 1), LocalDate.of(2016, 1, 1)};
final Object[] labels = new Object[] {"1y", "2y", "3y", "4y", "5y"};
final double[] values = new double[] {0.1, 0.2, 0.3, 0.4, 0.5};
final LocalDateLabelledMatrix1D m1 = new LocalDateLabelledMatrix1D(keys, labels, values);
final LocalDateLabelledMatrix1D m2 = cycleObject(LocalDateLabelledMatrix1D.class, m1);
assertEquals(m1, m2);
final LocalDateLabelledMatrix1D m3 = new LocalDateLabelledMatrix1D(keys, values);
final LocalDateLabelledMatrix1D m4 = cycleObject(LocalDateLabelledMatrix1D.class, m3);
assertEquals(m3, m4);
final LocalDateLabelledMatrix1D m5 = new LocalDateLabelledMatrix1D(keys, keys, values);
final LocalDateLabelledMatrix1D m6 = cycleObject(LocalDateLabelledMatrix1D.class, m5);
assertEquals(m5, m6);
final LocalDateLabelledMatrix1D m7 = new LocalDateLabelledMatrix1D(keys, labels, "labels", values, "values");
final LocalDateLabelledMatrix1D m8 = cycleObject(LocalDateLabelledMatrix1D.class, m7);
assertEquals(m7, m8);
}
@Test
public void testString() {
final String[] keys = new String[] {"A", "B", "C", "D", "E"};
final double[] values = new double[] {0.1, 0.2, 0.3, 0.4, 0.5};
final StringLabelledMatrix1D m1 = new StringLabelledMatrix1D(keys, values);
final StringLabelledMatrix1D m2 = cycleObject(StringLabelledMatrix1D.class, m1);
assertEquals(m1, m2);
final StringLabelledMatrix1D m3 = new StringLabelledMatrix1D(keys, "labels", values, "values");
final StringLabelledMatrix1D m4 = cycleObject(StringLabelledMatrix1D.class, m3);
assertEquals(m3, m4);
}
@Test
public void testTenor() {
final Tenor[] tenors = new Tenor[] {Tenor.ONE_DAY, Tenor.ONE_WEEK, Tenor.ONE_MONTH, Tenor.ONE_YEAR};
final Object[] labels = new Object[] {"P1D", "P7D", "P1M", "P1Y"};
final double[] values = new double[] {1, 2, 3, 4};
TenorLabelledMatrix1D matrix = new TenorLabelledMatrix1D(tenors, labels, values);
assertEquals(matrix, cycleObject(TenorLabelledMatrix1D.class, matrix));
matrix = new TenorLabelledMatrix1D(tenors, values);
assertEquals(matrix, cycleObject(TenorLabelledMatrix1D.class, matrix));
}
}