Example #1
0
    def test_getRatio_edgeCases(self):
        quote1 = {
            'top_ask': {
                'price': 0,
                'size': 36
            },
            'timestamp': '2019-02-11 22:06:30.572453',
            'top_bid': {
                'price': 120.48,
                'size': 109
            },
            'id': '0.109974697771',
            'stock': 'ABC'
        }
        self.assertIsNone(
            getRatio(quote1['top_bid']['price'], quote1['top_ask']['price']))

        quote2 = {
            'top_ask': {
                'price': 121.2,
                'size': 36
            },
            'timestamp': '2019-02-11 22:06:30.572453',
            'top_bid': {
                'price': 0,
                'size': 109
            },
            'id': '0.109974697771',
            'stock': 'ABC'
        }
        self.assertEqual(
            getRatio(quote2['top_bid']['price'], quote2['top_ask']['price']),
            0)
 def test_div_zero_values(self):
     quotes = [{
         'top_ask': {
             'price': 10.5,
             'size': 36
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 10.4,
             'size': 109
         },
         'id': '0.109974697771',
         'stock': 'ABC'
     }, {
         'top_ask': {
             'price': 0,
             'size': 4
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 0,
             'size': 81
         },
         'id': '0.109974697771',
         'stock': 'DEF'
     }]
     # ------------ Add the assertion below ------------
     self.assertEqual(
         getRatio(getDataPoint(quotes[0])[-1],
                  getDataPoint(quotes[1])[-1]), 0)
Example #3
0
 def test_getDataPoint_calculatePriceBidGreaterThanAsk(self):
     quotes = [{
         'top_ask': {
             'price': 119.2,
             'size': 36
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 120.48,
             'size': 109
         },
         'id': '0.109974697771',
         'stock': 'ABC'
     }, {
         'top_ask': {
             'price': 121.68,
             'size': 4
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 117.87,
             'size': 81
         },
         'id': '0.109974697771',
         'stock': 'DEF'
     }]
     prices = {}
     for quote in quotes:
         stock, bid_price, ask_price, price = getDataPoint(quote)
         prices[stock] = price
     self.assertEqual(getRatio(prices['ABC'], prices['DEF']),
                      prices['ABC'] / prices['DEF'])
     #self.assertEqual(getRatio((quote['top_ask']['price']['ABC']+quote['top_bid']['price'])/2,quote['price']), (quote['stock'],quote['top_bid']['price'],quote['top_ask']['price'],(quote['top_bid']['price']+quote['top_ask']['price'])/2))
     """ ------------ Add the assertion below ------------ """
Example #4
0
 def test_getRatio_calculateRatio(self):
     quotes = [{
         'top_ask': {
             'price': 121.2,
             'size': 36
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 122.48,
             'size': 109
         },
         'id': '0.109974697771',
         'stock': 'ABC'
     }, {
         'top_ask': {
             'price': 121.68,
             'size': 4
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 135.87,
             'size': 81
         },
         'id': '0.109974697771',
         'stock': 'DEF'
     }]
     a = quotes[0]['top_bid']['price']
     b = quotes[1]['top_bid']['price']
     self.assertEqual(getRatio(a, b), a / b)
Example #5
0
 def test_getRatio_calculateRatio(self):
     quotes = [{
         'top_ask': {
             'price': 121.2,
             'size': 36
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 120.48,
             'size': 109
         },
         'id': '0.109974697771',
         'stock': 'ABC'
     }, {
         'top_ask': {
             'price': 121.68,
             'size': 4
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 117.87,
             'size': 81
         },
         'id': '0.109974697771',
         'stock': 'DEF'
     }]
     stock1, bid_price1, ask_price1, price1 = getDataPoint(quotes[0])
     stock2, bid_price2, ask_price2, price2 = getDataPoint(quotes[1])
     self.assertEqual(getRatio(price1, price2), 1.008891671884784)
Example #6
0
 def test_getRatio_calculateRatio(self):
     quotes = [{
         'price ABC': 121.2,
         'price DEF': 121.68
     }, {
         'price ABC': 0,
         'price DEF': 121.68
     }, {
         'price ABC': 121.2,
         'price DEF': 0
     }]
     """ ------------ Add the assertion below ------------ """
     for quote in quotes:
         if quote['price DEF'] == 0:
             return "N/A"
         self.assertEqual(getRatio(quote['price ABC'], quote['price DEF']),
                          quote['price ABC'] / quote['price DEF'])
