/** * Create the base DataSetRequest object passing in the Quandl code. * * @param quandlCodeRequests the quandl codes/columns (VarArgs) you're interested in, not null * @return a Builder instance, not null */ public static Builder of(final QuandlCodeRequest... quandlCodeRequests) { ArgumentChecker.notNullOrEmpty(quandlCodeRequests, "quandlCodeRequests"); return new Builder(Arrays.asList(quandlCodeRequests)); }
private MultiDataSetRequest.Builder fuzz(final MultiDataSetRequest.Builder reqBuilder) { MultiDataSetRequest.Builder builder = reqBuilder; if (_random.nextDouble() > WITH_FREQUENCY_PROBABILITY) { builder = builder.withFrequency(Frequency.values()[_random.nextInt(Frequency.values().length)]); } if (_random.nextDouble() > WITH_TRANSFORM_PROBABILITY) { builder = builder.withTransform(Transform.values()[(int) (_random.nextInt(Transform.values().length))]); } if (_random.nextDouble() > WITH_MAX_ROWS_PROBABILITY) { builder = builder.withMaxRows(_random.nextInt(MAX_ROWS)); } LocalDate startDate = LocalDate.ofEpochDay(_random.nextInt(MAX_YEARS_OUT * DAYS_PER_YEAR) + (BASE_YEARS_FROM_EPOCH * DAYS_PER_YEAR)); if (_random.nextDouble() > WITH_START_DATE_PROBABILITY) { builder = builder.withStartDate(startDate); } if (_random.nextDouble() > WITH_END_DATE_PROBABILITY) { builder = builder.withEndDate(startDate.plusDays(_random.nextInt(DAYS_PER_YEAR * MAX_PLUS_YEARS))); } return builder; }
.of(QuandlCodeRequest.allColumns("CODE/CODE")) .withFrequency(Frequency.NONE) .withMaxRows(49) .withSortOrder(SortOrder.ASCENDING) .withStartDate(LocalDate.of(2010, 1, 1)) .withEndDate(LocalDate.of(2011, 1, 1)) .build(); .of(QuandlCodeRequest.allColumns("CODE/CODF")) // note the F in there .withFrequency(Frequency.NONE) .withMaxRows(49) .withSortOrder(SortOrder.ASCENDING) .withStartDate(LocalDate.of(2010, 1, 1)) .withEndDate(LocalDate.of(2011, 1, 1)) .build(); Assert.assertEquals(request2, request2); Assert.assertNotEquals(request1, request2); .of(QuandlCodeRequest.singleColumn("CODE/CODE", 0)) .withFrequency(Frequency.NONE) .withMaxRows(49) .withSortOrder(SortOrder.ASCENDING) .withStartDate(LocalDate.of(2010, 1, 1)) .withEndDate(LocalDate.of(2011, 1, 1)) .build(); Assert.assertEquals(request3, request3); Assert.assertNotEquals(request1, request3); .of(QuandlCodeRequest.allColumns("CODE/CODE"), QuandlCodeRequest.singleColumn("CODE/CODE", 0))
/** * The main body of the code. */ private void run() { QuandlSession quandl = QuandlSession.create(); SearchResult searchResult = quandl.search(SearchRequest.Builder.ofQuery("Apple").withMaxPerPage(2).build()); System.out.println(searchResult.toPrettyPrintedString()); for (MetaDataResult metaData : searchResult.getMetaDataResultList()) { System.out.println(PrettyPrinter.toPrettyPrintedString(metaData.getRawJSON())); } TabularResult tabularResult = null; tabularResult = quandl.getDataSet(DataSetRequest.Builder.of("WIKI/AAPL").withFrequency(Frequency.QUARTERLY) .withColumn(CLOSE_COLUMN).withTransform(Transform.NORMALIZE).build()); System.out.println(PrettyPrinter.toPrettyPrintedString(tabularResult)); TabularResult tabularResultMulti = quandl.getDataSets( MultiDataSetRequest.Builder.of( QuandlCodeRequest.allColumns("WIKI/AAPL"), QuandlCodeRequest.allColumns("DOE/RWTC") ).withStartDate(RECENTISH_DATE) .build()); System.out.println(PrettyPrinter.toPrettyPrintedString(tabularResultMulti)); MetaDataResult metaData = quandl.getMetaData(MetaDataRequest.of("WIKI/AAPL")); System.out.println(PrettyPrinter.toPrettyPrintedString(metaData.getRawJSON())); MetaDataResult metaData2 = quandl.getMetaData(MultiMetaDataRequest.of("WIKI/AAPL", "DOE/RWTC", "WIKI/MSFT")); System.out.println(PrettyPrinter.toPrettyPrintedString(metaData2.getRawJSON())); }
/** * The main body of the code. */ private void run() { QuandlSession session = QuandlSession.create(); TabularResult tabularResultMulti = session.getDataSets( MultiDataSetRequest.Builder .of( QuandlCodeRequest.singleColumn("WIKI/AAPL", CLOSE_COLUMN), QuandlCodeRequest.allColumns("DOE/RWTC") ) .withStartDate(RECENTISH_DATE) .withFrequency(Frequency.MONTHLY) .build()); System.out.println("Header definition: " + tabularResultMulti.getHeaderDefinition()); Iterator<Row> iter = tabularResultMulti.iterator(); while (iter.hasNext()) { Row row = iter.next(); LocalDate date = row.getLocalDate("Date"); Double value = row.getDouble("DOE/RWTC - Value"); System.out.println("Value on date " + date + " was " + value); } }
/** * The main body of the code. */ private void run() { QuandlSession session = QuandlSession.create(); TabularResult tabularResultMulti = session.getDataSets( MultiDataSetRequest.Builder .of( QuandlCodeRequest.singleColumn("WIKI/AAPL", CLOSE_COLUMN), QuandlCodeRequest.allColumns("DOE/RWTC") ) .withStartDate(RECENTISH_DATE) .withFrequency(Frequency.MONTHLY) .build()); System.out.println(tabularResultMulti.toPrettyPrintedString()); }
@Test public void testComplexMultiDataSetRequestEqualsAndHashCodeAgainstStringAndObject() { // Note that the tests on hashCode here are beyond the contract requirements of hashCode, we're saying they must differ if the object differs, which is // generally good, but not required. MultiDataSetRequest request1 = MultiDataSetRequest.Builder .of(QuandlCodeRequest.allColumns("CODE/CODE")) .withFrequency(Frequency.NONE) .withMaxRows(49) .withSortOrder(SortOrder.ASCENDING) .withStartDate(LocalDate.of(2010, 1, 1)) .withEndDate(LocalDate.of(2011, 1, 1)) .build(); Assert.assertNotEquals(request1, "Hello"); Assert.assertNotEquals(request1, new Object()); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestVarArgs() { MultiDataSetRequest.Builder.of((QuandlCodeRequest[]) null); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequest() { MultiDataSetRequest.Builder.of((List<QuandlCodeRequest>) null); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestTransform() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withTransform(null).build(); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestSortOrder() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withSortOrder(null).build(); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestFrequency() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withFrequency(null).build(); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestStartDate() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withStartDate(null).build(); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestEndDate() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withEndDate(null).build(); }
/** * Create the base DataSetRequest object passing in the Quandl code. * * @param quandlCodeRequests the list of quandl codes/columns you're interested in, not null * @return a Builder instance, not null */ public static Builder of(final List<QuandlCodeRequest> quandlCodeRequests) { ArgumentChecker.notNullOrEmpty(quandlCodeRequests, "quandlCodeRequests"); return new Builder(quandlCodeRequests); }
@Test(expectedExceptions = QuandlRuntimeException.class) public void testLargeMultiDataSetRequestWithEmpty() { QuandlSession session = getTestSession("https://www.quandl.com/api/v3/multisets.csv?columns=&collapse=monthly&transformation=normalize"); TabularResult tabularResult = session.getDataSets( // expect an exception here because list is empty MultiDataSetRequest.Builder.of() .withFrequency(Frequency.MONTHLY) .withTransform(Transform.NORMALIZE) .build()); Assert.assertEquals(TEST_TABULAR_RESULT, tabularResult); }