Exemple #1
0
 def inner(*args, **kargs):
     a = d.get(hash((args, kargs)))
     if a is None:
         a = d[hash((args, kargs))] = []
     yield from a
     for x in drop(len(a), f(*args, **kargs)):
         a.append(x)
         yield x
Exemple #2
0
    def test_fib_infinite_stream(self):
        from operator import add 

        f = Stream()
        fib = f << [0, 1] << iters.map(add, f, iters.drop(1, f))

        self.assertEqual([0,1,1,2,3,5,8,13,21,34], list(iters.take(10, fib)))
        self.assertEqual(6765, fib[20])
        self.assertEqual([832040,1346269,2178309,3524578,5702887], fib[30:35])
Exemple #3
0
    def test_fib_infinite_stream(self):
        from operator import add 

        f = Stream()
        fib = f << [0, 1] << iters.map(add, f, iters.drop(1, f))

        self.assertEqual([0,1,1,2,3,5,8,13,21,34], list(iters.take(10, fib)))
        self.assertEqual(6765, fib[20])
        self.assertEqual([832040,1346269,2178309,3524578,5702887], list(fib[30:35]))
        # 35 elements should be already evaluated
        self.assertEqual(fib.cursor(), 35)
Exemple #4
0
    def test_fib_infinite_stream(self):
        from operator import add

        f = Stream()
        fib = f << [0, 1] << iters.map(add, f, iters.drop(1, f))

        self.assertEqual([0,1,1,2,3,5,8,13,21,34], list(iters.take(10, fib)))
        self.assertEqual(6765, fib[20])
        self.assertEqual([832040,1346269,2178309,3524578,5702887], list(fib[30:35]))
        # 35 elements should be already evaluated
        self.assertEqual(fib.cursor(), 35)
Exemple #5
0
 def test_drop(self):
     self.assertEqual([3, 4], list(iters.drop(3, range(5))))
     self.assertEqual([], list(iters.drop(10, range(2))))
Exemple #6
0
 def test_drop(self):
     self.assertEqual([3,4], list(iters.drop(3, range(5))))
     self.assertEqual([], list(iters.drop(10, range(2))))