@Override public LocalDateDoubleTimeSeries mapDates(Function<? super LocalDate, ? extends LocalDate> mapper) { List<LocalDate> dates = dates().map(mapper).collect(toImmutableList()); dates.stream().reduce(this::checkAscending); return LocalDateDoubleTimeSeries.builder().putAll(dates, Doubles.asList(points)).build(); }
/** * Obtains a time-series containing a single date and value. * * @param date the singleton date * @param value the singleton value * @return the time-series */ public static LocalDateDoubleTimeSeries of(LocalDate date, double value) { ArgChecker.notNull(date, "date"); return builder().put(date, value).build(); }
@Test(expectedExceptions = IllegalArgumentException.class) public void test_of_map_valueNull() { Map<LocalDate, Double> map = new HashMap<>(); map.put(DATE_2011_01_01, 2d); map.put(DATE_2012_01_01, null); LocalDateDoubleTimeSeries.builder().putAll(map).build(); }
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()); }
@Test(expectedExceptions = IllegalArgumentException.class) public void test_of_collectionCollection_dateCollectionWithNull() { Collection<LocalDate> dates = Arrays.asList(DATE_2011_01_01, null); Collection<Double> values = values(2d, 3d); LocalDateDoubleTimeSeries.builder().putAll(dates, values).build(); }
private void assertPriceIndexSeries(LocalDateDoubleTimeSeries actualSeries) { assertEquals(actualSeries.size(), 3); LocalDateDoubleTimeSeries expectedSeries = LocalDateDoubleTimeSeries.builder() .put(LocalDate.of(2017, 1, 31), 200) .put(LocalDate.of(2017, 2, 28), 300) .put(LocalDate.of(2017, 3, 31), 390) .build(); assertEquals(actualSeries, expectedSeries); }
private void assertLibor6mSeries(LocalDateDoubleTimeSeries actualSeries) { assertEquals(actualSeries.size(), 3); LocalDateDoubleTimeSeries expectedSeries = LocalDateDoubleTimeSeries.builder() .put(LocalDate.of(1971, 1, 4), 0.0681) .put(LocalDate.of(1971, 1, 5), 0.0675) .put(LocalDate.of(1971, 1, 6), 0.0669) .build(); assertEquals(actualSeries, expectedSeries); }
@Test(expectedExceptions = IllegalArgumentException.class) public void test_tailSeries_negative() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2015_1_WEEK, VALUES_1_WEEK).build(); base.tailSeries(-1); }
@Test(expectedExceptions = IllegalArgumentException.class) public void test_headSeries_negative() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2015_1_WEEK, VALUES_1_WEEK).build(); base.headSeries(-1); }
public void test_mapDates() { List<Double> values = values(1, 2, 4, 5, 8); LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, values).build(); LocalDateDoubleTimeSeries test = base.mapDates(date -> date.plusYears(1)); ImmutableList<LocalDate> expectedDates = ImmutableList.of(DATE_2011_01_01, DATE_2012_01_01, DATE_2013_01_01, DATE_2014_01_01, LocalDate.of(2015, 1, 1)); LocalDateDoubleTimeSeries expected = LocalDateDoubleTimeSeries.builder().putAll(expectedDates, base.values().boxed().collect(toList())).build(); assertEquals(test, expected); }
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); }
@Test(expectedExceptions = IllegalArgumentException.class) public void test_subSeries_startAfterEnd() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2015_1_WEEK, VALUES_1_WEEK).build(); base.subSeries(date(2011, 1, 2), DATE_2011_01_01); }
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()); }
public void test_of_collectionCollection_valueCollectionWithNull() { Collection<LocalDate> dates = dates(DATE_2011_01_01, DATE_2012_01_01); Collection<Double> values = Arrays.asList(2d, null); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().putAll(dates, values).build()); }
@Test(expectedExceptions = IllegalArgumentException.class) public void test_of_collectionCollection_collectionsOfDifferentSize() { Collection<LocalDate> dates = dates(DATE_2011_01_01); Collection<Double> values = values(2d, 3d); LocalDateDoubleTimeSeries.builder().putAll(dates, values).build(); }
public void underOneWeekNoWeekend() { Map<LocalDate, Double> map = ImmutableMap.<LocalDate, Double>builder() .put(dt(2015, 1, 5), 12d) // Monday .put(dt(2015, 1, 6), 13d) .put(dt(2015, 1, 7), 14d) .put(dt(2015, 1, 8), 15d) .put(dt(2015, 1, 9), 16d) // Friday .build(); LocalDateDoubleTimeSeries ts = LocalDateDoubleTimeSeries.builder().putAll(map).build(); assertThat(ts.get(dt(2015, 1, 5))).hasValue(12d); assertThat(ts.get(dt(2015, 1, 9))).hasValue(16d); }
public void test_immutableDatesViaBeanGet() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_12, VALUES_10_12).build(); LocalDate[] array = (LocalDate[]) ((Bean) test).property("dates").get(); array[0] = DATE_2012_01_01; LocalDateDoublePoint[] points = test.stream().toArray(LocalDateDoublePoint[]::new); assertEquals(points[0], LocalDateDoublePoint.of(DATE_2010_01_01, 10d)); assertEquals(points[1], LocalDateDoublePoint.of(DATE_2011_01_01, 11d)); assertEquals(points[2], LocalDateDoublePoint.of(DATE_2012_01_01, 12d)); }
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_mapDates() { List<Double> values = values(1, 2, 4, 5, 8); LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2015_1_WEEK, values).build(); LocalDateDoubleTimeSeries test = base.mapDates(date -> date.plusYears(1)); ImmutableList<LocalDate> expectedDates = ImmutableList.of(date(2016, 1, 5), date(2016, 1, 6), date(2016, 1, 7), date(2016, 1, 8), date(2016, 1, 9)); LocalDateDoubleTimeSeries expected = LocalDateDoubleTimeSeries.builder().putAll(expectedDates, values).build(); assertEquals(test, expected); }
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)); }