/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.fudgemsg;
import static org.testng.AssertJUnit.assertEquals;
import java.util.HashMap;
import java.util.Map;
import org.testng.annotations.Test;
import com.opengamma.core.marketdatasnapshot.VolatilityCubeData;
import com.opengamma.util.test.TestGroup;
import com.opengamma.util.time.Tenor;
import com.opengamma.util.tuple.Triple;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class VolatilityCubeDataFudgeBuilderTest extends FinancialTestBase {
@Test
public void testCycle() {
final Tenor[] x = new Tenor[10];
final Tenor[] y = new Tenor[10];
final Double[] z = new Double[10];
for (int i = 1; i <= 10; i++) {
x[i - 1] = Tenor.ofYears(i);
y[i - 1] = Tenor.ofYears(i + 10);
z[i - 1] = Double.valueOf(i);
}
final Map<Triple<Tenor, Tenor, Double>, Double> values = new HashMap<>();
for (final Tenor tenorX : x) {
for (final Tenor tenorY : y) {
for (final Double doubleZ : z) {
values.put(Triple.of(tenorX, tenorY, doubleZ), Math.random());
}
}
}
VolatilityCubeData<Tenor, Tenor, Double> data = new VolatilityCubeData<>("def", "spec", "x1", "y1", "z1", values);
VolatilityCubeData<Tenor, Tenor, Double> cycled = cycleObject(VolatilityCubeData.class, data);
assertEquals(data.asMap(), cycled.asMap());
assertEquals(data.getDefinitionName(), cycled.getDefinitionName());
assertEquals(data.getSpecificationName(), cycled.getSpecificationName());
assertEquals(data.getXLabel(), cycled.getXLabel());
assertEquals(data.getYLabel(), cycled.getYLabel());
assertEquals(data.getZLabel(), cycled.getZLabel());
data = new VolatilityCubeData<>("def", "spec", values);
cycled = cycleObject(VolatilityCubeData.class, data);
assertEquals(data.asMap(), cycled.asMap());
assertEquals(data.getDefinitionName(), cycled.getDefinitionName());
assertEquals(data.getSpecificationName(), cycled.getSpecificationName());
assertEquals(data.getXLabel(), cycled.getXLabel());
assertEquals(data.getYLabel(), cycled.getYLabel());
assertEquals(data.getZLabel(), cycled.getZLabel());
}
@Test
public void testEmptyCycle() {
final Map<Triple<Tenor, Tenor, Double>, Double> values = new HashMap<>();
VolatilityCubeData<Tenor, Tenor, Double> data = new VolatilityCubeData<>("def", "spec", "x1", "y1", "z1", values);
VolatilityCubeData<Tenor, Tenor, Double> cycled = cycleObject(VolatilityCubeData.class, data);
assertEquals(data.asMap(), cycled.asMap());
assertEquals(data.getDefinitionName(), cycled.getDefinitionName());
assertEquals(data.getSpecificationName(), cycled.getSpecificationName());
assertEquals(data.getXLabel(), cycled.getXLabel());
assertEquals(data.getYLabel(), cycled.getYLabel());
assertEquals(data.getZLabel(), cycled.getZLabel());
assertEquals(data, cycleObject(VolatilityCubeData.class, data));
data = new VolatilityCubeData<>("def", "spec", values);
cycled = cycleObject(VolatilityCubeData.class, data);
assertEquals(data.asMap(), cycled.asMap());
assertEquals(data.getDefinitionName(), cycled.getDefinitionName());
assertEquals(data.getSpecificationName(), cycled.getSpecificationName());
assertEquals(data.getXLabel(), cycled.getXLabel());
assertEquals(data.getYLabel(), cycled.getYLabel());
assertEquals(data.getZLabel(), cycled.getZLabel());
}
}