Ejemplo n.º 1
0
 def __init__(self, url, views, visits=0):
     self.recentProxies = Queue()
     self.proxies = Queue()
     self.renewDriver = True
     self.isActive = True
     self.isAlive = True
     self.views = views
     self.visits = visits
     self.url = url
     self.scraper = Scrape(maxSize=30, protocol='SSL', cleanProxies=True)
Ejemplo n.º 2
0
 def setUp(self):
     # Create queues for the tests to use
     self.new = Queue()
     self.empty = Queue()
     self.empty.enqueue('hi')
     self.empty.dequeue()
     # Don't add in ascending or descending order
     self.non_empty = Queue()
     self.non_empty.enqueue(5)
     self.non_empty.enqueue(2)
     self.non_empty.enqueue(7)
     self.non_empty.enqueue(2)
Ejemplo n.º 3
0
 def test_dequeue_different_sizes(self, lst: list) -> None:
     """
     Tests the Queue.dequeue method on queues with different amounts of items.
     """
     q = Queue(lst)
     while not q.is_empty():
         self.assertEqual(lst.pop(0), q.dequeue())
Ejemplo n.º 4
0
def main():
    print "\ncheck stack"
    stack = Stack(1, 2, 34, 5)
    for x in range(0, 5):
        stack.push(x)
    print stack
    for x in range(0, 15):
        print "".join(["size=", str(len(stack)), " cur_node=", str(stack.pop())])

    print "\ncheck queue"
    queue = Queue(1, 2, 34, 5)
    for x in range(0, 5):
        queue.enter(x)
    print stack
    for x in range(0, 15):
        print "".join(["size=", str(len(queue)), " cur_node=", str(queue.exit())])

    print "\ncheck BSTree"
    tree = BSTree(1, 2, 34, 5)
    print tree
    print tree.find(10)
    print tree.find(5)
    print tree.max()
    print tree.min()
    print tree.successor(34)
    print tree.successor(5)
    print tree.predecessor(1)
    print tree.predecessor(2)
Ejemplo n.º 5
0
    def test_items(self):
        q = Queue()

        q.enqueue('A')
        q.enqueue('B')

        assert ['A', 'B'] == q.items()
Ejemplo n.º 6
0
def eliminated(people, skip):
    """Return a list of the positions of people as they are eliminated.

    The position of the last person standing is at the end of the list.
    Assume people is a positive integer.
    Assume skip is a non-negative integer.
    For example:

    >>> eliminated(3, 0)
    [1, 2, 3]
    >>> eliminated(3, 1)
    [2, 1, 3]
    >>> eliminated(3, 4)
    [2, 3, 1]
    """
    assert people > 0
    assert skip >= 0
    circle = Queue()
    for position in range(1, people + 1):
        circle.enqueue(position)
    positions = []
    while circle:
        for _skipped in range(skip):
            circle.enqueue(circle.dequeue())
        positions.append(circle.dequeue())
    return positions
Ejemplo n.º 7
0
    def initialize(self):
        self.db = mongo
        self.search_cache = Cache(master=False, db=config.Cache.searchdb)
        self.hot_image_cache = Cache(master=False, db=config.Cache.imagedb)
        self.queue = Queue()

        self.session = Session(self,
                               MemcacheStore(),
                               initializer={
                                   'nickname': None,
                                   'uid': None,
                                   'avatar': None,
                                   'email': None,
                                   'super': False,
                                   'channel': None,
                                   'login': False,
                                   'net': None,
                                   'reso': None,
                                   'height': 0,
                                   'width': 0,
                                   'show_msg': None,
                                   'hd': True
                               })
        self.session.processor(self)
        self.context = {
            'se': self.session,
            'static_server': config.Server.static_server,
            'cdn': config.CDN.mhost,
        }
Ejemplo n.º 8
0
    def __init__(self, urllist, visits, min, max):

        self.bots = 5 # max amount of bots to use
        self.count = 0 # returning bots
        self.ip = None
        self.alive = True
        self.targets = {} # {url: visits}
        self.ip_usage = 0
        self.ip_fails = 0
        self.max_fails = 3
        self.max_usage = 3
        self.proto = 'https'
        self.recentIPs = Queue(15)
        self.requesting_ip = False

        self.min = int(min)
        self.max = int(max)
        self.visits = int(visits)

        if not path.exists(urllist):
            exit('Error: Unable to locate `{}`'.format(urllist))

        # read the url list
        with open(urllist, 'r') as f:
            try:
                for url in [_ for _ in f.read().split('\n') if _]:
                    self.targets[url] = 0 # initial view
            except Exception as err:exit('Error:', err)
Ejemplo n.º 9
0
    def test_add_item(self):
        q = Queue()

        q.enqueue('A')

        assert len(q) == 1
        assert q.head.data == 'A'
        assert q.tail.data == 'A'
Ejemplo n.º 10
0
 def test_queue_init(self):
     que = Queue()
     self.assertEqual(que.size(), 0)
     self.assertEqual(que.is_empty(), True)
     with self.assertRaises(IndexError):
         que.pop()
     with self.assertRaises(IndexError):
         que.peek()
Ejemplo n.º 11
0
 def test_queue_push(self):
     que = Queue()
     random_values = get_random_values()
     for v in random_values:
         que.push(v)
         self.assertEqual(que.is_empty(), False)
         self.assertEqual(que.peek(), v)
         self.assertEqual(que.pop(), v)
Ejemplo n.º 12
0
 def test_queue_peek(self):
     que = Queue()
     random_values = get_random_values()
     for v in random_values:
         que.push(v)
     for v in random_values:
         self.assertEqual(que.peek(), v)
         que.pop()
