Exemple #1
0
    def test_add_insufficient_funds(self):
        actual_book = Book(self.sample_name, self.sample_participants)

        test_order = Order(1, self.sample_participants[0], self.sample_name,
                "BID", 1000.00, 800)

        with self.assertRaises(InsufficientFundsError):
            actual_book.add(test_order)
Exemple #2
0
    def test_add_cross(self):
        actual_book = Book(self.sample_name, self.sample_participants)

        test_orders = [Order(1, self.sample_participants[0], self.sample_name,
            "BID", 22.00, 3),
            Order(2, self.sample_participants[1], self.sample_name,
                "ASK", 20.00, 3)]

        # add order to book
        for order in test_orders:
            actual_book.add(order)

        # expected Side objects
        expected_bids = Side("BID")
        expected_asks = Side("ASK")

        self.assertFalse(actual_book.crossed())
        self.assertEqual(actual_book.LTP, test_orders[0].price)
        self.assertEqual(actual_book.bids, expected_bids)
        self.assertEqual(actual_book.asks, expected_asks)
Exemple #3
0
    def test_add_no_cross(self):
        actual_book = Book(self.sample_name, self.sample_participants)

        test_orders = [Order(1, self.sample_participants[0], self.sample_name,
            "BID", 22.00, 3),
            Order(2, self.sample_participants[1], self.sample_name,
                "ASK", 100.00, 2)]

        # add order to book
        for order in test_orders:
            actual_book.add(order)

        expected_bids = Side("BID")
        expected_bids.put(test_orders[0])

        expected_asks = Side("ASK")
        expected_asks.put(test_orders[1])

        self.assertFalse(actual_book.crossed())
        self.assertEqual(actual_book.LTP, 0)
        self.assertEqual(actual_book.bids, expected_bids)
        self.assertEqual(actual_book.asks, expected_asks)
Exemple #4
0
    def test_add_normal(self):
        actual_book = Book(self.sample_name, self.sample_participants)

        test_order = Order(1, self.sample_participants[0], self.sample_name,
                "BID", 12.00, 150)

        actual_book.add(test_order)

        expected_bids = Side("BID")
        expected_bids.put(test_order)

        expected_asks = Side("ASK")

        self.assertEqual(actual_book.bids, expected_bids)
        self.assertEqual(actual_book.asks, expected_asks)
        self.assertEqual(actual_book.LTP, 0)
Exemple #5
0
    def test___eq___not_equal(self):
        order_a = Order(1, self.blank_participant, "WOW", "BID", 1.23, 100)
        order_b = Order(2, self.blank_participant, "MSFT", "ASK", 5.44, 20)

        self.assertNotEqual(order_a, order_b)
Exemple #6
0
    def test___eq___equal(self):
        order_a = Order(1, self.blank_participant, "WOW", "BID", 0.04, 250)
        order_b = Order(1, self.blank_participant, "WOW", "BID", 0.04, 250)

        self.assertEqual(order_a, order_b)
Exemple #7
0
 def test___init___negative_quantity(self):
     with self.assertRaises(ValueError):
         actual_order = Order(0, self.blank_participant, "", "", 0.01, -1)
Exemple #8
0
 def test___init___negative_price(self):
     with self.assertRaises(ValueError):
         actual_order = Order(0, self.blank_participant, "", "", -1.00, 1)
Exemple #9
0
 def test___init___normal(self):
     actual_order = Order(0, self.blank_participant, "", "", 0.01, 1)
     expected_order = Order(0, self.blank_participant, "", "", 0.01, 1)
     
     self.assertEqual(actual_order, expected_order)