// ------------------------------------------------------------------------- @Override public HistoricalTimeSeries getHistoricalTimeSeries( final ExternalIdBundle identifiers, final String dataSource, final String dataProvider, final String dataField) { LocalDate yesterday = DateUtils.previousWeekDay(); return doGetHistoricalTimeSeries( identifiers, dataSource, dataProvider, dataField, DEFAULT_START_DATE, yesterday, null); }
public void getHistoricalWithInclusiveExclusiveDates() throws Exception { LocalDate end = DateUtils.previousWeekDay(); LocalDate start = end.minusDays(7); HistoricalTimeSeriesInfoSearchRequest request = new HistoricalTimeSeriesInfoSearchRequest(IDENTIFIERS); request.setValidityDate(LocalDate.now()); request.setDataSource(BBG_DATA_SOURCE); request.setDataProvider(CMPL_DATA_PROVIDER); request.setDataField(CLOSE_DATA_FIELD); LocalDateDoubleTimeSeries timeSeries = randomTimeSeries(); HistoricalTimeSeriesInfoSearchResult searchResult = new HistoricalTimeSeriesInfoSearchResult(); HistoricalTimeSeriesInfoDocument doc = new HistoricalTimeSeriesInfoDocument(); doc.setUniqueId(UID); doc.getInfo().setTimeSeriesObjectId(UID.getObjectId()); searchResult.getDocuments().add(doc); when(_mockResolver.resolve( IDENTIFIERS, LocalDate.now(), BBG_DATA_SOURCE, CMPL_DATA_PROVIDER, CLOSE_DATA_FIELD, null)) .thenReturn(new HistoricalTimeSeriesResolutionResult(doc.getInfo())); for (boolean includeStart : new boolean[] {true, false}) { for (boolean includeEnd : new boolean[] {true, false}) { // Also test max points limit for various values for (Integer maxPoints : new Integer[] {null, -10, -1, 1, 0, -2, 2, 10}) { LocalDate startInput = start; LocalDate endInput = end; if (!includeStart) { startInput = start.plusDays(1); } if (!includeEnd) { endInput = end.minusDays(1); } ManageableHistoricalTimeSeries hts = new ManageableHistoricalTimeSeries(); LocalDateDoubleTimeSeries lddts = (maxPoints == null) || (Math.abs(maxPoints) >= timeSeries.subSeries(start, includeStart, end, includeEnd).size()) ? timeSeries.subSeries(start, includeStart, end, includeEnd) : (maxPoints >= 0) ? timeSeries.subSeries(start, includeStart, end, includeEnd).head(maxPoints) : timeSeries.subSeries(start, includeStart, end, includeEnd).tail(-maxPoints); hts.setUniqueId(UID); hts.setTimeSeries(lddts); when(_mockMaster.getTimeSeries( UID.getObjectId(), VersionCorrection.LATEST, HistoricalTimeSeriesGetFilter.ofRange(startInput, endInput, maxPoints))) .thenReturn(hts); when(_mockMaster.search(request)).thenReturn(searchResult); HistoricalTimeSeries test = (maxPoints == null) ? _tsSource.getHistoricalTimeSeries( IDENTIFIERS, BBG_DATA_SOURCE, CMPL_DATA_PROVIDER, CLOSE_DATA_FIELD, start, includeStart, end, includeEnd) : _tsSource.getHistoricalTimeSeries( IDENTIFIERS, BBG_DATA_SOURCE, CMPL_DATA_PROVIDER, CLOSE_DATA_FIELD, start, includeStart, end, includeEnd, maxPoints); assertEquals(UID, test.getUniqueId()); assertEquals(hts.getTimeSeries(), test.getTimeSeries()); } } } }