/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.integration.marketdata.manipulator.dsl; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; import java.util.List; import java.util.Map; import org.testng.annotations.Test; import org.threeten.bp.Period; import com.google.common.collect.ImmutableList; import com.opengamma.engine.function.FunctionParameters; import com.opengamma.engine.function.SimpleFunctionParameters; import com.opengamma.engine.function.StructureManipulationFunction; import com.opengamma.engine.marketdata.manipulator.DistinctMarketDataSelector; import com.opengamma.engine.marketdata.manipulator.ScenarioDefinition; import com.opengamma.util.test.TestGroup; @Test(groups = TestGroup.INTEGRATION) public class PointShiftTest { @Test public void yieldCurve() { Scenario scenario = SimulationUtils.createScenarioFromDsl("src/test/groovy/YieldCurvePointShiftTest.groovy", null); ScenarioDefinition definition = scenario.createDefinition(); assertEquals("point shift test", definition.getName()); Map<DistinctMarketDataSelector, FunctionParameters> map = definition.getDefinitionMap(); FunctionParameters params = map.get(new YieldCurveSelector(null, null, null, null, null)); assertNotNull(params); Object value = ((SimpleFunctionParameters) params).getValue(StructureManipulationFunction.EXPECTED_PARAMETER_NAME); CompositeStructureManipulator manipulator = (CompositeStructureManipulator) value; List manipulators = manipulator.getManipulators(); assertEquals(1, manipulators.size()); List<YieldCurvePointShift> shifts = ImmutableList.of( new YieldCurvePointShift(2, 0.1), new YieldCurvePointShift(3, 0.2)); YieldCurvePointShiftManipulator expected = new YieldCurvePointShiftManipulator(ScenarioShiftType.RELATIVE, shifts); assertEquals(expected, manipulators.get(0)); } @Test public void yieldCurveData() { Scenario scenario = SimulationUtils.createScenarioFromDsl("src/test/groovy/YieldCurveDataPointShiftTest.groovy", null); ScenarioDefinition definition = scenario.createDefinition(); assertEquals("point shift test", definition.getName()); Map<DistinctMarketDataSelector, FunctionParameters> map = definition.getDefinitionMap(); FunctionParameters params = map.get(new YieldCurveDataSelector(null, null, null, null, null)); assertNotNull(params); Object value = ((SimpleFunctionParameters) params).getValue(StructureManipulationFunction.EXPECTED_PARAMETER_NAME); CompositeStructureManipulator manipulator = (CompositeStructureManipulator) value; List manipulators = manipulator.getManipulators(); assertEquals(1, manipulators.size()); List<YieldCurveDataPointShift> shifts = ImmutableList.of( new YieldCurveDataPointShift(Period.ofMonths(3), 0.1), new YieldCurveDataPointShift(Period.ofYears(1), 0.2)); YieldCurveDataPointShiftsManipulator expected = new YieldCurveDataPointShiftsManipulator(ScenarioShiftType.RELATIVE, shifts); assertEquals(expected, manipulators.get(0)); } }