diff --git a/src/main/java/yahoofinance/Utils.java b/src/main/java/yahoofinance/Utils.java index ecf06d6..aecad55 100644 --- a/src/main/java/yahoofinance/Utils.java +++ b/src/main/java/yahoofinance/Utils.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.math.RoundingMode; import java.net.URLEncoder; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -21,12 +22,12 @@ public class Utils { private static final Logger log = LoggerFactory.getLogger(Utils.class); - + public static final BigDecimal HUNDRED = new BigDecimal(100); public static final BigDecimal THOUSAND = new BigDecimal(1000); public static final BigDecimal MILLION = new BigDecimal(1000000); public static final BigDecimal BILLION = new BigDecimal(1000000000); - + public static String join(String[] data, String d) { if (data.length == 0) { return ""; @@ -45,7 +46,7 @@ private static String cleanNumberString(String data) { } private static boolean isParseable(String data) { - return !(data == null || data.equals("N/A") || data.equals("-") + return !(data == null || data.equals("N/A") || data.equals("-") || data.equals("") || data.equals("nan")); } @@ -55,7 +56,7 @@ public static String getString(String data) { } return data; } - + public static BigDecimal getBigDecimal(String data) { BigDecimal result = null; if (!Utils.isParseable(data)) { @@ -86,7 +87,7 @@ public static BigDecimal getBigDecimal(String data) { } return result; } - + public static BigDecimal getBigDecimal(String dataMain, String dataSub) { BigDecimal main = getBigDecimal(dataMain); BigDecimal sub = getBigDecimal(dataSub); @@ -161,10 +162,10 @@ public static BigDecimal getPercent(BigDecimal numerator, BigDecimal denominator if (denominator == null || numerator == null || denominator.compareTo(BigDecimal.ZERO) == 0) { return BigDecimal.ZERO; } - return numerator.divide(denominator, 4, BigDecimal.ROUND_HALF_EVEN) - .multiply(HUNDRED).setScale(2, BigDecimal.ROUND_HALF_EVEN); + return numerator.divide(denominator, 4, RoundingMode.HALF_EVEN) + .multiply(HUNDRED).setScale(2, RoundingMode.HALF_EVEN); } - + public static double getPercent(double numerator, double denominator) { if (denominator == 0) { return 0; @@ -235,7 +236,7 @@ public static Calendar parseDividendDate(String date) { public static Calendar parseDateTime(String date, String time, TimeZone timeZone) { String datetime = date + " " + time; SimpleDateFormat format = new SimpleDateFormat("M/d/yyyy h:mma", Locale.US); - + format.setTimeZone(timeZone); try { if (Utils.isParseable(date) && Utils.isParseable(time)) { @@ -294,7 +295,7 @@ public static String getURLParameters(Map params) { } /** - * Strips the unwanted chars from a line returned in the CSV + * Strips the unwanted chars from a line returned in the CSV * Used for parsing the FX CSV lines * * @param line the original CSV line diff --git a/src/test/java/yahoofinance/HistoricalQuoteRequestTest.java b/src/test/java/yahoofinance/HistoricalQuoteRequestTest.java index f0742d2..d8c16f5 100644 --- a/src/test/java/yahoofinance/HistoricalQuoteRequestTest.java +++ b/src/test/java/yahoofinance/HistoricalQuoteRequestTest.java @@ -59,7 +59,7 @@ public void historicalQuoteTest() throws IOException { assertEquals(new BigDecimal("769.900024"), histQuote.getHigh()); assertEquals(new BigDecimal("689.00"), histQuote.getLow()); assertEquals(new BigDecimal("738.599976"), histQuote.getOpen()); - assertEquals(new Long(2125700), histQuote.getVolume()); + assertEquals(Long.valueOf(2125700), histQuote.getVolume()); assertEquals(3, histQuote.getDate().get(Calendar.MONTH)); assertEquals(1, histQuote.getDate().get(Calendar.DATE)); assertEquals(2016, histQuote.getDate().get(Calendar.YEAR)); diff --git a/src/test/java/yahoofinance/SimpleQuoteRequestTest.java b/src/test/java/yahoofinance/SimpleQuoteRequestTest.java index 358d53a..95b9880 100644 --- a/src/test/java/yahoofinance/SimpleQuoteRequestTest.java +++ b/src/test/java/yahoofinance/SimpleQuoteRequestTest.java @@ -31,11 +31,11 @@ public void europeStockQuoteTest() throws IOException { assertNotNull(stock.getDividend()); assertEquals(new BigDecimal("54.93"), stock.getQuote().getAsk()); - assertEquals(new Long(700), stock.getQuote().getAskSize()); + assertEquals(Long.valueOf(700), stock.getQuote().getAskSize()); assertEquals(new BigDecimal("54.00"), stock.getQuote().getBid()); - assertEquals(new Long(42000), stock.getQuote().getBidSize()); + assertEquals(Long.valueOf(42000), stock.getQuote().getBidSize()); assertEquals(new BigDecimal("50.34"), stock.getQuote().getPrice()); - assertEquals(new Long(813), stock.getQuote().getLastTradeSize()); + assertEquals(Long.valueOf(813), stock.getQuote().getLastTradeSize()); assertEquals(new BigDecimal("50.58"), stock.getQuote().getOpen()); assertEquals(new BigDecimal("51.00"), stock.getQuote().getPreviousClose()); @@ -46,8 +46,8 @@ public void europeStockQuoteTest() throws IOException { assertEquals(new BigDecimal("51.81"), stock.getQuote().getPriceAvg50()); assertEquals(new BigDecimal("55.21"), stock.getQuote().getPriceAvg200()); - assertEquals(new Long(1460112), stock.getQuote().getVolume()); - assertEquals(new Long(2211770), stock.getQuote().getAvgVolume()); + assertEquals(Long.valueOf(1460112), stock.getQuote().getVolume()); + assertEquals(Long.valueOf(2211770), stock.getQuote().getAvgVolume()); assertEquals("8/8/2016", stock.getQuote().getLastTradeDateStr()); assertEquals("5:35pm", stock.getQuote().getLastTradeTimeStr()); assertEquals(TimeZone.getTimeZone("Europe/Paris"), stock.getQuote().getTimeZone()); @@ -64,8 +64,8 @@ public void europeStockQuoteTest() throws IOException { assertEquals(new BigDecimal("4.72"), stock.getQuote().getChangeFromYearLowInPercent()); assertEquals(new BigDecimal("38880000000.00"), stock.getStats().getMarketCap()); - assertEquals(new Long(654166000), stock.getStats().getSharesFloat()); - assertEquals(new Long(772397000), stock.getStats().getSharesOutstanding()); + assertEquals(Long.valueOf(654166000), stock.getStats().getSharesFloat()); + assertEquals(Long.valueOf(772397000), stock.getStats().getSharesOutstanding()); assertEquals(new BigDecimal("3.74"), stock.getStats().getEps()); assertEquals(new BigDecimal("13.47"), stock.getStats().getPe()); assertEquals(new BigDecimal("0.00"), stock.getStats().getPeg()); @@ -105,7 +105,7 @@ public void usStockQuoteTest() throws IOException { * Most things already tested by europeanStockQuoteTest */ assertEquals(new BigDecimal("35.03"), stock.getQuote().getAsk()); - assertEquals(new Long(1699919), stock.getQuote().getLastTradeSize()); + assertEquals(Long.valueOf(1699919), stock.getQuote().getLastTradeSize()); assertEquals(new BigDecimal("34.98"), stock.getQuote().getPreviousClose()); assertEquals(new BigDecimal("35.93"), stock.getQuote().getYearHigh()); @@ -135,7 +135,7 @@ public void singaporeStockQuoteTest() throws IOException { assertNotNull(stock.getDividend()); assertEquals(new BigDecimal("10.89"), stock.getQuote().getAsk()); - assertEquals(new Long(300), stock.getQuote().getLastTradeSize()); + assertEquals(Long.valueOf(300), stock.getQuote().getLastTradeSize()); assertEquals(new BigDecimal("10.84"), stock.getQuote().getPreviousClose()); assertEquals(new BigDecimal("9.57"), stock.getQuote().getYearLow());