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_combineWith_intersectionWithNoMatchingElements() { LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, VALUES_10_14).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_10_14).build(); LocalDateDoubleTimeSeries test = series1.intersection(series2, Double::sum); assertEquals(test, LocalDateDoubleTimeSeries.empty()); }
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_intersection_withSomeMatchingElements() { LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(DATES_2015_1_WEEK, VALUES_1_WEEK).build(); Map<LocalDate, Double> updates = ImmutableMap.of( DATE_2015_01_02, 1.0, DATE_2015_01_05, 1.1, DATE_2015_01_08, 1.2, DATE_2015_01_09, 1.3, DATE_2015_01_12, 1.4); LocalDateDoubleTimeSeries series2 = LocalDateDoubleTimeSeries.builder() .putAll(updates) .build(); LocalDateDoubleTimeSeries test = series1.intersection(series2, Double::sum); assertEquals(test.size(), 3); assertEquals(test.get(DATE_2015_01_05), OptionalDouble.of(11.1)); assertEquals(test.get(DATE_2015_01_08), OptionalDouble.of(14.2)); assertEquals(test.get(DATE_2015_01_09), OptionalDouble.of(15.3)); }
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_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_combineWith_intersectionWithSomeMatchingElements2() { List<LocalDate> dates1 = dates(DATE_2010_01_01, DATE_2011_01_01, DATE_2012_01_01, DATE_2014_01_01, DATE_2015_06_01); List<Double> values1 = values(10, 11, 12, 13, 14); LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(dates1, values1).build(); List<LocalDate> dates2 = dates(DATE_2010_01_01, DATE_2011_06_01, DATE_2012_01_01, DATE_2013_01_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(14.4)); }
public void test_intersection_withSomeMatchingElements2() { List<LocalDate> dates1 = dates(DATE_2010_01_01, DATE_2011_01_01, DATE_2012_01_01, DATE_2014_01_01, DATE_2015_06_01); List<Double> values1 = values(10, 11, 12, 13, 14); LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.builder().putAll(dates1, values1).build(); List<LocalDate> dates2 = dates(DATE_2010_01_01, DATE_2011_06_01, DATE_2012_01_01, DATE_2013_01_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(14.4)); }
public void test_NaN_is_not_allowed() { assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.of(DATE_2015_01_02, Double.NaN)); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().put(DATE_2015_01_02, Double.NaN)); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().putAll( ImmutableMap.of(DATE_2015_01_02, Double.NaN))); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().put( LocalDateDoublePoint.of(DATE_2015_01_02, Double.NaN))); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().putAll( ImmutableList.of(DATE_2015_01_02), ImmutableList.of(Double.NaN))); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().putAll( ImmutableList.of(LocalDateDoublePoint.of(DATE_2015_01_02, Double.NaN)))); LocalDateDoubleTimeSeries s1 = LocalDateDoubleTimeSeries.of(DATE_2015_01_02, 1d); LocalDateDoubleTimeSeries s2 = LocalDateDoubleTimeSeries.of(DATE_2015_01_02, 2d); assertThrowsIllegalArg(() -> s1.intersection(s2, (d1, d2) -> Double.NaN)); assertThrowsIllegalArg(() -> s1.mapValues(d -> Double.NaN)); }