/** * 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.VolatilitySurfaceData; import com.opengamma.util.money.Currency; import com.opengamma.util.test.TestGroup; import com.opengamma.util.time.Tenor; import com.opengamma.util.tuple.Pair; import com.opengamma.util.tuple.Pairs; /** * Test. */ @Test(groups = TestGroup.UNIT) public class SurfaceDataFudgeBuilderTest extends FinancialTestBase { @Test public void testCycle() { final Tenor[] oneToTenYears = new Tenor[10]; for (int i = 1; i <= 10; i++) { oneToTenYears[i - 1] = Tenor.ofYears(i); } final Map<Pair<Tenor, Tenor>, Double> values = new HashMap<>(); for (final Tenor tenorX : oneToTenYears) { for (final Tenor tenorY : oneToTenYears) { values.put(Pairs.of(tenorX, tenorY), Math.random()); } } final VolatilitySurfaceData<Tenor, Tenor> data = new VolatilitySurfaceData<>("US", "US", Currency.USD, oneToTenYears, oneToTenYears, values); assertEquals(data, cycleObject(VolatilitySurfaceData.class, data)); final VolatilitySurfaceData<Tenor, Tenor> dataWithName = new VolatilitySurfaceData<>("US", "US", Currency.USD, oneToTenYears, "time", oneToTenYears, "strike", values); assertEquals(dataWithName, cycleObject(VolatilitySurfaceData.class, dataWithName)); } @Test public void testEmptyCycle() { final Tenor[] zero = new Tenor[0]; final Map<Pair<Tenor, Tenor>, Double> values = new HashMap<>(); final VolatilitySurfaceData<Tenor, Tenor> data = new VolatilitySurfaceData<>("US", "US", Currency.USD, zero, zero, values); assertEquals(data, cycleObject(VolatilitySurfaceData.class, data)); final VolatilitySurfaceData<Tenor, Tenor> dataWithName = new VolatilitySurfaceData<>("US", "US", Currency.USD, zero, "time", zero, "strike", values); assertEquals(dataWithName, cycleObject(VolatilitySurfaceData.class, dataWithName)); final Tenor[] xs = dataWithName.getXs(); final Tenor[] ys = dataWithName.getYs(); assertEquals(0, xs.length); assertEquals(0, ys.length); } }