// -------------------------------------------------------------------------
 public void test_rateFxSpotSensitivity() {
   DiscountFxForwardRates test =
       DiscountFxForwardRates.of(CURRENCY_PAIR, FX_RATE, DFCURVE_GBP, DFCURVE_USD);
   double dfCcyBaseAtMaturity = DFCURVE_GBP.discountFactor(DATE_REF);
   double dfCcyCounterAtMaturity = DFCURVE_USD.discountFactor(DATE_REF);
   double expected = dfCcyBaseAtMaturity / dfCcyCounterAtMaturity;
   assertEquals(test.rateFxSpotSensitivity(GBP, DATE_REF), expected, 1e-12);
   assertEquals(test.rateFxSpotSensitivity(USD, DATE_REF), 1d / expected, 1e-12);
 }
 public void test_rateFxSpotSensitivity_nonMatchingCurrency() {
   DiscountFxForwardRates test =
       DiscountFxForwardRates.of(CURRENCY_PAIR, FX_RATE, DFCURVE_GBP, DFCURVE_USD);
   assertThrowsIllegalArg(() -> test.rateFxSpotSensitivity(EUR, DATE_VAL));
 }