Exemple #1
0
    def setUp(self):
        # Object creation
        self.transaction_id = TransactionId(TraderId("0"),
                                            TransactionNumber(1))
        self.transaction = Transaction(self.transaction_id, Price(100, 'BTC'),
                                       Quantity(30, 'MC'),
                                       OrderId(TraderId('0'), OrderNumber(2)),
                                       OrderId(TraderId('1'), OrderNumber(1)),
                                       Timestamp(0.0))
        self.proposed_trade = Trade.propose(
            MessageId(TraderId('0'), MessageNumber('1')),
            OrderId(TraderId('0'), OrderNumber(2)),
            OrderId(TraderId('1'), OrderNumber(3)), Price(100, 'BTC'),
            Quantity(30, 'MC'), Timestamp(0.0))

        self.tick = Tick(
            MessageId(TraderId('0'), MessageNumber('message_number')),
            OrderId(TraderId('0'), OrderNumber(1)), Price(100, 'BTC'),
            Quantity(5, 'MC'), Timeout(0.0), Timestamp(float("inf")), True)
        self.tick2 = Tick(
            MessageId(TraderId('0'), MessageNumber('message_number')),
            OrderId(TraderId('0'), OrderNumber(2)), Price(100, 'BTC'),
            Quantity(100, 'MC'), Timeout(0.0), Timestamp(float("inf")), True)
        self.order = Order(OrderId(TraderId("0"), OrderNumber(3)),
                           Price(100, 'BTC'), Quantity(30, 'MC'),
                           Timeout(5000), Timestamp(time.time()), False)
        self.order2 = Order(OrderId(TraderId("0"), OrderNumber(4)),
                            Price(100, 'BTC'), Quantity(30, 'MC'), Timeout(5),
                            Timestamp(time.time() - 1000), True)
Exemple #2
0
    def setUp(self):
        # Object creation
        self.transaction_id = TransactionId(TraderId("0"),
                                            TransactionNumber(1))
        self.transaction = Transaction(
            self.transaction_id,
            AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')),
            OrderId(TraderId('0'), OrderNumber(2)),
            OrderId(TraderId('1'), OrderNumber(1)), Timestamp(0.0))
        self.proposed_trade = Trade.propose(
            TraderId('0'), OrderId(TraderId('0'), OrderNumber(2)),
            OrderId(TraderId('1'), OrderNumber(3)),
            AssetPair(AssetAmount(100, 'BTC'), AssetAmount(30, 'MC')),
            Timestamp(0.0))

        self.tick = Tick(
            OrderId(TraderId('0'), OrderNumber(1)),
            AssetPair(AssetAmount(5, 'BTC'), AssetAmount(5, 'MC')), Timeout(0),
            Timestamp(float("inf")), True)
        self.tick2 = Tick(
            OrderId(TraderId('0'), OrderNumber(2)),
            AssetPair(AssetAmount(500, 'BTC'), AssetAmount(5, 'MC')),
            Timeout(0), Timestamp(float("inf")), True)

        self.order_timestamp = Timestamp.now()
        self.order = Order(
            OrderId(TraderId("0"), OrderNumber(3)),
            AssetPair(AssetAmount(50, 'BTC'), AssetAmount(5, 'MC')),
            Timeout(5000), self.order_timestamp, False)
        self.order.set_verified()
        self.order2 = Order(
            OrderId(TraderId("0"), OrderNumber(4)),
            AssetPair(AssetAmount(50, 'BTC'), AssetAmount(5, 'MC')),
            Timeout(5), Timestamp(time.time() - 1000), True)
        self.order2.set_verified()
Exemple #3
0
    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()
Exemple #4
0
    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()
