//-------------------------------------------------------------------------
	  /// <summary>
	  /// Test forecast value sensitivity for ISDA FRA discounting method.
	  /// </summary>
	  public virtual void test_forecastValueSensitivity_ISDA()
	  {
		SimpleRatesProvider prov = createProvider(RFRA);

		DiscountingFraProductPricer test = DiscountingFraProductPricer.DEFAULT;
		PointSensitivities sensitivity = test.forecastValueSensitivity(RFRA, prov);
		double eps = 1.e-7;
		double fdSense = forecastValueFwdSensitivity(RFRA, FORWARD_RATE, eps);

		ImmutableList<PointSensitivity> sensitivities = sensitivity.Sensitivities;
		assertEquals(sensitivities.size(), 1);
		IborRateSensitivity sensitivity0 = (IborRateSensitivity) sensitivities.get(0);
		assertEquals(sensitivity0.Index, FRA.Index);
		assertEquals(sensitivity0.Observation.FixingDate, FRA.StartDate);
		assertEquals(sensitivity0.Sensitivity, fdSense, FRA.Notional * eps);

		// test via FraTrade
		DiscountingFraTradePricer testTrade = new DiscountingFraTradePricer(test);
		assertEquals(testTrade.forecastValueSensitivity(RFRA_TRADE, prov), test.forecastValueSensitivity(RFRA, prov));
	  }
 /// <summary>
 /// Calculates the forecast value sensitivity of the FRA trade.
 /// <para>
 /// The forecast value sensitivity of the product is the sensitivity of the forecast value to
 /// the underlying curves.
 ///
 /// </para>
 /// </summary>
 /// <param name="trade">  the trade </param>
 /// <param name="provider">  the rates provider </param>
 /// <returns> the point sensitivity of the forecast value </returns>
 public virtual PointSensitivities forecastValueSensitivity(ResolvedFraTrade trade, RatesProvider provider)
 {
     return(productPricer.forecastValueSensitivity(trade.Product, provider));
 }