def test_find_one(self): c3, c4 = map(Currency, ('c3', 'c4')) m1, m2 = SimpleMarket(c1, c2), SimpleMarket(c2, c3) ml = MarketList([m1, m2]) self.assertEqual(ml.find_one(c1), m1) #two results self.assertRaises(IndexError, lambda: ml.find_one(c2)) self.assertEqual(ml.find_one(c3), m2) #zero results self.assertRaises(IndexError, lambda: ml.find_one(c4))
def test_find_by_exchange(self): e1, e2 = SimpleExchange("E1"), SimpleExchange("e2") c3 = Currency('c3') m1, m2 = SimpleMarket(c1, c2, e1), SimpleMarket(c1, c2, e2) ml = MarketList([m1, m2]) #simple find self.assertItemsEqual(ml.find(exchange="E1"), (m1, )) #simple 2 self.assertItemsEqual(ml.find(exchange="E2"), (m2, )) #lower case self.assertItemsEqual(ml.find(exchange="e1"), (m1, )) #with currency, 1 result self.assertItemsEqual(ml.find(c1, exchange="E1"), (m1, )) #with currency, 0 results self.assertItemsEqual(ml.find(c3, exchange="E1"), ())
def test_find_by_exchange(self): e1, e2 = SimpleExchange("E1"), SimpleExchange("e2") c3 = Currency('c3') m1, m2= SimpleMarket(c1, c2, e1), SimpleMarket(c1, c2, e2) ml = MarketList([m1, m2]) #simple find self.assertItemsEqual(ml.find(exchange="E1"), (m1,)) #simple 2 self.assertItemsEqual(ml.find(exchange="E2"), (m2,)) #lower case self.assertItemsEqual(ml.find(exchange="e1"), (m1,)) #with currency, 1 result self.assertItemsEqual(ml.find(c1, exchange="E1"), (m1,)) #with currency, 0 results self.assertItemsEqual(ml.find(c3, exchange="E1"), ())
def test_find_double(self): c3, c4 = (Currency(c) for c in ('c3', 'c4')) market_currencies = (c1, c2, c3, c4) # each market has a successive pair of currencies m1, m2, m3 = (SimpleMarket(cx1, cx2) for cx1, cx2 in zip(market_currencies[:-1], market_currencies[1:])) # ---- empty ml = MarketList([]) self.assertItemsEqual(ml.find(c1).find(c1), []) self.assertItemsEqual(ml.find(c1).find(c2), []) # ---- one element ml = MarketList([m1]) self.assertItemsEqual(ml.find(c1).find(c1), [m1]) self.assertItemsEqual(ml.find(c1).find(c2), [m1]) self.assertItemsEqual(ml.find(c2).find(c1), [m1]) self.assertItemsEqual(ml.find(c1, c2).find(c2, c1), [m1]) self.assertItemsEqual(ml.find(c1).find(c3), []) self.assertItemsEqual(ml.find(c3).find(c1), []) # ---- many elements ml = MarketList([m1, m2, m3]) self.assertItemsEqual(ml.find(c1).find(c1), [m1]) self.assertItemsEqual(ml.find(c1).find(c2), [m1]) self.assertItemsEqual(ml.find(c2).find(c2), [m1, m2]) self.assertItemsEqual(ml.find(c2).find(c1), [m1]) self.assertItemsEqual(ml.find(c2).find(c2), [m1, m2]) self.assertItemsEqual(ml.find(c2).find(c3), [m2]) self.assertItemsEqual(ml.find(c3).find(c3), [m2, m3]) self.assertItemsEqual(ml.find(c3).find(c2), [m2])
def test_find_double(self): c3, c4 = (Currency(c) for c in ('c3', 'c4')) market_currencies = (c1, c2, c3, c4) # each market has a successive pair of currencies m1, m2, m3 = ( SimpleMarket(cx1, cx2) for cx1, cx2 in zip(market_currencies[:-1], market_currencies[1:])) # ---- empty ml = MarketList([]) self.assertItemsEqual(ml.find(c1).find(c1), []) self.assertItemsEqual(ml.find(c1).find(c2), []) # ---- one element ml = MarketList([m1]) self.assertItemsEqual(ml.find(c1).find(c1), [m1]) self.assertItemsEqual(ml.find(c1).find(c2), [m1]) self.assertItemsEqual(ml.find(c2).find(c1), [m1]) self.assertItemsEqual(ml.find(c1, c2).find(c2, c1), [m1]) self.assertItemsEqual(ml.find(c1).find(c3), []) self.assertItemsEqual(ml.find(c3).find(c1), []) # ---- many elements ml = MarketList([m1, m2, m3]) self.assertItemsEqual(ml.find(c1).find(c1), [m1]) self.assertItemsEqual(ml.find(c1).find(c2), [m1]) self.assertItemsEqual(ml.find(c2).find(c2), [m1, m2]) self.assertItemsEqual(ml.find(c2).find(c1), [m1]) self.assertItemsEqual(ml.find(c2).find(c2), [m1, m2]) self.assertItemsEqual(ml.find(c2).find(c3), [m2]) self.assertItemsEqual(ml.find(c3).find(c3), [m2, m3]) self.assertItemsEqual(ml.find(c3).find(c2), [m2])
def __init__(self, name="SimpleExchange"): Exchange.__init__(self, name, MarketList([]))
def test_create(self): ml = MarketList([]) self.assertIsInstance(ml, MarketList)
def test_str(self): ml = MarketList([m]) self.assertIsInstance(str(ml), types.StringType)