@Test
 public void presentValueMethodVsCalculator() {
   final MultipleCurrencyAmount pvMethod = METHOD_CPN_IBOR.presentValue(CPN_IBOR, MULTICURVES);
   final MultipleCurrencyAmount pvCalculator = CPN_IBOR.accept(PVDC, MULTICURVES);
   assertEquals(
       "CouponFixedDiscountingMarketMethod: present value",
       pvMethod.getAmount(EUR),
       pvCalculator.getAmount(EUR),
       TOLERANCE_PV);
 }
 @Test
 public void presentValueMarketSensitivityMethodVsCalculator() {
   final MultipleCurrencyMulticurveSensitivity pvcsMethod =
       METHOD_CPN_IBOR.presentValueCurveSensitivity(CPN_IBOR, MULTICURVES);
   final MultipleCurrencyMulticurveSensitivity pvcsCalculator =
       CPN_IBOR.accept(PVCSDC, MULTICURVES);
   AssertSensivityObjects.assertEquals(
       "CouponFixedDiscountingMarketMethod: presentValueMarketSensitivity",
       pvcsMethod,
       pvcsCalculator,
       TOLERANCE_PV_DELTA);
 }
 @Test
 /** Test the cap/floor/forward parity above the cut-off strike. */
 public void presentValueCapFloorParityAboveCutOff() {
   final CurrencyAmount priceCap = METHOD.presentValue(CAP_HIGH_LONG, SABR_BUNDLE);
   final CurrencyAmount priceFloor = METHOD.presentValue(FLOOR_HIGH_SHORT, SABR_BUNDLE);
   final double priceCouponStrike = COUPON_STRIKE_HIGH.accept(PVC, CURVES);
   final double priceCouponIbor = COUPON_IBOR.accept(PVC, CURVES);
   assertEquals(
       "Cap/floor: SABR with extrapolation pricing: cap/floor parity",
       priceCouponIbor - priceCouponStrike,
       priceCap.getAmount() + priceFloor.getAmount(),
       1E-2);
 }