"curve definition for inflation curve must be NodalCurveDefinition"); YearMonth lastFixingMonth = YearMonth.from(tsPast.getLatestDate()); double lastFixingValue = tsPast.getLatestValue(); InflationNodalCurveDefinition seasonalCurveDef = new InflationNodalCurveDefinition( (NodalCurveDefinition) curveDef, lastFixingMonth, lastFixingValue, seasonalityDefinitions.get(name));
public void test_earliestLatest() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_12, VALUES_10_12).build(); assertEquals(test.getEarliestDate(), DATE_2010_01_01); assertEquals(test.getEarliestValue(), 10d, TOLERANCE); assertEquals(test.getLatestDate(), DATE_2012_01_01); assertEquals(test.getLatestValue(), 12d, TOLERANCE); }
public void test_earliestLatest() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_12, VALUES_10_12).build(); assertEquals(test.getEarliestDate(), DATE_2010_01_01); assertEquals(test.getEarliestValue(), 10d, TOLERANCE); assertEquals(test.getLatestDate(), DATE_2012_01_01); assertEquals(test.getLatestValue(), 12d, TOLERANCE); }
@Override public double initialGuess(MarketData marketData, ValueType valueType) { if (ValueType.PRICE_INDEX.equals(valueType)) { PriceIndex index = template.getConvention().getFloatingLeg().getIndex(); LocalDateDoubleTimeSeries ts = marketData.getTimeSeries(IndexQuoteId.of(index)); double latestIndex = ts.getLatestValue(); double rate = marketData.getValue(rateId); double year = template.getTenor().getPeriod().getYears(); return latestIndex * Math.pow(1.0 + rate, year); } if (ValueType.ZERO_RATE.equals(valueType)) { return marketData.getValue(rateId); } throw new IllegalArgumentException("No default initial guess when value type is not 'PriceIndex' or 'ZeroRate'."); }
LocalDateDoubleTimeSeries ts = ratesProvider.priceIndexValues(bond.getRateCalculation().getIndex()).getFixings(); YearMonth lastKnownFixingMonth = YearMonth.from(ts.getLatestDate()); double indexRatio = ts.getLatestValue() / bond.getFirstIndexValue(); YearMonth endFixingMonth = null; if (obs instanceof InflationEndInterpolatedRateComputation) {
public void test_earliest_with_subseries() { LocalDateDoubleTimeSeries series = LocalDateDoubleTimeSeries.builder() .put(DATE_2015_01_03, 3d) // Saturday, so include weekends .put(DATE_2015_01_05, 5d) .put(DATE_2015_01_06, 6d) .put(DATE_2015_01_07, 7d) .put(DATE_2015_01_08, 8d) .put(DATE_2015_01_09, 9d) .put(DATE_2015_01_11, 11d) .build(); LocalDateDoubleTimeSeries subSeries = series.subSeries(DATE_2015_01_04, DATE_2015_01_11); assertEquals(subSeries.getEarliestDate(), DATE_2015_01_05); assertEquals(subSeries.getEarliestValue(), 5d); assertEquals(subSeries.getLatestDate(), DATE_2015_01_09); assertEquals(subSeries.getLatestValue(), 9d); }
public void test_earliestLatest_whenEmpty() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.empty(); TestHelper.assertThrows(() -> test.getEarliestDate(), NoSuchElementException.class); TestHelper.assertThrows(() -> test.getEarliestValue(), NoSuchElementException.class); TestHelper.assertThrows(() -> test.getLatestDate(), NoSuchElementException.class); TestHelper.assertThrows(() -> test.getLatestValue(), NoSuchElementException.class); }