public virtual double rate(IborIndexObservation observation) { LocalDate fixingDate = observation.FixingDate; if (fixingDate.Equals(valuationDate) && fixings.containsDate(fixingDate)) { return(fixings.get(fixingDate).Value); } return(rates.get(fixingDate).Value); }
//------------------------------------------------------------------------- public virtual void test_value() { for (int i = 0; i < TEST_MONTHS.Length; i++) { double valueComputed = INSTANCE.value(TEST_OBS[i]); YearMonth fixingMonth = TEST_OBS[i].FixingMonth; double valueExpected; if (USCPI_TS.containsDate(fixingMonth.atEndOfMonth())) { valueExpected = USCPI_TS.get(fixingMonth.atEndOfMonth()).Value; } else { double x = YearMonth.from(VAL_DATE).until(fixingMonth, MONTHS); valueExpected = CURVE_INFL.yValue(x); } assertEquals(valueComputed, valueExpected, TOLERANCE_VALUE, "test " + i); } }