Ejemplo n.º 13
0
    def __init__(self, word_list, order=2, sentences=1):
        super().__init__()
        self.order = order  # order of the markov chain
        self.sentences = sentences
        self.memory = Queue(order)  # for sampling from markov model

        if word_list is not None:
            self['START'] = Dictogram()
            self._create_chain(word_list)
Ejemplo n.º 14
0
 def test_queue_size(self):
     que = Queue()
     random_values = get_random_values()
     for i, v in enumerate(random_values):
         que.push(v)
         self.assertEqual(que.size(), i + 1)
     for i in range(len(random_values)):
         que.pop()
         self.assertEqual(que.size(), len(random_values) - i - 1)
Ejemplo n.º 15
0
 def test_queue_reverse(self):
     que = Queue()
     random_values = get_random_values()
     for v in random_values:
         que.push(v)
     que.reverse()
     for v in random_values[::-1]:
         self.assertEqual(que.peek(), v)
         que.pop()
Ejemplo n.º 16
0
    def del_min(self):

        q = Queue()

        del self.tree[0][0]
        q.enqueue(self.tree[self.power][len(self.tree[self.power]) - 1])
        del self.tree[self.power][len(self.tree[self.power]) - 1]
        self.tree[0].insert(0, q.dequeue())
        return self.tree
Ejemplo n.º 17
0
    def test_serialize(self):
        q = Queue()

        q.enqueue('A')
        q.enqueue('B')

        items = q.serialize()

        assert tuple(['A', 'B']) == items
Ejemplo n.º 18
0
 def test_queue_copy(self):
     que = Queue()
     random_values = get_random_values()
     for v in random_values:
         que.push(v)
     copied_que = que.copy()
     for v in random_values:
         self.assertEqual(copied_que.peek(), v)
         copied_que.pop()
     self.assertEqual(que.size(), len(random_values))
Ejemplo n.º 19
0
def hot_potato(name_list, num):
    q = Queue()
    for i in range(0, len(name_list)):
        q.enqueue(name_list[i])
    for j in range(0, len(name_list) - 1):
        for k in range(0, num):
            q.enqueue(q.dequeue())
        q.dequeue()
    remaining_person = q.dequeue()
    return remaining_person
Ejemplo n.º 20
0
def convert_to_queue(word_list):
    '''
        Helper function to convert a word_list into a queue 
    '''
    queue = Queue()

    for word in word_list:
        queue.enqueue(word)

    return queue
Ejemplo n.º 21
0
 def test_queue_reversed(self):
     que = Queue()
     random_values = get_random_values()
     for v in random_values:
         que.push(v)
     reversed_queue = reversed(que)
     for v in random_values[::-1]:
         self.assertEqual(reversed_queue.peek(), v)
         reversed_queue.pop()
     self.assertEqual(que.size(), len(random_values))
Ejemplo n.º 22
0
    def test_iteration(self):
        q = Queue()

        items = ['A', 'B']

        for item in items:
            q.enqueue(item)
        
        for i, item in enumerate(q):
            assert item.data == items[i]
Ejemplo n.º 23
0
    def test_enqueue_different_sizes(self, lst: list) -> None:
        """
        Tests the Queue.enqueue method on queues with different amounts of items.
        """
        q = Queue(lst)
        new_item = randint(-100, 100)

        q.enqueue(new_item)

        self.assertEqual(lst + [new_item], q.get_items())
Ejemplo n.º 24
0
 def test_queue_is_empty(self):
     que = Queue()
     random_values = get_random_values()
     self.assertEqual(que.is_empty(), True)
     for v in random_values:
         que.push(v)
         self.assertEqual(que.is_empty(), False)
     for v in random_values:
         self.assertEqual(que.is_empty(), False)
         que.pop()
     self.assertEqual(que.is_empty(), True)
Ejemplo n.º 25
0
 def test_enqueue_empty(self) -> None:
     """
     Tests the Queue.enqueue method on empty queues.
     """
     n = 0
     while n <= 10:
         q = Queue()
         queue_item = randint(-100, 100)
         q.enqueue(queue_item)
         self.assertEqual([queue_item], q.get_items())
         n += 1
Ejemplo n.º 26
0
 def test_queue_pop(self):
     que = Queue()
     random_values = get_random_values()
     for v in random_values:
         que.push(v)
     for v in random_values:
         que.pop()
     self.assertEqual(que.is_empty(), True)
     with self.assertRaises(IndexError):
         que.pop()
     with self.assertRaises(IndexError):
         que.peek()
Ejemplo n.º 27
0
def hot_potato(namelist, num):
    q = Queue()
    for name in namelist:
        q.enqueue(name)

    while q.size() > 1:
        for i in range(num):
            q.enqueue(q.dequeue())

        q.dequeue()

    return q.dequeue()
Ejemplo n.º 28
0
 def test_enqueue_size_one(self) -> None:
     """
     Tests the Queue.enqueue method on queues with 1 item only.
     """
     n = 0
     while n <= 10:
         initial_item = randint(-1000, 1000)
         q = Queue([initial_item])
         new_item = randint(-1000, 1000)
         q.enqueue(new_item)
         self.assertEqual([initial_item, new_item], q.get_items())
         n += 1
Ejemplo n.º 29
0
 def test_len(self):
     q = Queue()
     
     assert len(q) == 0
     q.enqueue('A')
     assert len(q) == 1
     q.enqueue('B')
     assert len(q) == 2
     q.dequeue()
     assert len(q) == 1
     q.dequeue()
     assert len(q) == 0
Ejemplo n.º 30
0
    def flatorder(self, f):
        result = []
        queue = Queue(self.__root)
        while not queue.empty():
            cur_node = queue.exit()
            result.append(f(cur_node.value))
            if cur_node.left is not None:
                queue.enter(cur_node.left)

            if cur_node.right is not None:
                queue.enter(cur_node.right)
        return result