Example #7
0
 def test_getRatio(self):
     quotes = [{
         'top_ask': {
             'price': 121.2,
             'size': 36
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 120.48,
             'size': 109
         },
         'id': '0.109974697771',
         'stock': 'ABC'
     }, {
         'top_ask': {
             'price': 121.68,
             'size': 4
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 117.87,
             'size': 81
         },
         'id': '0.109974697771',
         'stock': 'DEF'
     }, {
         'top_ask': {
             'price': 119.2,
             'size': 36
         },
         'timestamp': '2019-02-11 22:06:30.572453',
         'top_bid': {
             'price': 120.48,
             'size': 109
         },
         'id': '0.109974697771',
         'stock': 'ABC'
     }]
     for quote in quotes:
         self.assertEqual(
             getRatio(quote['top_bid']['price'], quote['top_ask']['price']),
             quote['top_bid']['price'] / quote['top_ask']['price'])
 def test_getRatio_computeRatioPriceAZero(self):
     # fake data
     prices = [{
         'A': 0,
         'B': 5.00
     }, {
         'A': 0,
         'B': 3.00
     }, {
         'A': 0,
         'B': 7.34
     }, {
         'A': 0,
         'B': 98.75
     }, {
         'A': 0,
         'B': 53.64
     }]
     # assertion to test method
     for price in prices:
         self.assertEqual(getRatio(price['A'], price['B']), 0)
 def test_getRatio_computeRatioPriceBZero(self):
     # fake data
     prices = [{
         'A': 2.00,
         'B': 0
     }, {
         'A': 7.00,
         'B': 0
     }, {
         'A': 9.34,
         'B': 0
     }, {
         'A': 25.76,
         'B': 0
     }, {
         'A': 105.24,
         'B': 0
     }]
     # assertion to test method
     for price in prices:
         self.assertEqual(getRatio(price['A'], price['B']), None)
class ClientTest(unittest.TestCase):
  def test_getDataPoint_calculatePrice(self):
    quotes = [
      {'top_ask': {'price': 121.2, 'size': 36}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 120.48, 'size': 109}, 'id': '0.109974697771', 'stock': 'ABC'},
      {'top_ask': {'price': 121.68, 'size': 4}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 117.87, 'size': 81}, 'id': '0.109974697771', 'stock': 'DEF'}
    ]
    """ ------------ Add the assertion below ------------ """
    for quote in quotes:
      self.assertEqual(getDataPoint(quote), (quote['stock'], quote['top_bid']['price'], quote['top_ask']['price'], (quote['top_bid']['price'] + quote['top_ask']['price'])/2))

  def test_getDataPoint_calculatePriceBidGreaterThanAsk(self):
    quotes = [
      {'top_ask': {'price': 119.2, 'size': 36}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 120.48, 'size': 109}, 'id': '0.109974697771', 'stock': 'ABC'},
      {'top_ask': {'price': 121.68, 'size': 4}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 117.87, 'size': 81}, 'id': '0.109974697771', 'stock': 'DEF'}
    ]
    """ ------------ Add the assertion below ------------ """
    for quote in quotes:
      self.assertEqual(getDataPoint(quote), (quote['stock'], quote['top_bid']['price'], quote['top_ask']['price'], (quote['top_bid']['price'] + quote['top_ask']['price'])/2))

  """ ------------ Add more unit tests ------------ """
  for price in prices:
    self.assertEqual(getRatio(price_a, price_b))
 def test_getRatio_computeRatio(self):
     # fake data
     prices = [{
         'A': 2.00,
         'B': 5.00
     }, {
         'A': 7.00,
         'B': 3.00
     }, {
         'A': 9.34,
         'B': 7.34
     }, {
         'A': 25.76,
         'B': 98.75
     }, {
         'A': 105.24,
         'B': 53.64
     }]
     # assertion to test method
     for price in prices:
         self.assertEqual(getRatio(price['A'], price['B']),
                          (price['A'] / price['B']))
Example #12
0
    def test_getRatio_calcuateRatio(self):
        quotes = [{
            'top_ask': {
                'price': 121.2,
                'size': 36
            },
            'timestamp': '2019-02-11 22:06:30.572453',
            'top_bid': {
                'price': 120.48,
                'size': 109
            },
            'id': '0.109974697771',
            'stock': 'ABC'
        }, {
            'top_ask': {
                'price': 121.68,
                'size': 4
            },
            'timestamp': '2019-02-11 22:06:30.572453',
            'top_bid': {
                'price': 117.87,
                'size': 81
            },
            'id': '0.109974697771',
            'stock': 'DEF'
        }]
        ratio = (
            (quotes[0]['top_bid']['price'] + quotes[0]['top_ask']['price']) / 2
        ) / ((quotes[1]['top_bid']['price'] + quotes[1]['top_ask']['price']) /
             2)

        prices = {}
        for quote in quotes:
            stock, _, _, price = getDataPoint(quote)
            prices[stock] = price

        self.assertEqual(getRatio(prices['ABC'], prices['DEF']), ratio)
 def test_getRatio_LessThan1(self):
     price_a = 166.39
     price_b = 356.48
     self.assertLess(getRatio(price_a, price_b), 1)
