public virtual void test_rate_afterPublication() { DiscountOvernightIndexRates test = DiscountOvernightIndexRates.of(GBP_SONIA, DFCURVE, SERIES); LocalDate startDate = GBP_SONIA_AFTER.EffectiveDate; LocalDate endDate = GBP_SONIA_AFTER.MaturityDate; double accrualFactor = GBP_SONIA.DayCount.yearFraction(startDate, endDate); double expected = (DFCURVE.discountFactor(startDate) / DFCURVE.discountFactor(endDate) - 1) / accrualFactor; assertEquals(test.rate(GBP_SONIA_AFTER), expected, 1e-8); }
public virtual void test_rate_onValuation_fixing() { DiscountOvernightIndexRates test = DiscountOvernightIndexRates.of(GBP_SONIA, DFCURVE, SERIES); assertEquals(test.rate(GBP_SONIA_VAL), RATE_VAL); }
public virtual void test_rate_beforeValuation_noFixing_notEmptySeries() { DiscountOvernightIndexRates test = DiscountOvernightIndexRates.of(GBP_SONIA, DFCURVE, SERIES_MINIMAL); assertThrowsIllegalArg(() => test.rate(GBP_SONIA_BEFORE)); }