diff --git a/client.py b/client3.py similarity index 90% rename from client.py rename to client3.py index 3fc09b75f16..8f28faf743b 100644 --- a/client.py +++ b/client3.py @@ -35,15 +35,13 @@ 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 ------------- """ - return 1 - + if(price_b == 0): + return (price_a/price_b) # Main if __name__ == "__main__": @@ -52,8 +50,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 new file mode 100644 index 00000000000..3169f51aaa3 --- /dev/null +++ b/client_test.py @@ -0,0 +1,28 @@ +import unittest +from client3 import getDataPoint + +class ClientTest(unittest.TestCase): + def test_getDataPoint_calculatePrice(self): + quotes = [ + {'top_ask': {'price': 121.2, 'size': 36}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 120.48, 'size': 109}, 'id': '0.109974697771', 'stock': 'ABC'}, + {'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'} + ] + """Assertion""" + for quote in quotes: + self.assertEquals(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 = [ + {'top_ask': {'price': 119.2, 'size': 36}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 120.48, 'size': 109}, 'id': '0.109974697771', 'stock': 'ABC'}, + {'top_ask': {'price': 121.68, 'size': 4}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 123.87, 'size': 81}, 'id': '0.109974697771', 'stock': 'DEF'} + ] + """ ------------ Add the assertion below ------------ """ + for quote in quotes: + self.assertEquals(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 ------------ """ + + + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/server.py b/server3.py similarity index 100% rename from server.py rename to server3.py