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());
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); }
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_union_withMatchingElements() { List<LocalDate> dates1 = dates(DATE_2015_01_03, DATE_2015_01_05, DATE_2015_01_06); List<LocalDate> dates2 = dates(DATE_2015_01_02, DATE_2015_01_03, DATE_2015_01_05, DATE_2015_01_08); LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(dates1, VALUES_10_12).build(); LocalDateDoubleTimeSeries series2 = LocalDateDoubleTimeSeries.builder().putAll(dates2, VALUES_4_7).build(); LocalDateDoubleTimeSeries test = series1.union(series2, Double::sum); assertEquals(test.size(), 5); assertEquals(test.getEarliestDate(), DATE_2015_01_02); assertEquals(test.getLatestDate(), DATE_2015_01_08); assertEquals(test.get(DATE_2015_01_02), OptionalDouble.of(4d)); assertEquals(test.get(DATE_2015_01_03), OptionalDouble.of(10d + 5d)); assertEquals(test.get(DATE_2015_01_05), OptionalDouble.of(11d + 6d)); assertEquals(test.get(DATE_2015_01_06), OptionalDouble.of(12d)); assertEquals(test.get(DATE_2015_01_08), OptionalDouble.of(7d)); }
public void test_intersection_withAllMatchingElements() { List<LocalDate> dates1 = DATES_2015_1_WEEK; List<Double> values1 = values(10, 11, 12, 13, 14); LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(dates1, values1).build(); List<LocalDate> dates2 = DATES_2015_1_WEEK; 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_2015_01_05); assertEquals(combined.getLatestDate(), DATE_2015_01_09); assertEquals(combined.get(DATE_2015_01_05), OptionalDouble.of(11.0)); assertEquals(combined.get(DATE_2015_01_06), OptionalDouble.of(12.1)); assertEquals(combined.get(DATE_2015_01_07), OptionalDouble.of(13.2)); assertEquals(combined.get(DATE_2015_01_08), OptionalDouble.of(14.3)); assertEquals(combined.get(DATE_2015_01_09), OptionalDouble.of(15.4)); }
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_seriesGetsSorted() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder() .put(date(2014, 1, 1), 14) .put(date(2012, 1, 1), 12) .put(date(2013, 1, 1), 13) .build(); assertEquals(test.size(), 3); assertEquals(test.getEarliestDate(), date(2012, 1, 1)); assertEquals(test.getLatestDate(), date(2014, 1, 1)); assertEquals(test.get(date(2012, 1, 1)), OptionalDouble.of(12d)); assertEquals(test.get(date(2013, 1, 1)), OptionalDouble.of(13d)); assertEquals(test.get(date(2014, 1, 1)), OptionalDouble.of(14d)); }
public void test_union_withNoMatchingElements() { List<LocalDate> dates1 = dates(DATE_2015_01_03, DATE_2015_01_05, DATE_2015_01_06); List<LocalDate> dates2 = dates(DATE_2015_01_02, DATE_2015_01_04, DATE_2015_01_08); LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(dates1, VALUES_10_12).build(); LocalDateDoubleTimeSeries series2 = LocalDateDoubleTimeSeries.builder().putAll(dates2, VALUES_1_3).build(); LocalDateDoubleTimeSeries test = series1.union(series2, Double::sum); assertEquals(test.size(), 6); assertEquals(test.getEarliestDate(), DATE_2015_01_02); assertEquals(test.getLatestDate(), DATE_2015_01_08); assertEquals(test.get(DATE_2015_01_02), OptionalDouble.of(1d)); assertEquals(test.get(DATE_2015_01_03), OptionalDouble.of(10d)); assertEquals(test.get(DATE_2015_01_04), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2015_01_05), OptionalDouble.of(11d)); assertEquals(test.get(DATE_2015_01_06), OptionalDouble.of(12d)); assertEquals(test.get(DATE_2015_01_08), OptionalDouble.of(3d)); }
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_useBuilderToAlterSeries() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder() .put(date(2014, 1, 1), 14) .put(date(2012, 1, 1), 12) .put(date(2013, 1, 1), 13) .build(); LocalDateDoubleTimeSeries test = base.toBuilder() .put(date(2013, 1, 1), 23) .put(date(2011, 1, 1), 21) .build(); assertEquals(test.size(), 4); assertEquals(test.getEarliestDate(), date(2011, 1, 1)); assertEquals(test.getLatestDate(), date(2014, 1, 1)); // new value assertEquals(test.get(date(2011, 1, 1)), OptionalDouble.of(21d)); assertEquals(test.get(date(2012, 1, 1)), OptionalDouble.of(12d)); // updated value assertEquals(test.get(date(2013, 1, 1)), OptionalDouble.of(23d)); assertEquals(test.get(date(2014, 1, 1)), OptionalDouble.of(14d)); }