/** * Run a set of data set requests using the provided quandl codes. * @param session the Quandl session * @param resultProcessor a result processor to ether record or check the results * @param quandlCodes a random set of Quandl codes to construct the requests from */ private void fuzzDataSetRequests(final QuandlSession session, final ResultProcessor resultProcessor, final Set<String> quandlCodes) { for (String quandlCode : quandlCodes) { DataSetRequest req = fuzz(DataSetRequest.Builder.of(quandlCode)).build(); try { @SuppressWarnings("unused") TabularResult dataSet = session.getDataSet(req); //s_logger.info(req.toString()); //s_logger.info(PrettyPrinter.toPrettyPrintedString(dataSet)); } catch (QuandlRuntimeException qre) { s_logger.warn("Caught" + qre); s_logger.info("Continuing..."); } } }
private DataSetRequest.Builder fuzz(final DataSetRequest.Builder reqBuilder) { DataSetRequest.Builder builder = reqBuilder; if (_random.nextDouble() > WITH_COLUMN_PROBABILITY) { builder = builder.withColumn((int) (_random.nextDouble() * MAX_COLUMN)); } 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()[_random.nextInt(Transform.values().length)]); } if (_random.nextDouble() > WITH_MAX_ROWS_PROBABILITY) { builder = builder.withMaxRows(_random.nextInt(MAX_ROWS)); } LocalDate startDate = LocalDate.ofEpochDay((int) ((_random.nextDouble() * DAYS_PER_YEAR) * MAX_YEARS_OUT) + (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; }
@Test public final void testComplexDataSetRequestEqualsAndHashCodeAgainstStringAndObject() { // 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. DataSetRequest request1 = DataSetRequest.Builder .of("CODE/CODE") .withColumn(3) .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()); }
.of("CODE/CODE") .withColumn(3) .withFrequency(Frequency.NONE) .withMaxRows(49) .withSortOrder(SortOrder.ASCENDING) .withStartDate(LocalDate.of(2010, 1, 1)) .withEndDate(LocalDate.of(2011, 1, 1)) .build(); .of("CODF/CODE") // note the F in there .withColumn(3) .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("CODE/CODE") .withColumn(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);
.of("CODE/CODE") .withColumn(3) .withFrequency(Frequency.NONE) .withMaxRows(49) .withSortOrder(SortOrder.ASCENDING) .withStartDate(LocalDate.of(2010, 1, 1)) .withEndDate(LocalDate.of(2011, 1, 1)) .build(); .of("CODF/CODE") // note the F in there .withColumn(3) .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("CODE/CODE") .withColumn(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);
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()); builder.withEndDate(request.getEndDate()); builder.withStartDate(request.getStartDate()); builder.withFrequency(request.getFrequency()); builder.withMaxRows(request.getMaxRows()); builder.withSortOrder(request.getSortOrder()); builder.withTransform(request.getTransform()); final DataSetRequest dataSetRequest = builder.build(); TabularResult tabularResult = null; try {
/** * The main body of the code. */ private void run() { TableSawQuandlSession session = TableSawQuandlSession.create(); Table table = session.getDataSet( DataSetRequest.Builder.of("WIKI/AAPL").build()); // Create a new column containing the year IntColumn yearColumn = table.dateColumn("Date").year(); yearColumn.setName("Year"); table.addColumns(yearColumn); // Create max, min and total volume tables aggregated by year Table summaryMax = table.summarize("Close", max).by("year"); Table summaryMin = table.summarize("Close", min).by("year"); Table summaryVolume = table.summarize("Volume", sum).by("year"); // Create a new table from each of these Table summary = Table.create("Summary", summaryMax.column(0), summaryMax.column(1), summaryMin.column(1), summaryVolume.column(1)); // Show the max close price as a graph. try { Plot.show(new Figure(BarTrace.builder(summary.intColumn("Year"), summary.numberColumn(1)).build())); } catch (Exception e) { e.printStackTrace(); } System.out.println(summary); }
/** * 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())); }
private DataSetRequest.Builder fuzz(final DataSetRequest.Builder reqBuilder) { DataSetRequest.Builder builder = reqBuilder; if (_random.nextDouble() > WITH_COLUMN_PROBABILITY) { builder = builder.withColumn((int) (_random.nextDouble() * MAX_COLUMN)); } 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()[_random.nextInt(Transform.values().length)]); } if (_random.nextDouble() > WITH_MAX_ROWS_PROBABILITY) { builder = builder.withMaxRows(_random.nextInt(MAX_ROWS)); } LocalDate startDate = LocalDate.ofEpochDay((int) ((_random.nextDouble() * DAYS_PER_YEAR) * MAX_YEARS_OUT) + (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; }
/** * Run a set of data set requests using the provided quandl codes. * @param session the Quandl session * @param resultProcessor a result processor to ether record or check the results * @param quandlCodes a random set of Quandl codes to construct the requests from */ private void fuzzDataSetRequests(final ClassicQuandlSessionInterface session, final ResultProcessor resultProcessor, final Set<String> quandlCodes) { for (String quandlCode : quandlCodes) { DataSetRequest req = fuzz(DataSetRequest.Builder.of(quandlCode)).build(); try { @SuppressWarnings("unused") TabularResult dataSet = session.getDataSet(req); //s_logger.info(req.toString()); //s_logger.info(PrettyPrinter.toPrettyPrintedString(dataSet)); } catch (QuandlRuntimeException qre) { s_logger.warn("Caught" + qre); s_logger.info("Continuing..."); } } }
@Test public final void testSimpleDataSetRequestEqualsAndHashCode() { DataSetRequest request1 = DataSetRequest.Builder.of("Hello").build(); DataSetRequest request2 = DataSetRequest.Builder.of("Hello").build(); DataSetRequest request3 = DataSetRequest.Builder.of("Goodbye").build(); Assert.assertEquals(request1, request1); Assert.assertEquals(request1.hashCode(), request1.hashCode()); Assert.assertEquals(request2, request1); Assert.assertEquals(request2.hashCode(), request1.hashCode()); Assert.assertNotEquals(request3, request1); Assert.assertNotEquals(request3, request2); Assert.assertNotEquals(request1, null); Assert.assertNotEquals(request2, null); Assert.assertNotEquals(request3, null); Assert.assertEquals(request3.hashCode(), request3.hashCode()); Assert.assertNotEquals(request3.hashCode(), request2.hashCode()); // we can't assert that }
@Test public final void testSimpleDataSetRequestEqualsAndHashCode() { DataSetRequest request1 = DataSetRequest.Builder.of("Hello").build(); DataSetRequest request2 = DataSetRequest.Builder.of("Hello").build(); DataSetRequest request3 = DataSetRequest.Builder.of("Goodbye").build(); Assert.assertEquals(request1, request1); Assert.assertEquals(request1.hashCode(), request1.hashCode()); Assert.assertEquals(request2, request1); Assert.assertEquals(request2.hashCode(), request1.hashCode()); Assert.assertNotEquals(request3, request1); Assert.assertNotEquals(request3, request2); Assert.assertNotEquals(request1, null); Assert.assertNotEquals(request2, null); Assert.assertNotEquals(request3, null); Assert.assertEquals(request3.hashCode(), request3.hashCode()); Assert.assertNotEquals(request3.hashCode(), request2.hashCode()); // we can't assert that }
/** * The main body of the code. */ private void run() { ClassicQuandlSession session = ClassicQuandlSession.create(); TabularResult tabularResult = session.getDataSet( DataSetRequest.Builder .of("SSE/VROS") // VERIANOS REAL ESTATE AG on Boerse Stuttgart .withColumn(3) // Last (looked up previously) .withStartDate(RECENTISH_DATE) .withFrequency(Frequency.MONTHLY) .build()); System.out.println("Header definition: " + tabularResult.getHeaderDefinition()); for (final Row row : tabularResult) { LocalDate date = row.getLocalDate("Date"); Double value = row.getDouble("Last"); System.out.println("Value on date " + date + " was " + value); } }
/** * The main body of the code. */ private void run() { ClassicQuandlSession quandl = ClassicQuandlSession.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)); MetaDataResult metaData = quandl.getMetaData(MetaDataRequest.of("WIKI/AAPL")); System.out.println(PrettyPrinter.toPrettyPrintedString(metaData.getRawJSON())); }
@Test public final void testComplexDataSetRequestEqualsAndHashCodeAgainstStringAndObject() { // 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. DataSetRequest request1 = DataSetRequest.Builder .of("CODE/CODE") .withColumn(3) .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 testDataSetRequestFrequency() { DataSetRequest.Builder.of("Hello").withFrequency(null).build(); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testDataSetRequestStartDate() { DataSetRequest.Builder.of("Hello").withStartDate(null).build(); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testDataSetRequestEndDate() { DataSetRequest.Builder.of("Hello").withEndDate(null).build(); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testDataSetRequestTransform() { DataSetRequest.Builder.of("Hello").withTransform(null).build(); }