Exemple #5
0
 def setUp(self):
     # Object creation
     self.timestamp_now = Timestamp.now()
     self.tick = Tick(OrderId(TraderId(b'0'), OrderNumber(1)),
                      AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp(0.0), True)
     self.tick2 = Tick(OrderId(TraderId(b'0'), OrderNumber(2)),
                       AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0.0), False)
     self.order_ask = Order(OrderId(TraderId(b'0'), OrderNumber(2)),
                            AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
                            Timeout(0), Timestamp(0.0), True)
     self.order_bid = Order(OrderId(TraderId(b'0'), OrderNumber(2)),
                            AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
                            Timeout(0), Timestamp(0.0), False)
Exemple #6
0
 def setUp(self):
     # Object creation
     self.timestamp_now = Timestamp.now()
     self.tick = Tick(OrderId(TraderId('0'), OrderNumber(1)),
                      AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp(0.0), True)
     self.tick2 = Tick(OrderId(TraderId('0'), OrderNumber(2)),
                       AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0.0), False)
     self.order_ask = Order(OrderId(TraderId('0'), OrderNumber(2)),
                            AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
                            Timeout(0), Timestamp(0.0), True)
     self.order_bid = Order(OrderId(TraderId('0'), OrderNumber(2)),
                            AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
                            Timeout(0), Timestamp(0.0), False)
Exemple #7
0
    def test_add_remove_tick(self):
        """
        Test addition, retrieval and deletion of ticks in the database
        """
        ask = Tick.from_order(self.order1)
        self.database.add_tick(ask)
        bid = Tick.from_order(self.order2)
        self.database.add_tick(bid)

        self.assertEqual(len(self.database.get_ticks()), 2)

        self.database.delete_all_ticks()
        self.assertEqual(len(self.database.get_ticks()), 0)
Exemple #8
0
    def setUp(self, annotate=True):
        yield super(TickEntryTestSuite, self).setUp(annotate=annotate)

        # Object creation
        tick = Tick(OrderId(TraderId('0'), OrderNumber(1)),
                    Price(63400, 'BTC'), Quantity(30, 'MC'), Timeout(0.0),
                    Timestamp(0.0), True)
        tick2 = Tick(OrderId(TraderId('0'), OrderNumber(2)),
                     Price(63400, 'BTC'), Quantity(30, 'MC'), Timeout(100),
                     Timestamp.now(), True)

        self.price_level = PriceLevel('MC')
        self.tick_entry = TickEntry(tick, self.price_level)
        self.tick_entry2 = TickEntry(tick2, self.price_level)
    def setUp(self):
        # Object creation
        tick = Tick(MessageId(TraderId('0'), MessageNumber('message_number')),
                    OrderId(TraderId('0'), OrderNumber(1)),
                    Price(63400, 'BTC'), Quantity(30, 'MC'), Timeout(0.0),
                    Timestamp(0.0), True)
        tick2 = Tick(MessageId(TraderId('0'), MessageNumber('message_number')),
                     OrderId(TraderId('0'), OrderNumber(2)),
                     Price(63400, 'BTC'), Quantity(30, 'MC'), Timeout(100),
                     Timestamp.now(), True)

        self.price_level = PriceLevel('MC')
        self.tick_entry = TickEntry(tick, self.price_level)
        self.tick_entry2 = TickEntry(tick2, self.price_level)
Exemple #10
0
    def setUp(self):
        # Object creation
        tick = Tick(OrderId(TraderId(b'0'), OrderNumber(1)),
                    AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MC')),
                    Timeout(100), Timestamp.now(), True)
        tick2 = Tick(OrderId(TraderId(b'0'), OrderNumber(2)),
                     AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MC')),
                     Timeout(100), Timestamp.now(), True)

        self.price_level = PriceLevel(Price(10, 'MC', 'BTC'))
        self.tick_entry1 = TickEntry(tick, self.price_level)
        self.tick_entry2 = TickEntry(tick, self.price_level)
        self.tick_entry3 = TickEntry(tick, self.price_level)
        self.tick_entry4 = TickEntry(tick, self.price_level)
        self.tick_entry5 = TickEntry(tick2, self.price_level)
