diff --git a/0001-Re-add-sample-unit-test.patch b/0001-Re-add-sample-unit-test.patch new file mode 100644 index 00000000000..f682207a26d --- /dev/null +++ b/0001-Re-add-sample-unit-test.patch @@ -0,0 +1,44 @@ +From 879221fec2b863d37d5b493f02a530a8098ef6ef Mon Sep 17 00:00:00 2001 +From: Joe Ferrer +Date: Wed, 1 Mar 2023 00:11:51 +1100 +Subject: [PATCH] Re-add sample unit test + +--- + client_test.py | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + create mode 100644 client_test.py + +diff --git a/client_test.py b/client_test.py +new file mode 100644 +index 0000000..af2bf26 +--- /dev/null ++++ b/client_test.py +@@ -0,0 +1,25 @@ ++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'} ++ ] ++ """ ------------ Add the assertion below ------------ """ ++ ++ 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': 117.87, 'size': 81}, 'id': '0.109974697771', 'stock': 'DEF'} ++ ] ++ """ ------------ Add the assertion below ------------ """ ++ ++ ++ """ ------------ Add more unit tests ------------ """ ++ ++ ++ ++if __name__ == '__main__': ++ unittest.main() +-- +2.43.0.windows.1 + diff --git a/__pycache__/client3.cpython-311.pyc b/__pycache__/client3.cpython-311.pyc new file mode 100644 index 00000000000..a79d0f0a61f Binary files /dev/null and b/__pycache__/client3.cpython-311.pyc differ diff --git a/client.py b/client3.py similarity index 90% rename from client.py rename to client3.py index 3fc09b75f16..b4a4b2ca945 100644 --- a/client.py +++ b/client3.py @@ -35,14 +35,16 @@ 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 + return price_a/price_b # Main @@ -52,8 +54,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..e93ec5eeedb --- /dev/null +++ b/client_test.py @@ -0,0 +1,29 @@ +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'} + ] + """ ------------ 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 = [ + {'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': 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 ------------ """ + + + +if __name__ == '__main__': + unittest.main() diff --git a/server.py b/server3.py similarity index 100% rename from server.py rename to server3.py