@Test(expectedExceptions = IllegalArgumentException.class) 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); LocalDateDoubleTimeSeries.builder().putAll(dates, values).build(); }
public void test_equals_similarSeriesAreEqual() { LocalDateDoubleTimeSeries series1 = LocalDateDoubleTimeSeries.of(DATE_2014_01_01, 1d); LocalDateDoubleTimeSeries series2 = LocalDateDoubleTimeSeries.builder().putAll(dates(DATE_2014_01_01), values(1d)).build(); assertEquals(series1.size(), 1); assertEquals(series1, series2); assertEquals(series1, series1); assertEquals(series1.hashCode(), series1.hashCode()); }
@Test(expectedExceptions = IllegalArgumentException.class) public void test_of_collectionCollection_valueCollectionNull() { Collection<LocalDate> dates = dates(DATE_2011_01_01, DATE_2012_01_01); LocalDateDoubleTimeSeries.builder().putAll(dates, (double[]) null).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 test_of_collectionCollection() { Collection<LocalDate> dates = dates(DATE_2011_01_01, DATE_2012_01_01); Collection<Double> values = values(2d, 3d); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(dates, values).build(); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 2); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), true); 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.of(3d)); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01, DATE_2012_01_01}); assertEquals(test.values().toArray(), new double[] {2d, 3d}); }
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)); }
public void test_filter_byDate() { List<LocalDate> dates = dates(DATE_2010_01_01, DATE_2011_06_01, DATE_2012_01_01, DATE_2013_06_01, DATE_2014_01_01); LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(dates, VALUES_1_WEEK).build(); LocalDateDoubleTimeSeries test = base.filter((ld, v) -> ld.getMonthValue() != 6); assertEquals(test.size(), 3); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.of(10d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(12d)); assertEquals(test.get(DATE_2014_01_01), OptionalDouble.of(14d)); }
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_filter_byDateAndValue() { List<LocalDate> dates = dates(DATE_2010_01_01, DATE_2011_06_01, DATE_2012_01_01, DATE_2013_06_01, DATE_2014_01_01); LocalDateDoubleTimeSeries series = LocalDateDoubleTimeSeries.builder().putAll(dates, VALUES_1_WEEK).build(); LocalDateDoubleTimeSeries test = series.filter((ld, v) -> ld.getYear() >= 2012 && v % 2 == 0); assertEquals(test.size(), 2); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(12d)); assertEquals(test.get(DATE_2014_01_01), OptionalDouble.of(14d)); }
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_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_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()); }