//-------------------------------------------------------------------------
        // proper end-to-end FD tests are elsewhere
        public virtual void test_parameterSensitivity()
        {
            SimpleDiscountFactors test  = SimpleDiscountFactors.of(GBP, DATE_VAL, CURVE);
            ZeroRateSensitivity   point = ZeroRateSensitivity.of(GBP, 1d, 1d);

            assertEquals(test.parameterSensitivity(point).size(), 1);
        }
        //-------------------------------------------------------------------------
        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_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);
        }