@Test
 public void testNormalBucketedZeroDelta() {
   Result<BucketedCurveSensitivities> result =
       _functionRunner.runFunction(
           ARGS,
           createSuppliedData(),
           new Function<Environment, Result<BucketedCurveSensitivities>>() {
             @Override
             public Result<BucketedCurveSensitivities> apply(Environment env) {
               return _normalIRFutureOptionFn.calculateBucketedZeroIRDelta(
                   env, _irFutureOptionTrade);
             }
           });
   assertSuccess(result);
 }
 @Test
 public void testNormalPrice() {
   Result<Double> result =
       _functionRunner.runFunction(
           ARGS,
           createSuppliedData(),
           new Function<Environment, Result<Double>>() {
             @Override
             public Result<Double> apply(Environment env) {
               return _normalIRFutureOptionFn.calculateModelPrice(env, _irFutureOptionTrade);
             }
           });
   assertSuccess(result);
   Double price = result.getValue();
   assertThat(price, is(closeTo(0.072284344, STD_TOLERANCE_PV)));
 }
 @Test
 public void testNormalPresentValue() {
   Result<MultipleCurrencyAmount> result =
       _functionRunner.runFunction(
           ARGS,
           createSuppliedData(),
           new Function<Environment, Result<MultipleCurrencyAmount>>() {
             @Override
             public Result<MultipleCurrencyAmount> apply(Environment env) {
               return _normalIRFutureOptionFn.calculatePV(env, _irFutureOptionTrade);
             }
           });
   assertSuccess(result);
   MultipleCurrencyAmount mca = result.getValue();
   assertThat(
       mca.getCurrencyAmount(Currency.USD).getAmount(),
       is(closeTo(-902.7156551, STD_TOLERANCE_PV)));
 }