/** * Request just a single column for a given quandlCode. * * @param quandlCode the Quandl code you're interested in, not null * @param columnNumber the column number (determined by meta-data or a single request) of the data you want, not null * @return an request instance, not null */ public static QuandlCodeRequest singleColumn(final String quandlCode, final int columnNumber) { ArgumentChecker.notNull(quandlCode, "quandlCode"); return new QuandlCodeRequest(quandlCode, columnNumber); }
@Test public void testQuandlCodeRequest() { QuandlCodeRequest req1 = QuandlCodeRequest.singleColumn("Jim", 1); Assert.assertEquals(req1, req1); QuandlCodeRequest req2 = QuandlCodeRequest.singleColumn("Jim", 1); Assert.assertEquals(req1, req2); Assert.assertEquals(req1.hashCode(), req2.hashCode()); QuandlCodeRequest req3 = QuandlCodeRequest.singleColumn("Jim", 2); Assert.assertNotEquals(req2, req3); Assert.assertNotEquals(req2.hashCode(), req3.hashCode()); QuandlCodeRequest req4 = QuandlCodeRequest.singleColumn("Miranda", 1); Assert.assertNotEquals(req2, req4); Assert.assertNotEquals(req2.hashCode(), req4.hashCode()); QuandlCodeRequest req5 = QuandlCodeRequest.allColumns("Jim"); Assert.assertEquals(req5, req5); Assert.assertEquals(req5.hashCode(), req5.hashCode()); QuandlCodeRequest req6 = QuandlCodeRequest.allColumns("Jim"); Assert.assertEquals(req5, req6); Assert.assertEquals(req5.hashCode(), req6.hashCode()); QuandlCodeRequest req7 = QuandlCodeRequest.allColumns("Miranda"); Assert.assertNotEquals(req6, req7); Assert.assertNotEquals(req6.hashCode(), req7.hashCode()); }
private String buildCodeList(final List<QuandlCodeRequest> quandlCodeRequests) { StringBuilder sb = new StringBuilder(); Iterator<QuandlCodeRequest> iter = quandlCodeRequests.iterator(); while (iter.hasNext()) { QuandlCodeRequest req = iter.next(); sb.append(req.getQuandlCode().replace('/', '.')); // allow user to use WIKI/AAPL as all other calls rather than WIKI.AAPL. if (req.isSingleColumnRequest()) { // append the column number. sb.append("."); sb.append(req.getColumnNumber()); } if (iter.hasNext()) { sb.append(","); } } return sb.toString(); }
while (iter.hasNext() && chunkSize > 0) { if (_random.nextDouble() > PROBABILITY_SINGLE_COLUMN_REQ) { chunk.add(QuandlCodeRequest.singleColumn(iter.next(), _random.nextInt(MAX_COLUMN))); } else { chunk.add(QuandlCodeRequest.allColumns(iter.next()));
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testQuandlCodeRequestAll() { QuandlCodeRequest.allColumns(null); }
@Override public String toString() { if (isSingleColumnRequest()) { return "QuandlCodeRequest[quandlCode=" + _quandlCode + ", columnNumber=" + _columnNumber + "]"; } else { return "QuandlCodeRequest[quandlCode=" + _quandlCode + ", all columns]"; } }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testQuandlCodeRequestSingle() { QuandlCodeRequest.singleColumn(null, 1); }
columnNames.add(codeRequest.getQuandlCode() + " - " + colName);
/** * 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(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestFrequency() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withFrequency(null).build(); }
while (iter.hasNext()) { QuandlCodeRequest req = iter.next(); sb.append(req.getQuandlCode()); if (req.isSingleColumnRequest()) { sb.append("["); sb.append(req.getColumnNumber()); sb.append("]");
/** * 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); } }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestEndDate() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withEndDate(null).build(); }
/** * Request all columns for a given quandlCode. * * @param quandlCode the Quandl code you're interested in, not null * @return an request instance, not null */ public static QuandlCodeRequest allColumns(final String quandlCode) { ArgumentChecker.notNull(quandlCode, "quandlCode"); return new QuandlCodeRequest(quandlCode, null); }
final Map<QuandlCodeRequest, TabularResult> results = new LinkedHashMap<QuandlCodeRequest, TabularResult>(); for (final QuandlCodeRequest quandlCodeRequest : quandlCodeRequests) { final Builder builder = DataSetRequest.Builder.of(quandlCodeRequest.getQuandlCode()); if (quandlCodeRequest.isSingleColumnRequest()) { builder.withColumn(quandlCodeRequest.getColumnNumber()); } catch (final QuandlRuntimeException qre) { s_logger.error("Exception processing request for {}, giving up and skipping. Full request was {}", quandlCodeRequest.getQuandlCode(), dataSetRequest, qre); continue; } else { s_logger.error("Can't process request for {}, returned null. Giving up and skipping. Full request was {}", quandlCodeRequest.getQuandlCode(), dataSetRequest);
.of(QuandlCodeRequest.allColumns("CODE/CODE")) .withFrequency(Frequency.NONE) .withMaxRows(49) .of(QuandlCodeRequest.allColumns("CODE/CODF")) // note the F in there .withFrequency(Frequency.NONE) .withMaxRows(49) .of(QuandlCodeRequest.singleColumn("CODE/CODE", 0)) .withFrequency(Frequency.NONE) .withMaxRows(49) .of(QuandlCodeRequest.allColumns("CODE/CODE"), QuandlCodeRequest.singleColumn("CODE/CODE", 0)) .withFrequency(Frequency.NONE) .withMaxRows(49) .of(QuandlCodeRequest.allColumns("CODE/CODE")) .of(QuandlCodeRequest.allColumns("CODE/CODE")) .withMaxRows(49) .withSortOrder(SortOrder.ASCENDING) .of(QuandlCodeRequest.allColumns("CODE/CODE")) .withFrequency(Frequency.NONE) .withMaxRows(-49) // change freq .of(QuandlCodeRequest.allColumns("CODE/CODE")) .of(QuandlCodeRequest.allColumns("CODE/CODE"))
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMultiDataSetRequestStartDate() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withStartDate(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 testMultiDataSetRequestTransform() { MultiDataSetRequest.Builder.of(QuandlCodeRequest.allColumns("Hello")).withTransform(null).build(); }
@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()); }