def test_range(self): e = linqy.range(3) self.assertTrue(isinstance(e, linqy.Enumerable)) self.assertEqual(list(e), [0,1,2]) e = linqy.range(3, 6) self.assertTrue(isinstance(e, linqy.Enumerable)) self.assertEqual(list(e), [3,4,5]) e = linqy.range(1, 6, 2) self.assertTrue(isinstance(e, linqy.Enumerable)) self.assertEqual(list(e), [1,3,5])
def test_single_pred_default(self): self.assertEqual(linqy.range(10).single(lambda x: x == 5, default=100), 5) self.assertRaises(LookupError, lambda: linqy.range(10).single(lambda x: x > 5, default=100)) self.assertEqual(linqy.range(10).single(lambda x: x > 100, default=100), 100)
def test_single_pred(self): self.assertEqual(linqy.range(10).single(lambda x: x == 5), 5) self.assertRaises(LookupError, lambda: linqy.range(10).single(lambda x: x > 5)) self.assertRaises(LookupError, lambda: linqy.range(10).single(lambda x: x > 100))
def test_where(self): e = linqy.range(50,100).where(lambda x: not x % 10) self.assertEqual(list(e), [50,60,70,80,90]) e = linqy.range(50,100).where(lambda x, i: i < 5) self.assertEqual(list(e), [50,51,52,53,54])
def test_thenbydesc(self): seq = self.make_data() a,b,c,d,e = seq enum = linqy.make(seq).orderby(lambda x: x['name']).thenbydesc(lambda x: x['price']) self.assertEqual(list(enum), [c,a,d,b,e]) self.assertRaises(AttributeError, lambda: linqy.range(10).thenbydesc(lambda x: x))