def testFindWithPredicate(self): lst = [{'y': 1}, {'y': 2}, {'y': 3}] self.assertEqual({'y': 2}, find(lst, 2, lambda d: d['y'])) strings = ['alma', ' banan ', 'citrom'] to_find = 'banan' self.assertEqual( ' banan ', find(strings, to_find, lambda d: findTest.stripp(d)))
def testFindListOfItems(self): class X: def __init__(self, name): self.name = name alma = X('alma') citrom = X('citrom') lst = [alma, X('banan'), citrom, X('dinnye')] items = ['alma', 'citrom'] self.assertEqual([alma, citrom], find(lst, items, lambda i: i.name)) self.assertEqual([], find(lst, ['meggy'], lambda i: i.name))
def testFind(self): numbers = [1, 2, 3] to_find = 2 not_in_list = 4 self.assertEqual(to_find, find(numbers, to_find)) self.assertIsNone(find(numbers, not_in_list)) strings = ['alma', 'banan', 'citrom'] to_find = 'banan' not_in_list = 'dio' self.assertEqual(to_find, find(strings, to_find)) self.assertIsNone(find(strings, not_in_list))
def testOptionalDefaults(self): class device(object): def __init__(self, name): self.name = name def __cmp__(self, other): return cmp(self.name, other.name) d1 = device('a') d2 = device('b') d3 = device('c') devices = [d1, d2, d3] to_find = device('f') self.assertEqual( 'dummy', find(devices, to_find, default=optional({'name': 'dummy'})).name) x = find(devices, to_find, default=optional({'alma': []})) self.assertEqual(x['alma'], []) self.assertEqual(x['banan'], None)
def testFindWithNoItem(self): lst = [1, 2, 3] self.assertEqual(2, find(lst, predicate=lambda x: x % 2 == 0)) strings = ['alma', 'banan', 'citrom'] self.assertEqual( 'citrom', find(strings, predicate=lambda s: len(s) == 6)) class person(object): def __init__(self, device): self.device = device def has_device(self, device): return self.device == device p1 = person('telefon') p2 = person('tablet') persons = [p1, p2] self.assertEqual( p1, find(persons, predicate=lambda p: p.has_device('telefon')))