@Test
 public void doubleDouble() {
   Scenario scenario = new Scenario("Java API test");
   scenario
       .surface()
       .apply()
       .shifts(ScenarioShiftType.RELATIVE, volShift(1.5, 6.0, 0.1), volShift(2.5, 1.0, 0.2));
   ScenarioDefinition definition = scenario.createDefinition();
   assertEquals("Java API test", definition.getName());
   Map<DistinctMarketDataSelector, FunctionParameters> map = definition.getDefinitionMap();
   FunctionParameters params =
       map.get(new VolatilitySurfaceSelector(null, null, 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<VolatilitySurfaceShift> shifts =
       ImmutableList.of(
           new VolatilitySurfaceShift(1.5, 6.0, 0.1), new VolatilitySurfaceShift(2.5, 1.0, 0.2));
   VolatilitySurfaceShiftManipulator expected =
       VolatilitySurfaceShiftManipulator.create(ScenarioShiftType.RELATIVE, shifts);
   assertEquals(expected, manipulators.get(0));
 }
 @Test(expectedExceptions = IllegalArgumentException.class)
 public void dateDate() {
   Scenario scenario = new Scenario("Java API test");
   scenario
       .surface()
       .apply()
       .shifts(
           ScenarioShiftType.RELATIVE,
           volShift(Period.ofYears(1), Period.ofMonths(6), 0.1),
           volShift(Period.ofYears(2), Period.ofMonths(9), 0.2));
 }