Skip to content

Commit f4bb67a

Browse files
committed
test cases to check previous commits
1 parent 5e573f9 commit f4bb67a

File tree

1 file changed

+140
-15
lines changed

1 file changed

+140
-15
lines changed

limit_order_book/test/test_limit_order_book.py

+140-15
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ def test(self):
2222
self.assertEqual(0, book.size_buy())
2323
self.assertEqual(0, book.size())
2424

25+
#
26+
# MARK: limit
27+
#
2528

2629
class ShouldPlaceSellLimitOrder(TestCase):
2730
def test(self):
@@ -42,27 +45,23 @@ def test(self):
4245
self.assertEqual(1, book.size())
4346

4447

45-
class ShouldCancelSellLimitOrder(TestCase):
48+
class ShouldPlaceSellLimitOrderByValue(TestCase):
4649
def test(self):
4750
book = limit_order_book.LimitOrderBook()
48-
book.limit_sell(1, 100, 50)
49-
self.assertTrue(book.has(1))
50-
book.cancel(1)
51-
self.assertFalse(book.has(1))
52-
self.assertEqual(0, book.best_sell())
51+
book.limit(False, 1, 100, 50)
52+
self.assertEqual(50, book.best_sell())
5353
self.assertEqual(0, book.best_buy())
54-
self.assertEqual(0, book.best(False))
54+
self.assertEqual(50, book.best(False))
5555
self.assertEqual(0, book.best(True))
56-
self.assertEqual(0, book.volume_sell())
57-
self.assertEqual(0, book.volume_sell(100))
56+
self.assertEqual(100, book.volume_sell())
57+
self.assertEqual(100, book.volume_sell(50))
5858
self.assertEqual(0, book.volume_buy())
59-
self.assertEqual(0, book.volume_buy(100))
60-
self.assertEqual(0, book.volume())
61-
self.assertEqual(0, book.volume(100))
62-
self.assertEqual(0, book.size_at(100))
63-
self.assertEqual(0, book.size_sell())
59+
self.assertEqual(100, book.volume())
60+
self.assertEqual(100, book.volume(50))
61+
self.assertEqual(1, book.size_at(50))
62+
self.assertEqual(1, book.size_sell())
6463
self.assertEqual(0, book.size_buy())
65-
self.assertEqual(0, book.size())
64+
self.assertEqual(1, book.size())
6665

6766

6867
class ShouldPlaceBuyLimitOrder(TestCase):
@@ -85,6 +84,97 @@ def test(self):
8584
self.assertEqual(1, book.size())
8685

8786

