/** * 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 static org.testng.AssertJUnit.assertTrue; 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 BucketedShiftTest { @Test public void yieldCurve() { Scenario scenario = SimulationUtils.createScenarioFromDsl("src/test/groovy/YieldCurveBucketedShiftTest.groovy", null); ScenarioDefinition definition = scenario.createDefinition(); assertEquals("bucketed 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<YieldCurveBucketedShift> shifts = ImmutableList.of( new YieldCurveBucketedShift(Period.ofMonths(3), Period.ofMonths(6), 0.001), new YieldCurveBucketedShift(Period.ofYears(1), Period.ofYears(2), 0.002)); YieldCurveBucketedShiftManipulator expected = new YieldCurveBucketedShiftManipulator(ScenarioShiftType.ABSOLUTE, shifts); assertEquals(expected, manipulators.get(0)); } @Test public void yieldCurveData() { Scenario scenario = SimulationUtils.createScenarioFromDsl("src/test/groovy/YieldCurveDataBucketedShiftTest.groovy", null); ScenarioDefinition definition = scenario.createDefinition(); assertEquals("bucketed 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<YieldCurveBucketedShift> shifts = ImmutableList.of( new YieldCurveBucketedShift(Period.ofMonths(3), Period.ofMonths(6), 0.001), new YieldCurveBucketedShift(Period.ofYears(1), Period.ofYears(2), 0.002)); YieldCurveDataBucketedShiftManipulator expected = new YieldCurveDataBucketedShiftManipulator(ScenarioShiftType.ABSOLUTE, shifts); assertEquals(expected, manipulators.get(0)); } }