def test_from_network(self): # Test for from network data = StartTransaction.from_network( type( 'Data', (object, ), { "trader_id": TraderId('0'), "transaction_id": TransactionId(TraderId('0'), TransactionNumber(1)), "order_id": OrderId(TraderId('0'), OrderNumber(1)), "recipient_order_id": OrderId(TraderId('1'), OrderNumber(2)), "proposal_id": 1235, "assets": AssetPair(AssetAmount(30, 'BTC'), AssetAmount(40, 'MC')), "timestamp": Timestamp(0.0) })) self.assertEquals(TraderId("0"), data.trader_id) self.assertEquals(TransactionId(TraderId("0"), TransactionNumber(1)), data.transaction_id) self.assertEquals(OrderId(TraderId('0'), OrderNumber(1)), data.order_id) self.assertEquals(OrderId(TraderId('1'), OrderNumber(2)), data.recipient_order_id) self.assertEquals(1235, data.proposal_id) self.assertEquals(Timestamp(0.0), data.timestamp)
def setUp(self): # Object creation self.proposed_trade = Trade.propose(MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(2)), Price(63400, 'BTC'), Quantity(30, 'MC'), Timestamp(1462224447.117))
def from_database(cls, data, payments): """ Create a Transaction object based on information in the database. """ trader_id, transaction_number, order_trader_id, order_number, partner_trader_id, partner_order_number,\ asset1_amount, asset1_type, asset1_transferred, asset2_amount, asset2_type, asset2_transferred,\ transaction_timestamp, sent_wallet_info, received_wallet_info, incoming_address, outgoing_address,\ partner_incoming_address, partner_outgoing_address, match_id = data transaction_id = TransactionId(TraderId(str(trader_id)), TransactionNumber(transaction_number)) transaction = cls(transaction_id, AssetPair(AssetAmount(asset1_amount, str(asset1_type)), AssetAmount(asset2_amount, str(asset2_type))), OrderId(TraderId(str(order_trader_id)), OrderNumber(order_number)), OrderId(TraderId(str(partner_trader_id)), OrderNumber(partner_order_number)), Timestamp(float(transaction_timestamp))) transaction._transferred_assets = AssetPair(AssetAmount(asset1_transferred, str(asset1_type)), AssetAmount(asset2_transferred, str(asset2_type))) transaction.sent_wallet_info = sent_wallet_info transaction.received_wallet_info = received_wallet_info transaction.incoming_address = WalletAddress(str(incoming_address)) transaction.outgoing_address = WalletAddress(str(outgoing_address)) transaction.partner_incoming_address = WalletAddress(str(partner_incoming_address)) transaction.partner_outgoing_address = WalletAddress(str(partner_outgoing_address)) transaction.match_id = str(match_id) transaction._payments = payments return transaction
def from_network(cls, data): """ Restore a declined trade from the network :param data: DeclinedTradePayload :return: Restored declined trade :rtype: DeclinedTrade """ assert hasattr(data, 'trader_id'), isinstance(data.trader_id, TraderId) assert hasattr(data, 'message_number'), isinstance(data.message_number, MessageNumber) assert hasattr(data, 'order_number'), isinstance(data.order_number, OrderNumber) assert hasattr(data, 'recipient_trader_id'), isinstance(data.recipient_trader_id, TraderId) assert hasattr(data, 'recipient_order_number'), isinstance(data.recipient_order_number, OrderNumber) assert hasattr(data, 'proposal_id'), isinstance(data.proposal_id, int) assert hasattr(data, 'timestamp'), isinstance(data.timestamp, Timestamp) assert hasattr(data, 'decline_reason'), isinstance(data.decline_reason, int) return cls( MessageId(data.trader_id, data.message_number), OrderId(data.trader_id, data.order_number), OrderId(data.recipient_trader_id, data.recipient_order_number), data.proposal_id, data.timestamp, data.decline_reason )
def test_proposed_trade_cache_timeout(self): """ Test the timeout method of a proposed trade request in the cache """ ask = Ask( OrderId(TraderId(self.market_community.mid), OrderNumber(24)), Price(63400, 'DUM1'), Quantity(30, 'DUM2'), Timeout(3600), Timestamp.now()) order = Order(OrderId(TraderId("0"), OrderNumber(23)), Price(20, 'DUM1'), Quantity(30, 'DUM2'), Timeout(3600.0), Timestamp.now(), False) self.market_community.order_book.insert_ask(ask) self.assertEqual(len(self.market_community.order_book.asks), 1) self.market_community.order_manager.order_repository.add(order) order.reserve_quantity_for_tick(self.proposed_trade.recipient_order_id, Quantity(30, 'DUM2')) self.market_community.order_manager.order_repository.update(order) mocked_match_message = MockObject() mocked_match_message.payload = MockObject() mocked_match_message.payload.matchmaker_trader_id = 'a' self.market_community.incoming_match_messages[ 'a'] = mocked_match_message def mocked_send_decline(*_): mocked_send_decline.called = True mocked_send_decline.called = False self.market_community.send_decline_match_message = mocked_send_decline cache = ProposedTradeRequestCache(self.market_community, self.proposed_trade, 'a') cache.on_timeout() self.assertTrue(mocked_send_decline.called)
def test_from_network(self): # Test for from network data = ProposedTrade.from_network( type( 'Data', (object, ), { "trader_id": TraderId('0'), "message_id": MessageId(TraderId('0'), MessageNumber(1)), "order_number": OrderNumber(1), "recipient_order_id": OrderId(TraderId('1'), OrderNumber(2)), "proposal_id": 1234, "timestamp": Timestamp(1462224447.117), "price": Price(63400, 'BTC'), "quantity": Quantity(30, 'MC') })) self.assertEquals(MessageId(TraderId('0'), MessageNumber(1)), data.message_id) self.assertEquals(OrderId(TraderId('0'), OrderNumber(1)), data.order_id) self.assertEquals(OrderId(TraderId('1'), OrderNumber(2)), data.recipient_order_id) self.assertEquals(1234, data.proposal_id) self.assertEquals(Price(63400, 'BTC'), data.price) self.assertEquals(Quantity(30, 'MC'), data.quantity) self.assertEquals(Timestamp(1462224447.117), data.timestamp)
def from_network(cls, data): """ Restore a counter trade from the network :param data: TradePayload :return: Restored counter trade :rtype: CounterTrade """ assert hasattr(data, 'trader_id'), isinstance(data.trader_id, TraderId) assert hasattr(data, 'message_number'), isinstance(data.message_number, MessageNumber) assert hasattr(data, 'order_number'), isinstance(data.order_number, OrderNumber) assert hasattr(data, 'recipient_trader_id'), isinstance(data.recipient_trader_id, TraderId) assert hasattr(data, 'recipient_order_number'), isinstance(data.recipient_order_number, OrderNumber) assert hasattr(data, 'proposal_id'), isinstance(data.proposal_id, int) assert hasattr(data, 'price'), isinstance(data.price, Price) assert hasattr(data, 'quantity'), isinstance(data.quantity, Quantity) assert hasattr(data, 'timestamp'), isinstance(data.timestamp, Timestamp) return cls( MessageId(data.trader_id, data.message_number), OrderId(data.trader_id, data.order_number), OrderId(data.recipient_trader_id, data.recipient_order_number), data.proposal_id, data.price, data.quantity, data.timestamp )
def setUp(self): # Object creation self.trade = Trade( MessageId(TraderId('0'), MessageNumber('message_number')), OrderId(TraderId('0'), OrderNumber(3)), OrderId(TraderId('0'), OrderNumber(4)), 1234, Timestamp(1462224447.117))
class OrderIDTestSuite(unittest.TestCase): """Order ID test cases.""" def setUp(self): # Object creation self.order_id = OrderId(TraderId("0"), OrderNumber(1)) self.order_id2 = OrderId(TraderId("0"), OrderNumber(1)) self.order_id3 = OrderId(TraderId("0"), OrderNumber(2)) def test_equality(self): # Test for equality self.assertEquals(self.order_id, self.order_id) self.assertEquals(self.order_id, self.order_id2) self.assertFalse(self.order_id == self.order_id3) self.assertEquals(NotImplemented, self.order_id.__eq__("")) def test_non_equality(self): # Test for non equality self.assertNotEquals(self.order_id, self.order_id3) def test_hashes(self): # Test for hashes self.assertEquals(self.order_id.__hash__(), self.order_id2.__hash__()) self.assertNotEqual(self.order_id.__hash__(), self.order_id3.__hash__()) def test_str(self): # Test for string representation self.assertEquals('0.1', str(self.order_id))
def test_from_network(self): # Test for from network data = ProposedTrade.from_network( type( 'Data', (object, ), { "trader_id": TraderId(b'0'), "order_number": OrderNumber(1), "recipient_order_id": OrderId(TraderId('1'), OrderNumber(2)), "proposal_id": 1234, "timestamp": Timestamp(1462224447.117), "assets": AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')) })) self.assertEquals(TraderId(b'0'), data.trader_id) self.assertEquals(OrderId(TraderId(b'0'), OrderNumber(1)), data.order_id) self.assertEquals(OrderId(TraderId(b'1'), OrderNumber(2)), data.recipient_order_id) self.assertEquals(1234, data.proposal_id) self.assertEquals( AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), data.assets) self.assertEquals(Timestamp(1462224447.117), data.timestamp)
def setUp(self): yield super(TestDatabase, self).setUp() path = os.path.join(self.getStateDir(), 'sqlite') if not os.path.exists(path): os.makedirs(path) self.database = MarketDB(self.getStateDir(), 'market') self.order_id1 = OrderId(TraderId(b'3'), OrderNumber(4)) self.order_id2 = OrderId(TraderId(b'4'), OrderNumber(5)) self.order1 = Order(self.order_id1, AssetPair(AssetAmount(5, 'BTC'), AssetAmount(6, 'EUR')), Timeout(3600), Timestamp.now(), True) self.order2 = Order(self.order_id2, AssetPair(AssetAmount(5, 'BTC'), AssetAmount(6, 'EUR')), Timeout(3600), Timestamp.now(), False) self.order2.reserve_quantity_for_tick(OrderId(TraderId(b'3'), OrderNumber(4)), 3) self.transaction_id1 = TransactionId(TraderId(b"0"), TransactionNumber(4)) self.transaction1 = Transaction(self.transaction_id1, AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MB')), OrderId(TraderId(b"0"), OrderNumber(1)), OrderId(TraderId(b"1"), OrderNumber(2)), Timestamp(20.0)) self.payment1 = Payment(TraderId(b"0"), self.transaction_id1, AssetAmount(5, 'BTC'), WalletAddress('abc'), WalletAddress('def'), PaymentId("abc"), Timestamp(20.0), False) self.transaction1.add_payment(self.payment1)
def from_database(cls, data, payments): """ Create a Transaction object based on information in the database. """ trader_id, transaction_number, order_trader_id, order_number, partner_trader_id, partner_order_number, price,\ price_type, transferred_price, quantity, quantity_type, transferred_quantity, transaction_timestamp,\ sent_wallet_info, received_wallet_info, incoming_address, outgoing_address, partner_incoming_address,\ partner_outgoing_address, match_id = data transaction_id = TransactionId(TraderId(str(trader_id)), TransactionNumber(transaction_number)) transaction = cls( transaction_id, Price(price, str(price_type)), Quantity(quantity, str(quantity_type)), OrderId(TraderId(str(order_trader_id)), OrderNumber(order_number)), OrderId(TraderId(str(partner_trader_id)), OrderNumber(partner_order_number)), Timestamp(float(transaction_timestamp))) transaction._transferred_price = Price(transferred_price, str(price_type)) transaction._transferred_quantity = Quantity(transferred_quantity, str(quantity_type)) transaction.sent_wallet_info = sent_wallet_info transaction.received_wallet_info = received_wallet_info transaction.incoming_address = WalletAddress(str(incoming_address)) transaction.outgoing_address = WalletAddress(str(outgoing_address)) transaction.partner_incoming_address = WalletAddress( str(partner_incoming_address)) transaction.partner_outgoing_address = WalletAddress( str(partner_outgoing_address)) transaction.match_id = str(match_id) transaction._payments = payments return transaction
def setUp(self, annotate=True): yield super(TestDatabase, self).setUp(annotate=annotate) path = os.path.join(self.getStateDir(), 'sqlite') if not os.path.exists(path): os.makedirs(path) self.database = MarketDB(self.getStateDir()) self.order_id1 = OrderId(TraderId('3'), OrderNumber(4)) self.order_id2 = OrderId(TraderId('4'), OrderNumber(5)) self.order1 = Order(self.order_id1, Price(5, 'EUR'), Quantity(6, 'BTC'), Timeout(3600), Timestamp.now(), True) self.order2 = Order(self.order_id2, Price(5, 'EUR'), Quantity(6, 'BTC'), Timeout(3600), Timestamp.now(), False) self.transaction_id1 = TransactionId(TraderId("0"), TransactionNumber(4)) self.transaction1 = Transaction(self.transaction_id1, Price(100, 'BTC'), Quantity(30, 'MC'), OrderId(TraderId("0"), OrderNumber(1)), OrderId(TraderId("1"), OrderNumber(2)), Timestamp(20.0)) self.payment1 = Payment(MessageId(TraderId("0"), MessageNumber("4")), self.transaction_id1, Quantity(5, 'MC'), Price(6, 'BTC'), WalletAddress('abc'), WalletAddress('def'), PaymentId("abc"), Timestamp(20.0), False) self.transaction1.add_payment(self.payment1)
def setUp(self, annotate=True): yield super(MatchingEngineTestSuite, self).setUp(annotate=annotate) # Object creation self.ask = Ask( OrderId(TraderId('2'), OrderNumber(1)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp.now()) self.bid = Bid( OrderId(TraderId('4'), OrderNumber(2)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp.now()) self.ask_order = Order( OrderId(TraderId('5'), OrderNumber(3)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp.now(), True) self.bid_order = Order( OrderId(TraderId('6'), OrderNumber(4)), AssetPair(AssetAmount(3000, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp.now(), False) self.order_book = OrderBook() self.matching_engine = MatchingEngine( PriceTimeStrategy(self.order_book)) self.ask_count = 2 self.bid_count = 2
def get_tx_done_block(ask_amount, bid_amount, traded_amount, ask_total_traded, bid_total_traded): ask_pair = AssetPair(AssetAmount(ask_amount, 'BTC'), AssetAmount(ask_amount, 'MB')) bid_pair = AssetPair(AssetAmount(bid_amount, 'BTC'), AssetAmount(bid_amount, 'MB')) ask = Order(OrderId(TraderId('0' * 40), OrderNumber(1)), ask_pair, Timeout(3600), Timestamp.now(), True) ask._traded_quantity = ask_total_traded bid = Order(OrderId(TraderId('1' * 40), OrderNumber(1)), bid_pair, Timeout(3600), Timestamp.now(), False) bid._traded_quantity = bid_total_traded tx = Transaction( TransactionId(TraderId('0' * 40), TransactionNumber(1)), AssetPair(AssetAmount(traded_amount, 'BTC'), AssetAmount(traded_amount, 'MB')), OrderId(TraderId('0' * 40), OrderNumber(1)), OrderId(TraderId('1' * 40), OrderNumber(1)), Timestamp(0.0)) tx.transferred_assets.first += AssetAmount(traded_amount, 'BTC') tx.transferred_assets.second += AssetAmount(traded_amount, 'MB') tx_done_block = MarketBlock() tx_done_block.type = 'tx_done' tx_done_block.transaction = { 'ask': ask.to_status_dictionary(), 'bid': bid.to_status_dictionary(), 'tx': tx.to_dictionary(), 'version': MarketCommunity.PROTOCOL_VERSION } tx_done_block.transaction['ask']['address'], tx_done_block.transaction[ 'ask']['port'] = "1.1.1.1", 1234 tx_done_block.transaction['bid']['address'], tx_done_block.transaction[ 'bid']['port'] = "1.1.1.1", 1234 return tx_done_block
def setUp(self): # Object creation self.proposed_trade = Trade.propose( TraderId(b'0'), OrderId(TraderId(b'0'), OrderNumber(1)), OrderId(TraderId(b'1'), OrderNumber(2)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117))
def test_from_network(self): # Test for from network data = StartTransaction.from_network( type( 'Data', (object, ), { "trader_id": TraderId('0'), "message_number": MessageNumber("1"), "transaction_trader_id": TraderId('0'), "transaction_number": TransactionNumber(1), "order_trader_id": TraderId('0'), "order_number": OrderNumber(1), "recipient_trader_id": TraderId('1'), "recipient_order_number": OrderNumber(2), "proposal_id": 1235, "price": Price(300, 'BTC'), "quantity": Quantity(20, 'MC'), "timestamp": Timestamp(0.0) })) self.assertEquals(MessageId(TraderId("0"), MessageNumber("1")), data.message_id) self.assertEquals(TransactionId(TraderId("0"), TransactionNumber(1)), data.transaction_id) self.assertEquals(OrderId(TraderId('0'), OrderNumber(1)), data.order_id) self.assertEquals(OrderId(TraderId('1'), OrderNumber(2)), data.recipient_order_id) self.assertEquals(1235, data.proposal_id) self.assertEquals(Timestamp(0.0), data.timestamp)
def setUp(self): # Object creation self.start_transaction = StartTransaction( TraderId('0'), TransactionId(TraderId("0"), TransactionNumber(1)), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(1)), 1234, AssetPair(AssetAmount(30, 'BTC'), AssetAmount(40, 'MC')), Timestamp(0.0))
def setUp(self): # Object creation self.start_transaction = StartTransaction( MessageId(TraderId('0'), MessageNumber('1')), TransactionId(TraderId("0"), TransactionNumber(1)), OrderId(TraderId('0'), OrderNumber(1)), OrderId(TraderId('1'), OrderNumber(1)), 1234, Price(30, 'BTC'), Quantity(40, 'MC'), Timestamp(0.0))
def from_unpack_list(cls, trader_id, message_number, timestamp, transaction_trader_id, transaction_number, order_trader_id, order_number, recipient_trader_id, recipient_order_number, proposal_id, price, price_type, quantity, quantity_type): return StartTransactionPayload(MessageId(TraderId(trader_id), MessageNumber(message_number)), Timestamp(timestamp), TransactionId(TraderId(transaction_trader_id), TransactionNumber(transaction_number)), OrderId(TraderId(order_trader_id), OrderNumber(order_number)), OrderId(TraderId(recipient_trader_id), OrderNumber(recipient_order_number)), proposal_id, Price(price, price_type), Quantity(quantity, quantity_type))
def setUp(self, annotate=True): yield super(TestMarketBlock, self).setUp(annotate=annotate) self.ask = Ask( OrderId(TraderId('0' * 40), OrderNumber(1)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp(0.0), True) self.bid = Ask( OrderId(TraderId('1' * 40), OrderNumber(1)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp(0.0), False) self.transaction = Transaction( TransactionId(TraderId('0' * 40), TransactionNumber(1)), AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), OrderId(TraderId('0' * 40), OrderNumber(1)), OrderId(TraderId('1' * 40), OrderNumber(1)), Timestamp(0.0)) ask_tx = self.ask.to_block_dict() ask_tx["address"], ask_tx["port"] = "127.0.0.1", 1337 bid_tx = self.bid.to_block_dict() bid_tx["address"], bid_tx["port"] = "127.0.0.1", 1337 self.tick_block = MarketBlock() self.tick_block.type = 'tick' self.tick_block.transaction = {'tick': ask_tx} self.cancel_block = MarketBlock() self.cancel_block.type = 'cancel_order' self.cancel_block.transaction = { 'trader_id': 'a' * 40, 'order_number': 1 } self.tx_block = MarketBlock() self.tx_block.type = 'tx_init' self.tx_block.transaction = { 'ask': ask_tx, 'bid': bid_tx, 'tx': self.transaction.to_dictionary() } payment = { 'trader_id': 'a' * 40, 'transaction_number': 3, 'transferred': { 'amount': 3, 'type': 'BTC' }, 'payment_id': 'a', 'address_from': 'a', 'address_to': 'b', 'timestamp': 1234.3, 'success': True } self.payment_block = MarketBlock() self.payment_block.type = 'tx_payment' self.payment_block.transaction = {'payment': payment}
def from_unpack_list(cls, trader_id, timestamp, tx_trader_id, transaction_number, order_trader_id, order_number, recipient_trader_id, recipient_order_number, proposal_id, asset1_amount, asset1_type, asset2_amount, asset2_type): return StartTransactionPayload(TraderId(trader_id), Timestamp(timestamp), TransactionId(TraderId(tx_trader_id), TransactionNumber(transaction_number)), OrderId(TraderId(order_trader_id), OrderNumber(order_number)), OrderId(TraderId(recipient_trader_id), OrderNumber(recipient_order_number)), proposal_id, AssetPair(AssetAmount(asset1_amount, asset1_type), AssetAmount(asset2_amount, asset2_type)))
def test_remove_tick(self): # Test remove tick self.side.insert_tick(self.tick) self.side.insert_tick(self.tick2) self.side.remove_tick(OrderId(TraderId('0'), OrderNumber(1))) self.assertEquals(1, len(self.side)) self.side.remove_tick(OrderId(TraderId('1'), OrderNumber(2))) self.assertEquals(0, len(self.side))
def setUp(self): # Object creation self.memory_transaction_repository = MemoryTransactionRepository("0") self.transaction_id = TransactionId(TraderId("0"), TransactionNumber(1)) self.transaction = Transaction(self.transaction_id, Price(100, 'BTC'), Quantity(30, 'MC'), OrderId(TraderId("0"), OrderNumber(1)), OrderId(TraderId("2"), OrderNumber(2)), Timestamp(0.0))
def test_insert_tick(self): # Test insert tick self.assertEquals(0, len(self.side)) self.assertFalse(self.side.tick_exists(OrderId(TraderId('0'), OrderNumber(1)))) self.side.insert_tick(self.tick) self.side.insert_tick(self.tick2) self.assertEquals(2, len(self.side)) self.assertTrue(self.side.tick_exists(OrderId(TraderId('0'), OrderNumber(1))))
def setUp(self): # Object creation self.tick = Tick(OrderId(TraderId('0'), OrderNumber(1)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now(), True) self.tick2 = Tick(OrderId(TraderId('1'), OrderNumber(2)), AssetPair(AssetAmount(120, 'BTC'), AssetAmount(30, 'MB')), Timeout(100), Timestamp.now(), True) self.side = Side()
def setUp(self): # Object creation self.proposed_trade = Trade.propose( TraderId(b'0'), OrderId(TraderId(b'0'), OrderNumber(1)), OrderId(TraderId(b'1'), OrderNumber(2)), AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')), Timestamp(1462224447.117)) self.declined_trade = Trade.decline( TraderId(b'0'), Timestamp(1462224447.117), self.proposed_trade, DeclinedTradeReason.ORDER_COMPLETED)
def setUp(self): # Object creation self.tick = Tick(OrderId(TraderId('0'), OrderNumber(1)), Price(400, 'BTC'), Quantity(30, 'MC'), Timeout(float("inf")), Timestamp(float("inf")), True) self.tick2 = Tick(OrderId(TraderId('1'), OrderNumber(2)), Price(800, 'BTC'), Quantity(30, 'MC'), Timeout(float("inf")), Timestamp(float("inf")), True) self.side = Side()
def test_add_trade(self): """ Test the add trade method of an order """ self.order.reserve_quantity_for_tick( OrderId(TraderId('5'), OrderNumber(1)), Quantity(10, 'MC')) self.assertEquals(self.order.traded_quantity, Quantity(0, 'MC')) self.order.add_trade(OrderId(TraderId('5'), OrderNumber(1)), Quantity(10, 'MC')) self.assertEquals(self.order.traded_quantity, Quantity(10, 'MC'))
def setUp(self): # Object creation self.memory_transaction_repository = MemoryTransactionRepository("0") self.transaction_id = TransactionId(TraderId(b"0"), TransactionNumber(1)) self.transaction = Transaction( self.transaction_id, AssetPair(AssetAmount(10, 'BTC'), AssetAmount(10, 'MB')), OrderId(TraderId(b"0"), OrderNumber(1)), OrderId(TraderId(b"2"), OrderNumber(2)), Timestamp(0.0))
def setUp(self): # Object creation self.order_id = OrderId(TraderId("0"), OrderNumber(1)) self.order_id2 = OrderId(TraderId("0"), OrderNumber(1)) self.order_id3 = OrderId(TraderId("0"), OrderNumber(2))