### Question:
SparseLocalDateDoubleTimeSeries implements ImmutableBean, Serializable, LocalDateDoubleTimeSeries { @Override public LocalDateDoubleTimeSeries tailSeries(int numPoints) { ArgChecker.notNegative(numPoints, "numPoints"); if (numPoints == 0) { return EMPTY; } else if (numPoints >= size()) { return this; } LocalDate[] datesArray = Arrays.copyOfRange(dates, size() - numPoints, size()); double[] valuesArray = Arrays.copyOfRange(values, size() - numPoints, size()); return createUnsafe(datesArray, valuesArray); } @ImmutableConstructor private  SparseLocalDateDoubleTimeSeries(LocalDate[] dates, double[] values); private  SparseLocalDateDoubleTimeSeries(LocalDate[] dates, double[] values, boolean trusted); @Override int size(); @Override boolean isEmpty(); @Override boolean containsDate(LocalDate date); @Override OptionalDouble get(LocalDate date); @Override LocalDate getLatestDate(); @Override double getLatestValue(); @Override LocalDateDoubleTimeSeries subSeries(LocalDate startInclusive, LocalDate endExclusive); @Override LocalDateDoubleTimeSeries headSeries(int numPoints); @Override LocalDateDoubleTimeSeries tailSeries(int numPoints); @Override Stream<LocalDateDoublePoint> stream(); @Override Stream<LocalDate> dates(); @Override DoubleStream values(); @Override void forEach(ObjDoubleConsumer<LocalDate> action); @Override LocalDateDoubleTimeSeries mapDates(Function<? super LocalDate, ? extends LocalDate> mapper); @Override LocalDateDoubleTimeSeries mapValues(DoubleUnaryOperator mapper); @Override LocalDateDoubleTimeSeries filter(ObjDoublePredicate<LocalDate> predicate); @Override LocalDateDoubleTimeSeriesBuilder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static SparseLocalDateDoubleTimeSeries.Meta meta(); @Override SparseLocalDateDoubleTimeSeries.Meta metaBean();  }### Answer:
@Test public void test_tailSeries_negative() { LocalDateDoubleTimeSeries base = LocalDateDoubleTimeSeries.builder().putAll(DATES_2010_14, VALUES_10_14).build(); assertThatIllegalArgumentException().isThrownBy(() -> base.tailSeries(-1)); }