public void test_emptySeries() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.empty(); assertEquals(test.isEmpty(), true); assertEquals(test.size(), 0); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), false); assertEquals(test.containsDate(DATE_2012_01_01), false); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.empty()); assertEquals(test, LocalDateDoubleTimeSeries.builder().putAll(dates(), values()).build()); assertEquals(test.dates().count(), 0); assertEquals(test.values().count(), 0); }
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_stream_withCollector() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_12, VALUES_10_12).build(); LocalDateDoubleTimeSeries test = base.stream() .map(point -> point.withValue(1.5d)) .collect(LocalDateDoubleTimeSeries.collector()); assertEquals(test.size(), 3); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.of(1.5)); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(1.5)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(1.5)); }
@Test(dataProvider = "headSeries") public void test_headSeries_emptySeries(int count, int[] expected) { LocalDateDoubleTimeSeries test = empty().headSeries(count); assertEquals(test.size(), 0); }
@Test(dataProvider = "tailSeries") public void test_tailSeries_emptySeries(int count, int[] expected) { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.empty().tailSeries(count); assertEquals(test.size(), 0); }
public void test_combineWith_intersectionWithAllMatchingElements() { List<LocalDate> dates1 = DATES_2010_14; List<Double> values1 = values(10, 11, 12, 13, 14); LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(dates1, values1).build(); List<LocalDate> dates2 = DATES_2010_14; List<Double> values2 = values(1.0, 1.1, 1.2, 1.3, 1.4); LocalDateDoubleTimeSeries series2 = LocalDateDoubleTimeSeries.builder().putAll(dates2, values2).build(); LocalDateDoubleTimeSeries combined = series1.intersection(series2, Double::sum); assertEquals(combined.size(), 5); assertEquals(combined.getEarliestDate(), DATE_2010_01_01); assertEquals(combined.getLatestDate(), DATE_2014_01_01); assertEquals(combined.get(DATE_2010_01_01), OptionalDouble.of(11.0)); assertEquals(combined.get(DATE_2011_01_01), OptionalDouble.of(12.1)); assertEquals(combined.get(DATE_2012_01_01), OptionalDouble.of(13.2)); assertEquals(combined.get(DATE_2013_01_01), OptionalDouble.of(14.3)); assertEquals(combined.get(DATE_2014_01_01), OptionalDouble.of(15.4)); }
public void test_filter_byValue() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, VALUES_10_14).build(); LocalDateDoubleTimeSeries test = base.filter((ld, v) -> v % 2 == 1); assertEquals(test.size(), 2); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(11d)); assertEquals(test.get(DATE_2013_01_01), OptionalDouble.of(13d)); }
public void test_of_singleton() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.of(DATE_2011_01_01, 2d); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 1); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), false); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.empty()); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01}); assertEquals(test.values().toArray(), new double[] {2d}); }
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); }
public void test_intersection_withNoMatchingElements() { LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(DATES_2015_1_WEEK, VALUES_1_WEEK).build(); List<LocalDate> dates2 = dates(DATE_2010_06_01, DATE_2011_06_01, DATE_2012_06_01, DATE_2013_06_01, DATE_2014_06_01); LocalDateDoubleTimeSeries series2 = LocalDateDoubleTimeSeries.builder().putAll(dates2, VALUES_1_WEEK).build(); LocalDateDoubleTimeSeries test = series1.intersection(series2, Double::sum); assertEquals(test, LocalDateDoubleTimeSeries.empty()); }
private double historicRate(IborIndexObservation observation) { LocalDate fixingDate = observation.getFixingDate(); OptionalDouble fixedRate = fixings.get(fixingDate); if (fixedRate.isPresent()) { return fixedRate.getAsDouble(); } else if (fixingDate.isBefore(getValuationDate())) { // the fixing is required if (fixings.isEmpty()) { throw new IllegalArgumentException( Messages.format("Unable to get fixing for {} on date {}, no time-series supplied", index, fixingDate)); } throw new IllegalArgumentException(Messages.format("Unable to get fixing for {} on date {}", index, fixingDate)); } else { return rateIgnoringFixings(observation); } }
ArgChecker.notNull(ts, "Price index curve must have associated time-series: " + index.toString()); LocalDateDoubleTimeSeries tsPast = ts.subSeries(ts.getEarliestDate(), valuationDate); ArgChecker.isFalse(ts.isEmpty(), "Price index curve must have associated time-series with at least one element in the past:" + index.toString()); ArgChecker.isTrue(curveDef instanceof NodalCurveDefinition, "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_combineWith_intersectionWithSomeMatchingElements() { LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, VALUES_10_14).build(); List<LocalDate> dates2 = dates(DATE_2010_01_01, DATE_2011_06_01, DATE_2012_01_01, DATE_2013_06_01, DATE_2014_01_01); List<Double> values2 = values(1.0, 1.1, 1.2, 1.3, 1.4); LocalDateDoubleTimeSeries series2 = LocalDateDoubleTimeSeries.builder().putAll(dates2, values2).build(); LocalDateDoubleTimeSeries test = series1.intersection(series2, Double::sum); assertEquals(test.size(), 3); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.of(11.0)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(13.2)); assertEquals(test.get(DATE_2014_01_01), OptionalDouble.of(15.4)); }
public void test_of_map_dateNull() { Map<LocalDate, Double> map = new HashMap<>(); map.put(DATE_2011_01_01, 2d); map.put(null, 3d); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().putAll(map).build()); }
@Override public LocalDateDoubleTimeSeries getTimeSeries(ObservableId id) { LocalDateDoubleTimeSeries found = timeSeries.get(id); return found == null ? LocalDateDoubleTimeSeries.empty() : found; }
public void test_of_collectionCollection_datesUnordered() { Collection<LocalDate> dates = dates(DATE_2012_01_01, DATE_2011_01_01); Collection<Double> values = values(2d, 1d); LocalDateDoubleTimeSeries series = LocalDateDoubleTimeSeries.builder().putAll(dates, values).build(); assertEquals(series.get(DATE_2011_01_01), OptionalDouble.of(1d)); assertEquals(series.get(DATE_2012_01_01), OptionalDouble.of(2d)); }
@Override public double rate(IborIndexObservation observation) { LocalDate fixingDate = observation.getFixingDate(); if (fixingDate.equals(valuationDate) && fixings.containsDate(fixingDate)) { return fixings.get(fixingDate).getAsDouble(); } return rates.get(fixingDate).getAsDouble(); }