def make()

in StreamMaker.py [0:0]


    def make(self, n, order='', p=1000, g=0, s=1):
        assert(order in self.orders)
        
        if order == 'sorted': # sorted order
            for item in range(n):
                yield item
        elif order == 'reversed': # reversed sorted order
            for item in range(n-1,-1,-1):
                yield item
        elif order == 'zoomin': 
            for item in range(int(n/2)):
                yield item
                yield n-item
        elif order == 'zoomout': 
            for item in range(1,int(n/2)):
                yield n/2 + item
                yield n/2 - item
        elif order == 'sqrt': 
            t = int(sqrt(2*n))
            item = 0
            initialItem = 0
            initialSkip = 1
            for i in range(t):
                item = initialItem
                skip = initialSkip
                for j in range(t-i):
                    yield item
                    item+=skip
                    skip+=1 
                initialSkip+=1
                initialItem+=initialSkip
        elif order == 'adv':
            m = ceil(n/p)
            for i in range(p):
                for j in range(s*(g + p + m*(p-i)), s*(g + p + m*(p-i-1)), -s):
                    yield j
                yield i
                if i == p // 2:
                    for j in range(p, s*(g + p + m), s*(g + p + m) // 10):
                        yield j
        elif order == 'clustered': # sorted clustered order
            m = ceil(n/p) # number of clusters  of size p
            for i in range(m):
                # output cluster; g is the gap between clusters
                for j in range(i*g, i*g + p):
                    yield i*g + j / p
            for i in range(m):
                # put some items (roughly s many) into the gap between clusters
                for j in range(i*g + p, (i+1)*g, g // s):
                    yield j
        elif order == 'clustered-zoomin': # order roughly as in zoomin
            m = ceil(n/p) # number of clusters  of size p
            for i in range(m):
                # output cluster; g is the gap between clusters
                for j in range(i*g, i*g + p, 2):
                    yield i*g + j / p
            for i in range(m):
                # put some items (roughly s many) into the gap between clusters
                for j in range(i*g + p, (i+1)*g, g // s):
                    yield j
            for i in range(m - 1, 0, -1):
                # output cluster; g is the gap between clusters
                for j in range(i*g + p, i*g, -2):
                    yield i*g + (j + 1) / p
        else: # order == 'random':
            items = list(range(n))
            self.rng.shuffle(items)
            for item in items:
                yield item