87+
class ShouldPlaceBuyLimitOrderByValue(TestCase):
88+
def test(self):
89+
book = limit_order_book.LimitOrderBook()
90+
book.limit(True, 1, 100, 50)
91+
self.assertEqual(0, book.best_sell())
92+
self.assertEqual(50, book.best_buy())
93+
self.assertEqual(0, book.best(False))
94+
self.assertEqual(50, book.best(True))
95+
self.assertEqual(0, book.volume_sell())
96+
self.assertEqual(0, book.volume_sell(50))
97+
self.assertEqual(100, book.volume_buy())
98+
self.assertEqual(100, book.volume_buy(50))
99+
self.assertEqual(100, book.volume())
100+
self.assertEqual(100, book.volume(50))
101+
self.assertEqual(1, book.size_at(50))
102+
self.assertEqual(0, book.size_sell())
103+
self.assertEqual(1, book.size_buy())
104+
self.assertEqual(1, book.size())
105+
106+
#
107+
# MARK: limit match
108+
#
109+
110+
class ShouldMatchSellLimitOrderWithIncomingBuy(TestCase):
111+
def test(self):
112+
book = limit_order_book.LimitOrderBook()
113+
book.limit_sell(1, 100, 50)
114+
book.limit_buy(2, 100, 50)
115+
self.assertEqual(0, book.best_sell())
116+
self.assertEqual(0, book.best_buy())
117+
self.assertEqual(0, book.best(False))
118+
self.assertEqual(0, book.best(True))
119+
self.assertEqual(0, book.volume_sell())
120+
self.assertEqual(0, book.volume_sell(50))
121+
self.assertEqual(0, book.volume_buy())
122+
self.assertEqual(0, book.volume_buy(50))
123+
self.assertEqual(0, book.volume())
124+
self.assertEqual(0, book.volume(50))
125+
self.assertEqual(0, book.size_at(50))
126+
self.assertEqual(0, book.size_sell())
127+
self.assertEqual(0, book.size_buy())
128+
self.assertEqual(0, book.size())
129+
130+
131+
class ShouldMatchBuyLimitOrderWithIncomingSell(TestCase):
132+
def test(self):
133+
book = limit_order_book.LimitOrderBook()
134+
book.limit_buy(1, 100, 50)
135+
book.limit_sell(2, 100, 50)
136+
self.assertEqual(0, book.best_sell())
137+
self.assertEqual(0, book.best_buy())
138+
self.assertEqual(0, book.best(False))
139+
self.assertEqual(0, book.best(True))
140+
self.assertEqual(0, book.volume_sell())
141+
self.assertEqual(0, book.volume_sell(50))
142+
self.assertEqual(0, book.volume_buy())
143+
self.assertEqual(0, book.volume_buy(50))
144+
self.assertEqual(0, book.volume())
145+
self.assertEqual(0, book.volume(50))
146+
self.assertEqual(0, book.size_at(50))
147+
self.assertEqual(0, book.size_sell())
148+
self.assertEqual(0, book.size_buy())
149+
self.assertEqual(0, book.size())
150+
151+
#
152+
# MARK: cancel
153+
#
154+
155+
class ShouldCancelSellLimitOrder(TestCase):
156+
def test(self):
157+
book = limit_order_book.LimitOrderBook()
158+
book.limit_sell(1, 100, 50)
159+
self.assertTrue(book.has(1))
160+
book.cancel(1)
161+
self.assertFalse(book.has(1))
162+
self.assertEqual(0, book.best_sell())
163+
self.assertEqual(0, book.best_buy())
164+
self.assertEqual(0, book.best(False))
165+
self.assertEqual(0, book.best(True))
166+
self.assertEqual(0, book.volume_sell())
167+
self.assertEqual(0, book.volume_sell(100))
168+
self.assertEqual(0, book.volume_buy())
169+
self.assertEqual(0, book.volume_buy(100))
170+
self.assertEqual(0, book.volume())
171+
self.assertEqual(0, book.volume(100))
172+
self.assertEqual(0, book.size_at(100))
173+
self.assertEqual(0, book.size_sell())
174+
self.assertEqual(0, book.size_buy())
175+
self.assertEqual(0, book.size())
176+
177+
88178
class ShouldCancelBuyLimitOrder(TestCase):
89179
def test(self):
90180
book = limit_order_book.LimitOrderBook()
@@ -107,6 +197,9 @@ def test(self):
107197
self.assertEqual(0, book.size_buy())
108198
self.assertEqual(0, book.size())
109199

200+
#
201+
# MARK: market
202+
#
110203

111204
class ShouldPlaceSellMarketOrderEmptyBook(TestCase):
112205
def test(self):
@@ -189,6 +282,9 @@ def test(self):
189282
self.assertEqual(0, book.size_buy())
190283
self.assertEqual(1, book.size())
191284

285+
#
286+
# MARK: clear
287+
#
192288

193289
class ShouldClearSellLimitOrders(TestCase):
194290
def test(self):
@@ -217,3 +313,32 @@ def test(self):
217313
self.assertEqual(0, book.size_sell())
218314
self.assertEqual(0, book.size_buy())
219315
self.assertEqual(0, book.size())
316+
317+
318+
class ShouldClearBuyLimitOrders(TestCase):
319+
def test(self):
320+
book = limit_order_book.LimitOrderBook()
321+
book.limit_sell(1, 100, 50)
322+
book.limit_sell(2, 100, 50)
323+
book.limit_sell(3, 100, 50)
324+
self.assertTrue(book.has(1))
325+
self.assertTrue(book.has(2))
326+
self.assertTrue(book.has(3))
327+
book.clear()
328+
self.assertFalse(book.has(1))
329+
self.assertFalse(book.has(2))
330+
self.assertFalse(book.has(3))
331+
self.assertEqual(0, book.best_sell())
332+
self.assertEqual(0, book.best_buy())
333+
self.assertEqual(0, book.best(False))
334+
self.assertEqual(0, book.best(True))
335+
self.assertEqual(0, book.volume_sell())
336+
self.assertEqual(0, book.volume_sell(100))
337+
self.assertEqual(0, book.volume_buy())
338+
self.assertEqual(0, book.volume_buy(100))
339+
self.assertEqual(0, book.volume())
340+
self.assertEqual(0, book.volume(100))
341+
self.assertEqual(0, book.size_at(100))
342+
self.assertEqual(0, book.size_sell())
343+
self.assertEqual(0, book.size_buy())
344+
self.assertEqual(0, book.size())

0 commit comments

Comments
 (0)