diff --git a/client3.py b/client3.py index f1771c3..7e69fce 100644 --- a/client3.py +++ b/client3.py @@ -35,14 +35,14 @@ def getDataPoint(quote): stock = quote['stock'] bid_price = float(quote['top_bid']['price']) ask_price = float(quote['top_ask']['price']) - price = bid_price + price = (bid_price+ask_price)/2 return stock, bid_price, ask_price, price def getRatio(price_a, price_b): """ Get ratio of price_a and price_b """ """ ------------- Update this function ------------- """ """ Also create some unit tests for this function in client_test.py """ - return 1 + return price_a/price_b # Main if __name__ == "__main__": @@ -52,8 +52,10 @@ def getRatio(price_a, price_b): quotes = json.loads(urllib.request.urlopen(QUERY.format(random.random())).read()) """ ----------- Update to get the ratio --------------- """ + prices={} for quote in quotes: stock, bid_price, ask_price, price = getDataPoint(quote) + prices[stock]=price print ("Quoted %s at (bid:%s, ask:%s, price:%s)" % (stock, bid_price, ask_price, price)) - print ("Ratio %s" % getRatio(price, price)) + print ("Ratio %s" % getRatio(prices['ABC'], prices['DEF'])) diff --git a/client_test.py b/client_test.py index af2bf26..6ab0427 100644 --- a/client_test.py +++ b/client_test.py @@ -8,6 +8,8 @@ def test_getDataPoint_calculatePrice(self): {'top_ask': {'price': 121.68, 'size': 4}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 117.87, 'size': 81}, 'id': '0.109974697771', 'stock': 'DEF'} ] """ ------------ Add the assertion below ------------ """ + for quote in quotes: + self.assertEqual(getDataPoint(quote),(quote['stock'],quote['top_bid']['price'],quote['top_ask']['price'],(quote['top_bid']['price']+quote['top_ask']['price'])/2)) def test_getDataPoint_calculatePriceBidGreaterThanAsk(self): quotes = [ @@ -15,6 +17,11 @@ def test_getDataPoint_calculatePriceBidGreaterThanAsk(self): {'top_ask': {'price': 121.68, 'size': 4}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 117.87, 'size': 81}, 'id': '0.109974697771', 'stock': 'DEF'} ] """ ------------ Add the assertion below ------------ """ + for quote in quotes: + self.assertEqual(getDataPoint(quote),(quote['stock'],quote['top_bid']['price'],quote['top_ask']['price'],(quote['top_bid']['price']+quote['top_ask']['price'])/2)) + + + """ ------------ Add more unit tests ------------ """