Exemple #11
0
 def setUp(self):
     # Object creation
     self.timestamp_now = Timestamp.now()
     self.tick = Tick(OrderId(TraderId('0'), OrderNumber(1)),
                      Price(63400, 'BTC'), Quantity(30, 'MC'), Timeout(30),
                      self.timestamp_now, True)
     self.tick2 = Tick(OrderId(TraderId('0'), OrderNumber(2)),
                       Price(63400, 'BTC'), Quantity(30, 'MC'),
                       Timeout(0.0), Timestamp(0.0), False)
     self.order_ask = Order(OrderId(TraderId('0'), OrderNumber(2)),
                            Price(63400, 'BTC'), Quantity(30, 'MC'),
                            Timeout(0.0), Timestamp(0.0), True)
     self.order_bid = Order(OrderId(TraderId('0'), OrderNumber(2)),
                            Price(63400, 'BTC'), Quantity(30, 'MC'),
                            Timeout(0.0), Timestamp(0.0), False)
Exemple #12
0
    def setUp(self):
        yield super(TickEntryTestSuite, self).setUp()

        # Object creation
        tick = Tick(OrderId(TraderId(b'0'), OrderNumber(1)),
                    AssetPair(AssetAmount(60, 'BTC'), AssetAmount(30, 'MB')),
                    Timeout(0), Timestamp(0.0), True)
        tick2 = Tick(
            OrderId(TraderId(b'0'), OrderNumber(2)),
            AssetPair(AssetAmount(63400, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(100), Timestamp.now(), True)

        self.price_level = PriceLevel(Price(100, 'MB', 'BTC'))
        self.tick_entry = TickEntry(tick, self.price_level)
        self.tick_entry2 = TickEntry(tick2, self.price_level)
Exemple #13
0
    def setUp(self):
        # Object creation
        tick = Tick(OrderId(TraderId('0'), OrderNumber(1)),
                    Price(63400, 'BTC'), Quantity(30, 'MC'),
                    Timeout(float("inf")), Timestamp(float("inf")), True)
        tick2 = Tick(OrderId(TraderId('0'), OrderNumber(2)), Price(30, 'MC'),
                     Quantity(30, 'BTC'), Timeout(float("inf")),
                     Timestamp(float("inf")), True)

        self.price_level = PriceLevel('MC')
        self.tick_entry1 = TickEntry(tick, self.price_level)
        self.tick_entry2 = TickEntry(tick, self.price_level)
        self.tick_entry3 = TickEntry(tick, self.price_level)
        self.tick_entry4 = TickEntry(tick, self.price_level)
        self.tick_entry5 = TickEntry(tick2, self.price_level)
    def test_add_remove_tick(self):
        """
        Test addition, retrieval and deletion of ticks in the database
        """
        ask = Tick.from_order(
            self.order1,
            MessageId(TraderId('0'), MessageNumber('message_number')))
        self.database.add_tick(ask)
        bid = Tick.from_order(
            self.order2,
            MessageId(TraderId('0'), MessageNumber('message_number')))
        self.database.add_tick(bid)

        self.assertEqual(len(self.database.get_ticks()), 2)

        self.database.delete_all_ticks()
        self.assertEqual(len(self.database.get_ticks()), 0)
Exemple #15
0
 def test_from_order_ask(self):
     # Test for from order
     ask = Tick.from_order(self.order_ask)
     self.assertIsInstance(ask, Ask)
     self.assertEqual(self.tick2.price, ask.price)
     self.assertEqual(self.tick2.quantity, ask.quantity)
     self.assertEqual(self.tick2.timestamp, ask.timestamp)
     self.assertEqual(self.tick2.order_id, ask.order_id)
Exemple #16
0
 def get_ticks(self):
     """
     Get all ticks present in the database.
     """
     return [
         Tick.from_database(db_tick)
         for db_tick in self.execute(u"SELECT * FROM ticks")
     ]
Exemple #17
0
 def test_from_order_bid(self):
     # Test for from order
     bid = Tick.from_order(self.order_bid)
     self.assertIsInstance(bid, Bid)
     self.assertEqual(self.tick2.price, bid.price)
     self.assertEqual(self.tick2.quantity, bid.quantity)
     self.assertEqual(self.tick2.timestamp, bid.timestamp)
     self.assertEqual(self.tick2.order_id, bid.order_id)
Exemple #18
0
 def test_from_order_bid(self):
     # Test for from order
     bid = Tick.from_order(self.order_bid)
     self.assertIsInstance(bid, Bid)
     self.assertEqual(self.tick2.price, bid.price)
     self.assertEqual(self.tick2.assets, bid.assets)
     self.assertEqual(self.tick2.timestamp, bid.timestamp)
     self.assertEqual(self.tick2.order_id, bid.order_id)
     self.assertEqual(self.tick2.traded, 0)
Exemple #19
0
 def test_from_order_ask(self):
     # Test for from order
     ask = Tick.from_order(self.order_ask)
     self.assertIsInstance(ask, Ask)
     self.assertEqual(self.tick2.price, ask.price)
     self.assertEqual(self.tick2.assets, ask.assets)
     self.assertEqual(self.tick2.timestamp, ask.timestamp)
     self.assertEqual(self.tick2.order_id, ask.order_id)
     self.assertEqual(self.tick2.traded, 0)
Exemple #20
0
 def test_from_order_ask(self):
     # Test for from order
     ask = Tick.from_order(
         self.order_ask,
         MessageId(TraderId('0'), MessageNumber('message_number')))
     self.assertIsInstance(ask, Ask)
     self.assertEqual(self.tick2.price, ask.price)
     self.assertEqual(self.tick2.quantity, ask.quantity)
     self.assertEqual(self.tick2.timestamp, ask.timestamp)
     self.assertEqual(self.tick2.order_id, ask.order_id)
     self.assertEqual(self.tick2.message_id, ask.message_id)
Exemple #21
0
 def test_from_order_bid(self):
     # Test for from order
     bid = Tick.from_order(
         self.order_bid,
         MessageId(TraderId('0'), MessageNumber('message_number')))
     self.assertIsInstance(bid, Bid)
     self.assertEqual(self.tick2.price, bid.price)
     self.assertEqual(self.tick2.quantity, bid.quantity)
     self.assertEqual(self.tick2.timestamp, bid.timestamp)
     self.assertEqual(self.tick2.order_id, bid.order_id)
     self.assertEqual(self.tick2.message_id, bid.message_id)
Exemple #22
0
class TickTestSuite(unittest.TestCase):
    """
    This class contains tests for the Tick object.
    """
    def setUp(self):
        # Object creation
        self.timestamp_now = Timestamp.now()
        self.tick = Tick(
            MessageId(TraderId('0'), MessageNumber('message_number')),
            OrderId(TraderId('0'), OrderNumber(1)), Price(63400, 'BTC'),
            Quantity(30, 'MC'), Timeout(30), self.timestamp_now, True, 'a',
            'b')
        self.tick2 = Tick(
            MessageId(TraderId('0'), MessageNumber('message_number')),
            OrderId(TraderId('0'), OrderNumber(2)), Price(63400, 'BTC'),
            Quantity(30, 'MC'), Timeout(0.0), Timestamp(0.0), False, 'a', 'b')
        self.order_ask = Order(OrderId(TraderId('0'), OrderNumber(2)),
                               Price(63400, 'BTC'), Quantity(30, 'MC'),
                               Timeout(0.0), Timestamp(0.0), True)
        self.order_bid = Order(OrderId(TraderId('0'), OrderNumber(2)),
                               Price(63400, 'BTC'), Quantity(30, 'MC'),
                               Timeout(0.0), Timestamp(0.0), False)

    def test_is_ask(self):
        # Test 'is ask' function
        self.assertTrue(self.tick.is_ask())
        self.assertFalse(self.tick2.is_ask())

    def test_is_valid(self):
        # Test for is valid
        self.assertTrue(self.tick.is_valid())
        self.assertFalse(self.tick2.is_valid())

    def test_signature(self):
        """
        Test signing a tick
        """
        eccrypto = ECCrypto()
        keypair = eccrypto.generate_key(u"curve25519")
        sign_member = MockObject()
        sign_member.public_key = eccrypto.key_to_bin(keypair.pub())
        sign_member.private_key = keypair
        self.tick.sign(sign_member)
        self.assertFalse(self.tick.has_valid_signature()
                         )  # Trader ID does not match public key

        self.tick._order_id = OrderId(
            TraderId(
                hashlib.sha1(sign_member.public_key).digest().encode('hex')),
            OrderNumber(1))
        self.assertTrue(self.tick.has_valid_signature())

        self.tick._signature = 'a' * 64
        self.assertFalse(self.tick.has_valid_signature())

    def test_update_timestamp(self):
        """
        Test the update_timestamp method of a Tick object
        """
        self.tick.update_timestamp()
        self.assertGreater(float(self.tick.timestamp),
                           float(self.timestamp_now))

    def test_to_network(self):
        # Test for to network
        self.assertEquals(
            (TraderId('0'), MessageNumber('message_number'), OrderNumber(1),
             Price(63400, 'BTC'), Quantity(
                 30, 'MC'), self.tick.timeout, self.tick.timestamp, 'a', 'b'),
            self.tick.to_network())

    def test_quantity_setter(self):
        # Test for quantity setter
        self.tick.quantity = Quantity(60, 'MC')
        self.assertEqual(Quantity(60, 'MC'), self.tick.quantity)

    def test_from_order_ask(self):
        # Test for from order
        ask = Tick.from_order(
            self.order_ask,
            MessageId(TraderId('0'), MessageNumber('message_number')))
        self.assertIsInstance(ask, Ask)
        self.assertEqual(self.tick2.price, ask.price)
        self.assertEqual(self.tick2.quantity, ask.quantity)
        self.assertEqual(self.tick2.timestamp, ask.timestamp)
        self.assertEqual(self.tick2.order_id, ask.order_id)
        self.assertEqual(self.tick2.message_id, ask.message_id)

    def test_from_order_bid(self):
        # Test for from order
        bid = Tick.from_order(
            self.order_bid,
            MessageId(TraderId('0'), MessageNumber('message_number')))
        self.assertIsInstance(bid, Bid)
        self.assertEqual(self.tick2.price, bid.price)
        self.assertEqual(self.tick2.quantity, bid.quantity)
        self.assertEqual(self.tick2.timestamp, bid.timestamp)
        self.assertEqual(self.tick2.order_id, bid.order_id)
        self.assertEqual(self.tick2.message_id, bid.message_id)

    def test_to_dictionary(self):
        """
        Test the to dictionary method of a tick
        """
        self.assertDictEqual(
            self.tick.to_dictionary(), {
                "trader_id": '0',
                "message_id": "0.message_number",
                "order_number": 1,
                "price": 63400.0,
                "price_type": "BTC",
                "quantity": 30.0,
                "quantity_type": "MC",
                "timeout": 30.0,
                "timestamp": float(self.timestamp_now),
            })
Exemple #23
0
 def get_ticks(self):
     """
     Get all ticks present in the database.
     """
     return [Tick.from_database(db_tick) for db_tick in self.execute(u"SELECT * FROM ticks")]
Exemple #24
0
class TickTestSuite(unittest.TestCase):
    """
    This class contains tests for the Tick object.
    """
    def setUp(self):
        # Object creation
        self.timestamp_now = Timestamp.now()
        self.tick = Tick(OrderId(TraderId('0'), OrderNumber(1)),
                         Price(63400, 'BTC'), Quantity(30, 'MC'), Timeout(30),
                         self.timestamp_now, True)
        self.tick2 = Tick(OrderId(TraderId('0'), OrderNumber(2)),
                          Price(63400, 'BTC'), Quantity(30, 'MC'),
                          Timeout(0.0), Timestamp(0.0), False)
        self.order_ask = Order(OrderId(TraderId('0'), OrderNumber(2)),
                               Price(63400, 'BTC'), Quantity(30, 'MC'),
                               Timeout(0.0), Timestamp(0.0), True)
        self.order_bid = Order(OrderId(TraderId('0'), OrderNumber(2)),
                               Price(63400, 'BTC'), Quantity(30, 'MC'),
                               Timeout(0.0), Timestamp(0.0), False)

    def test_is_ask(self):
        # Test 'is ask' function
        self.assertTrue(self.tick.is_ask())
        self.assertFalse(self.tick2.is_ask())

    def test_to_network(self):
        # Test for to network
        self.assertEquals(
            (MessageId(TraderId('0'), MessageNumber(1)), self.tick.timestamp,
             OrderNumber(1), Price(63400, 'BTC'), Quantity(
                 30, 'MC'), self.tick.timeout),
            self.tick.to_network(MessageId(TraderId('0'), MessageNumber(1))))

    def test_quantity_setter(self):
        # Test for quantity setter
        self.tick.quantity = Quantity(60, 'MC')
        self.assertEqual(Quantity(60, 'MC'), self.tick.quantity)

    def test_from_order_ask(self):
        # Test for from order
        ask = Tick.from_order(self.order_ask)
        self.assertIsInstance(ask, Ask)
        self.assertEqual(self.tick2.price, ask.price)
        self.assertEqual(self.tick2.quantity, ask.quantity)
        self.assertEqual(self.tick2.timestamp, ask.timestamp)
        self.assertEqual(self.tick2.order_id, ask.order_id)

    def test_from_order_bid(self):
        # Test for from order
        bid = Tick.from_order(self.order_bid)
        self.assertIsInstance(bid, Bid)
        self.assertEqual(self.tick2.price, bid.price)
        self.assertEqual(self.tick2.quantity, bid.quantity)
        self.assertEqual(self.tick2.timestamp, bid.timestamp)
        self.assertEqual(self.tick2.order_id, bid.order_id)

    def test_to_dictionary(self):
        """
        Test the to dictionary method of a tick
        """
        self.assertDictEqual(
            self.tick.to_dictionary(), {
                "trader_id": '0',
                "order_number": 1,
                "price": 63400.0,
                "price_type": "BTC",
                "quantity": 30.0,
                "quantity_type": "MC",
                "timeout": 30.0,
                "timestamp": float(self.timestamp_now),
                "block_hash": ('0' * 32).encode('hex')
            })
Exemple #25
0
class TickTestSuite(unittest.TestCase):
    """
    This class contains tests for the Tick object.
    """
    def setUp(self):
        # Object creation
        self.timestamp_now = Timestamp.now()
        self.tick = Tick(
            OrderId(TraderId('0'), OrderNumber(1)),
            AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(30), Timestamp(0.0), True)
        self.tick2 = Tick(
            OrderId(TraderId('0'), OrderNumber(2)),
            AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(0), Timestamp(0.0), False)
        self.order_ask = Order(
            OrderId(TraderId('0'), OrderNumber(2)),
            AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(0), Timestamp(0.0), True)
        self.order_bid = Order(
            OrderId(TraderId('0'), OrderNumber(2)),
            AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
            Timeout(0), Timestamp(0.0), False)

    def test_is_ask(self):
        # Test 'is ask' function
        self.assertTrue(self.tick.is_ask())
        self.assertFalse(self.tick2.is_ask())

    def test_to_network(self):
        # Test for to network
        self.assertEquals(
            (TraderId('0'), self.tick.timestamp, OrderNumber(1),
             AssetPair(AssetAmount(30, 'BTC'), AssetAmount(
                 30, 'MB')), self.tick.timeout, 0), self.tick.to_network())

    def test_traded_setter(self):
        # Test for traded setter
        self.tick.traded = 10
        self.assertEqual(10, self.tick.traded)

    def test_from_order_ask(self):
        # Test for from order
        ask = Tick.from_order(self.order_ask)
        self.assertIsInstance(ask, Ask)
        self.assertEqual(self.tick2.price, ask.price)
        self.assertEqual(self.tick2.assets, ask.assets)
        self.assertEqual(self.tick2.timestamp, ask.timestamp)
        self.assertEqual(self.tick2.order_id, ask.order_id)
        self.assertEqual(self.tick2.traded, 0)

    def test_from_order_bid(self):
        # Test for from order
        bid = Tick.from_order(self.order_bid)
        self.assertIsInstance(bid, Bid)
        self.assertEqual(self.tick2.price, bid.price)
        self.assertEqual(self.tick2.assets, bid.assets)
        self.assertEqual(self.tick2.timestamp, bid.timestamp)
        self.assertEqual(self.tick2.order_id, bid.order_id)
        self.assertEqual(self.tick2.traded, 0)

    def test_to_dictionary(self):
        """
        Test the to dictionary method of a tick
        """
        self.assertDictEqual(
            self.tick.to_dictionary(), {
                "trader_id": '0',
                "order_number": 1,
                "assets": self.tick.assets.to_dictionary(),
                "timeout": 30,
                "timestamp": 0.0,
                "traded": 0,
                "block_hash": ('0' * 32).encode('hex')
            })
Exemple #26
0
class TickTestSuite(unittest.TestCase):
    """
    This class contains tests for the Tick object.
    """

    def setUp(self):
        # Object creation
        self.timestamp_now = Timestamp.now()
        self.tick = Tick(OrderId(TraderId('0'), OrderNumber(1)),
                         AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(30), Timestamp(0.0), True)
        self.tick2 = Tick(OrderId(TraderId('0'), OrderNumber(2)),
                          AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), Timeout(0), Timestamp(0.0), False)
        self.order_ask = Order(OrderId(TraderId('0'), OrderNumber(2)),
                               AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
                               Timeout(0), Timestamp(0.0), True)
        self.order_bid = Order(OrderId(TraderId('0'), OrderNumber(2)),
                               AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')),
                               Timeout(0), Timestamp(0.0), False)

    def test_is_ask(self):
        # Test 'is ask' function
        self.assertTrue(self.tick.is_ask())
        self.assertFalse(self.tick2.is_ask())

    def test_to_network(self):
        # Test for to network
        self.assertEquals((TraderId('0'), self.tick.timestamp, OrderNumber(1),
                           AssetPair(AssetAmount(30, 'BTC'), AssetAmount(30, 'MB')), self.tick.timeout, 0),
                          self.tick.to_network())

    def test_traded_setter(self):
        # Test for traded setter
        self.tick.traded = 10
        self.assertEqual(10, self.tick.traded)

    def test_from_order_ask(self):
        # Test for from order
        ask = Tick.from_order(self.order_ask)
        self.assertIsInstance(ask, Ask)
        self.assertEqual(self.tick2.price, ask.price)
        self.assertEqual(self.tick2.assets, ask.assets)
        self.assertEqual(self.tick2.timestamp, ask.timestamp)
        self.assertEqual(self.tick2.order_id, ask.order_id)
        self.assertEqual(self.tick2.traded, 0)

    def test_from_order_bid(self):
        # Test for from order
        bid = Tick.from_order(self.order_bid)
        self.assertIsInstance(bid, Bid)
        self.assertEqual(self.tick2.price, bid.price)
        self.assertEqual(self.tick2.assets, bid.assets)
        self.assertEqual(self.tick2.timestamp, bid.timestamp)
        self.assertEqual(self.tick2.order_id, bid.order_id)
        self.assertEqual(self.tick2.traded, 0)

    def test_to_dictionary(self):
        """
        Test the to dictionary method of a tick
        """
        self.assertDictEqual(self.tick.to_dictionary(), {
            "trader_id": '0',
            "order_number": 1,
            "assets": self.tick.assets.to_dictionary(),
            "timeout": 30,
            "timestamp": 0.0,
            "traded": 0,
            "block_hash": ('0' * 32).encode('hex')
        })