Example #14
0
 def test_getRatio_calculatePriceRatioPriceEqualZero(self):
     price_a = 119
     price_b = 0
     ratio = None
     self.assertEqual(getRatio(price_a, price_b), ratio)
 def test_getRatio_when_price_a_is_zero(self):
     price_a = 0
     price_b = 5
     self.assertEqual(getRatio(price_a, price_b), 0)
Example #16
0
 def test_getRatio_NumeratorLessThanDenominator(self):
     price_a = 119.2
     price_b = 121.68
     self.assertLess(getRatio(price_a, price_b), 1)
Example #17
0
 def test_getRatio_calculatePriceRatio(self):
     price_a = 119
     price_b = 120
     ratio = price_a / price_b
     self.assertEqual(getRatio(price_a, price_b), ratio)
Example #18
0
 def test_getRatio_ZeroAsResult(self):
     price_a = 0
     price_b = 121.68
     self.assertEqual(getRatio(price_a, price_b), 0)
Example #19
0
 def test_getRatio_OneAsResult(self):
     price_a = 121.68
     price_b = 121.68
     self.assertEqual(getRatio(price_a, price_b), 1)
Example #20
0
 def test_getRatio_WithNonZeroDenominator(self):
     price_a = 121.68
     price_b = 119.2
     self.assertEqual(getRatio(price_a, price_b), (price_a / price_b))
Example #21
0
 def test_getRatio_WithZeroDenominator(self):
     price_a = 121.68
     price_b = 0
     self.assertEqual(getRatio(price_a, price_b), None)
 def test_getRatio_priceBZero(self):
    price_a = 121.2
    price_b = 0
    self.assertIsNone(getRatio(price_a, price_b))
 def test_getRatio_priceAZero(self):
    price_a = 0
    price_b = 121.68
    self.assertEqual(getRatio(price_a, price_b), 0)
 def test_getRatio_when_price_b_is_zero(self):
     price_a = 5
     price_b = 0
     self.assertEqual(getRatio(price_a, price_b), None)

  def test_getDataPoint_calculatePriceBidGreaterThanAsk(self):
    quotes = [
      {'top_ask': {'price': 119.2, 'size': 36}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 120.48, 'size': 109}, 'id': '0.109974697771', 'stock': 'ABC'},
      {'top_ask': {'price': 121.68, 'size': 4}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 117.87, 'size': 81}, 'id': '0.109974697771', 'stock': 'DEF'}
    ]
    
    """ ------------ Add the assertion below ------------ """
    for quote in quotes:
      self.assertEqual(getDataPoint(quote), (quote['stock'], quote['top_bid']['price'], quote['top_ask']['price'], (quote['top_ask']['price']+quote['top_bid']['price'])/2))

""" ------------ Add more unit tests ------------ """

def test_getRatio_calculatePriceBidGreaterThanAsk(self):
    quotes = [
      {'top_ask': {'price': 119.2, 'size': 36}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 120.48, 'size': 109}, 'id': '0.109974697771', 'stock': 'ABC'},
      {'top_ask': {'price': 121.68, 'size': 4}, 'timestamp': '2019-02-11 22:06:30.572453', 'top_bid': {'price': 117.87, 'size': 81}, 'id': '0.109974697771', 'stock': 'DEF'}
]
""" ------------ Add more assertion below ------------ """

prices = {}
    for q in quotes:
      stock, bid_price, ask_price, price = getDataPoint(q)
      prices[stock] = price
    self.assertEqual(getRatio(prices['ABC'], prices['DEF']), (prices['ABC']/prices['DEF']))


if __name__ == '__main__':
    unittest.main()
 def test_value_ActualResult_Equals_ExpectedResults(self):
     quotes = [{'price_a': 10.8, 'price_b': 5.7}]
     for q in quotes:
         self.assertEqual(getRatio(q['price_a'], q['price_b']),
                          1.8947368421052633)
 def test_getRatio_greaterThan1(self):
     price_a = 346.48
     price_b = 166.39
     self.assertGreater(getRatio(price_a, price_b), 1)
 def test_Negative_ValueResult(self):
     quotes = [{'price_a': -10.8, 'price_b': 5.7}]
     for q in quotes:
         self.assertEqual(getRatio(q['price_a'], q['price_b']),
                          -1.8947368421052633)
Example #29
0
 def test_getRatio_checkIfPrice_aORPrice_bEqualZero(self):
     self.assertEqual(getRatio(0, 1), None)
     self.assertEqual(getRatio(1, 0), None)
     self.assertEqual(getRatio(0, 0), None)
 def test_getRatio_exactlyOne(self):
     price_a = 356.48
     price_b = 356.48
     self.assertEqual(getRatio(price_a, price_b), 1)