/** * Get the value held for the earliest date contained in this time-series. * <p> * If the time-series is empty then {@link NoSuchElementException} will be thrown. * * @return the value held for the earliest date contained in this time-series * @throws NoSuchElementException if the time-series is empty */ public default double getEarliestValue() { return values().findFirst() .orElseThrow(() -> new NoSuchElementException("Unable to return earliest value, time-series is empty")); }
public void test_valueStream() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_12, VALUES_10_12).build(); double[] test = base.values().toArray(); assertEquals(test[0], 10, TOLERANCE); assertEquals(test[1], 11, TOLERANCE); assertEquals(test[2], 12, TOLERANCE); }
public void test_valueStream() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_12, VALUES_10_12).build(); double[] test = base.values().toArray(); assertEquals(test[0], 10, TOLERANCE); assertEquals(test[1], 11, TOLERANCE); assertEquals(test[2], 12, TOLERANCE); }
public void test_of_singleton() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.of(DATE_2011_01_01, 2d); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 1); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); 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.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.empty()); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01}); assertEquals(test.values().toArray(), new double[] {2d}); }
public void test_of_map() { Map<LocalDate, Double> map = new HashMap<>(); map.put(DATE_2011_01_01, 2d); map.put(DATE_2012_01_01, 3d); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(map).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_map() { Map<LocalDate, Double> map = new HashMap<>(); map.put(DATE_2011_01_01, 2d); map.put(DATE_2012_01_01, 3d); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(map).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_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_singleton() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.of(DATE_2011_01_01, 2d); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 1); // Check start is not weekend assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); 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.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.empty()); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01}); assertEquals(test.values().toArray(), new double[] {2d}); }
public void test_of_collection() { Collection<LocalDateDoublePoint> points = Arrays.asList( LocalDateDoublePoint.of(DATE_2011_01_01, 2d), LocalDateDoublePoint.of(DATE_2012_01_01, 3d)); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(points.stream()).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_collection() { Collection<LocalDateDoublePoint> points = Arrays.asList( LocalDateDoublePoint.of(DATE_2011_01_01, 2d), LocalDateDoublePoint.of(DATE_2012_01_01, 3d)); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(points.stream()).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() { 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_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}); }