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()); }
public void test_of_collectionCollection_dateCollectionWithNull() { Collection<LocalDate> dates = Arrays.asList(DATE_2011_01_01, null); Collection<Double> values = values(2d, 3d); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().putAll(dates, values).build()); }
public void test_mapValues_invertSeries() { List<Double> values = values(1, 2, 4, 5, 8); LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, values).build(); LocalDateDoubleTimeSeries test = base.mapValues(d -> 1 / d); List<Double> expectedValues = values(1, 0.5, 0.25, 0.2, 0.125); assertEquals(test, LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, expectedValues).build()); }
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_of_collectionCollection_dateCollectionNull() { Collection<Double> values = values(2d, 3d); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder() .putAll((Collection<LocalDate>) null, values) .build()); }
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_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_collectionsOfDifferentSize() { Collection<LocalDate> dates = dates(DATE_2011_01_01); Collection<Double> values = values(2d, 3d); assertThrowsIllegalArg(() -> LocalDateDoubleTimeSeries.builder().putAll(dates, values).build()); }
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_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_mapValues_addConstantToSeries() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, VALUES_10_14).build(); LocalDateDoubleTimeSeries test = base.mapValues(d -> d + 5); List<Double> expectedValues = values(15, 16, 17, 18, 19); assertEquals(test, LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, expectedValues).build()); }
public void test_mapValues_multiplySeries() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, VALUES_10_14).build(); LocalDateDoubleTimeSeries test = base.mapValues(d -> d * 5); List<Double> expectedValues = values(50, 55, 60, 65, 70); assertEquals(test, LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, expectedValues).build()); }
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_mapDates_notAscending() { List<Double> values = values(1, 2, 4); LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_12, values).build(); assertThrowsIllegalArg(() -> base.mapDates(date -> date(2016, 1, 6))); }