//-------------------------------------------------------------------------
        public virtual void test_currencyParameterSensitivity_val_date()
        {
            // Discount factor at valuation date is always 0, no sensitivity.
            SimpleDiscountFactors test = SimpleDiscountFactors.of(GBP, DATE_VAL, CURVE);
            ZeroRateSensitivity   sens = test.zeroRatePointSensitivity(DATE_VAL);

            assertEquals(test.parameterSensitivity(sens), CurrencyParameterSensitivities.empty());
        }
        public virtual void test_zeroRatePointSensitivity_sensitivityCurrency()
        {
            SimpleDiscountFactors test  = SimpleDiscountFactors.of(GBP, DATE_VAL, CURVE);
            double relativeYearFraction = ACT_365F.relativeYearFraction(DATE_VAL, DATE_AFTER);
            double df = CURVE.yValue(relativeYearFraction);
            ZeroRateSensitivity expected = ZeroRateSensitivity.of(GBP, relativeYearFraction, USD, -df * relativeYearFraction);

            assertEquals(test.zeroRatePointSensitivity(DATE_AFTER, USD), expected);
        }
        //-------------------------------------------------------------------------
        public virtual void test_currencyParameterSensitivity()
        {
            SimpleDiscountFactors test = SimpleDiscountFactors.of(GBP, DATE_VAL, CURVE);
            ZeroRateSensitivity   sens = test.zeroRatePointSensitivity(DATE_AFTER);

            double relativeYearFraction             = ACT_365F.relativeYearFraction(DATE_VAL, DATE_AFTER);
            double discountFactor                   = CURVE.yValue(relativeYearFraction);
            CurrencyParameterSensitivities expected = CurrencyParameterSensitivities.of(CURVE.yValueParameterSensitivity(relativeYearFraction).multipliedBy(-1d / discountFactor / relativeYearFraction).multipliedBy(sens.Currency, sens.Sensitivity));

            assertEquals(test.parameterSensitivity(sens), expected);
        }