示例#1
0
 def test_match_equal(self):
     insert_many_orders([create_book_order('bid', 240, 0.0, str(round(time.time(), 2)), 0.1, str(uuid.uuid4())),
                         create_book_order('ask', 240, 0.0, str(round(time.time(), 2)), 0.1, str(uuid.uuid4()))])
     trade = match_orders()
     self.assertIsNotNone(trade)
     self.assertIsInstance(trade, Trade)
     bid = get_next_order('bid')
     self.assertIsNone(bid)
     ask = get_next_order('ask')
     self.assertIsNone(ask)
示例#2
0
 def test_match_different_prices_time(self):
     t1 = str(round(time.time(), 2))
     time.sleep(0.015)
     t2 = str(round(time.time(), 2))
     insert_many_orders([create_book_order('bid', 242, 0.0, t1, 0.1, str(uuid.uuid4())),
                         create_book_order('ask', 240, 0.0, t2, 0.1, str(uuid.uuid4()))])
     trade = match_orders()
     self.assertIsNotNone(trade)
     self.assertIsInstance(trade, Trade)
     self.assertEqual(trade.price, 240)
     bid = get_next_order('bid')
     self.assertIsNone(bid)
     ask = get_next_order('ask')
     self.assertIsNone(ask)
示例#3
0
 def test_speed(self):
     book = []
     for i in range(0, 50000):
         book.append(create_book_order('bid', 250, 0.0, round(time.time(), 2), 0.1, uuid.uuid4()))
         book.append(create_book_order('ask', 250, 0.0, round(time.time(), 2), 0.1, uuid.uuid4()))
     t1 = time.time()
     insert_many_orders(book)
     t2 = time.time()
     while match_orders():
         pass
     t3 = time.time()
     self.assertLessEqual(t2 - t1, 3)  # calibrated on Ira's laptop then doubled for margin
     self.assertLessEqual(t3 - t2, 30)  # calibrated on Ira's laptop then doubled for margin
     print "time to insert 100k orders: %s" % (t2 - t1)
     print "time to process 100k orders: %s" % (t3 - t2)