Exemplo n.º 1
0
 def setUp(self):
     self.data = ["d1", "d2"]
     self.l1 = Queue()
     self.l2 = Queue()
     self.l3 = Queue()
     self.l2.add(self.data[0])
     for datum in self.data:
         self.l3.add(datum)
Exemplo n.º 2
0
 def test_enqueue(self):
     queue = Queue()
     queue.enqueue(1)
     queue.enqueue(2)
     queue.enqueue(13)
     queue.enqueue(31)
     self.assertEqual(queue.items.walk(), [1, 2, 13, 31])
Exemplo n.º 3
0
def bfs(start):
	start.setDistance(0)
	start.setPred(None)
	# Queue for hold vertexes.
	vertQueue = Queue()
	vertQueue.enqueue(start)

	while vertQueue.size() > 0:
		# Get first value from queue.
		curVertex = vertQueue.dequeue()
		# Go through all the neigbors of the current vertex.
		for nbr in curVertex.getConnections():
			# Check if the neighbor was not achieved.
			if nbr.getColor() == 'white':
				# Mark neighbor as achieved.
				nbr.setColor('grey')
				# Compute distance between current vertex and neighbor.
				nbr.setDistance(curVertex.getDistance() + 1)
				# Set predecessor as a current vertex for,
				# for afterwards recreate the path.
				nbr.setPred(curVertex)
				# Add neighbor to end of queue.
				vertQueue.enqueue(nbr)
		# Mark current vertex as passed.
		curVertex.setColor('black')
Exemplo n.º 4
0
 def test_enqueue_five_elements_and_iterate_queue(self):
     queue = Queue()
     langs = ['python', 'java', 'ruby', 'php', 'go']
     for lang in langs:
         queue.enqueue(lang)
     self.assertEqual(len(langs), queue.size())
     for element in queue:
         self.assertIn(element, langs)
def bfs(g, start):
    start.set_distance(0)
    start.set_pred(None)
    vert_queue = Queue()
    vert_queue.enqueue(start)

    while vert_queue.size() > 0:
        current_vert = vert_queue.dequeue()
Exemplo n.º 6
0
 def test_peak(self):
     queue = Queue()
     queue.enqueue(1)
     self.assertEqual(queue.peek(), 1)
     queue.enqueue(2)
     self.assertEqual(queue.peek(), 1)
     queue.enqueue(13)
     self.assertEqual(queue.peek(), 1)
     queue.dequeue()
     self.assertEqual(queue.peek(), 2)
Exemplo n.º 7
0
 def test_dequeue(self):
     queue = Queue()
     queue.enqueue(1)
     queue.enqueue(2)
     queue.enqueue(13)
     queue.enqueue(31)
     # assert that the item dequeued was the item at the head
     self.assertEqual(queue.dequeue(), 1)
     # assert that the item at the head of the linked list was removed
     self.assertEqual(queue.items.walk(), [2, 13, 31])
Exemplo n.º 8
0
 def _bfs(self, node_name):
     search_queue = Queue()
     search_queue.add(self.root)
     while len(search_queue) > 0:
         n = search_queue.remove()
         if n.name == node_name:
             return n
         for c in n.get_children():
             search_queue.add(c)
     return None
Exemplo n.º 9
0
 def test_enqueue_five_elements_to_queue_and_dequeue_two_elements(self):
     queue = Queue()
     langs = ['python', 'java', 'ruby', 'php', 'go']
     for lang in langs:
         queue.enqueue(lang)
     self.assertEqual(len(langs), queue.size())
     element1 = queue.dequeue()
     element2 = queue.dequeue()
     self.assertEqual('python', element1)
     self.assertEqual('java', element2)
     self.assertEqual(3, queue.size())
Exemplo n.º 10
0
 def test_queue(self):
     q = Queue(1)
     q.enqueue(2)
     q.enqueue(3)
     assert q.peek() == 1
     assert q.dequeue() == 1
     q.enqueue(4)
     assert q.dequeue() == 2
     assert q.dequeue() == 3
     assert q.dequeue() == 4
     q.enqueue(5)
     assert q.peek() == 5
Exemplo n.º 11
0
 def breadth_first(self):
     visited = Queue()
     visited.enqueue(self)
     while visited:
         try:
             node = visited.dequeue()
         except LookupError:
             return
         if node.left:
             visited.enqueue(node.left)
         if node.right:
             visited.enqueue(node.right)
         yield node
Exemplo n.º 12
0
    def bfs(self, current):
        # Implementation: Iterative 1
        if current is None:
            return
        queue = Queue()
        queue.enqueue(current)

        while current is not None:
            current = current.next_sibling

            if queue and current is None:
                current = queue.dequeue().first_child

            if current and current.first_child:
                queue.enqueue(current)
Exemplo n.º 13
0
    def _get_node(self, element):
        queue = Queue()
        queue.enqueue(self.root)

        while queue:
            current = queue.dequeue()
            if current.element == element:
                return current

            children = current.get_children()

            if children:
                for child in children:
                    queue.enqueue(child)
        return None
Exemplo n.º 14
0
 def test_enqueue_five_elements_to_queue_and_dequeue_all_elements(self):
     queue = Queue()
     langs = ['python', 'java', 'ruby', 'php', 'go']
     for lang in langs:
         queue.enqueue(lang)
     self.assertEqual(len(langs), queue.size())
     element1 = queue.dequeue()
     element2 = queue.dequeue()
     element3 = queue.dequeue()
     element4 = queue.dequeue()
     element5 = queue.dequeue()
     self.assertEqual('python', element1)
     self.assertEqual('java', element2)
     self.assertEqual('ruby', element3)
     self.assertEqual('php', element4)
     self.assertEqual('go', element5)
     self.assertTrue(queue.is_empty())
Exemplo n.º 15
0
    def test_queue(self):
        q = Queue()
        q.append(2)
        q.append(3)
        self.assertEqual(q.size() == 2, True)
        val = q.pop()
        self.assertEqual(val == 2, True)
        self.assertEqual(q.size() == 1, True)

        self.assertEqual(q.pop() == 3, True)
        self.assertEqual(q.pop() == None, True)

        val = [1, 2, 3, 4, 5]
        for v in val:
            q.append(v)
        for v in val:
            self.assertEqual(q.pop() == v, True)
Exemplo n.º 16
0
    def move(self, element, parent):
        moving_node = self._get_node(element)
        destination_node = self._get_node(parent)

        if not moving_node:
            raise ElementNotFoundError(
                "Could not find element {}".format(element))

        if not destination_node:
            raise ElementNotFoundError(
                "Could not find parent {}".format(parent))

        if moving_node == self.root:
            raise MovingRootError("Cannot move root node.")

        parent_node = None
        previous_sibling_node = None

        queue = Queue()
        queue.enqueue(self.root)

        while queue:
            current = queue.dequeue()

            if current.first_child == moving_node:
                parent_node = current
            if current.next_sibling == moving_node:
                previous_sibling_node = current

            if current == moving_node:
                break

            children = current.get_children()
            if children:
                for child in children:
                    queue.enqueue(child)

        if parent_node:
            parent_node.first_child = moving_node.next_sibling

        if previous_sibling_node:
            previous_sibling_node.next_sibling = moving_node.next_sibling

        next_sibling_node = destination_node.first_child
        destination_node.first_child = moving_node
        moving_node.next_sibling = next_sibling_node
Exemplo n.º 17
0
 def bft_print_tree(self):
     """breadth first traversal method to print a tree """
     if self is None:
         return None
     # make a queue, add thehfirst node
     current = self
     lst = Queue()
     lst.enqueue(current.value)
     # while queue is not empty
     while len(lst) > 0:
         # remove the current, and print it
         print(lst.dequeue())
         # add all children of the current
         if current.left:
             current = current.left
             lst.enqueue(current.value)
         if current.right:
             current = current.right
             lst.enqueue(current.value)
Exemplo n.º 18
0
    def __init__(self, main_window):
        Gtk.Grid.__init__(self)
        self.main_window = main_window
        self.set_column_homogeneous = True

        self.queue = Queue()

        self.set_column_spacing(100)

        results_box = Gtk.ListBox()
        self.results_line = Gtk.ListBox()
        results_box.set_border_width(4)
        results_box.add(self.results_line)

        schedule_button = Gtk.Button('Schedule')
        schedule_button.connect('clicked', self.schedule)

        results_box.set_hexpand(True)
        results_box.add(schedule_button)

        self.attach(results_box, 0, 0, 1, 1)

        processes_box = Gtk.ListBox()
        self.process_lines = Gtk.ListBox()
        processes_box.add(self.process_lines)
        add_process_button = Gtk.Button('Add Process')
        add_process_button.connect('clicked', self.add_process_dialog)

        processes_box.set_hexpand(True)
        processes_box.set_border_width(5)
        processes_box.add(add_process_button)

        self.attach(processes_box, 3, 0, 1, 1)

        self.gantt_chart_box = Gtk.Box()
        self.gantt_chart_box.add(Gtk.Label('GANTT CHART GOES HERE'))
        self.attach(self.gantt_chart_box, 0, 1, 3, 1)
Exemplo n.º 19
0
 def test_no_element_in_queue(self):
     queue = Queue()
     self.assertTrue(queue.is_empty())
Exemplo n.º 20
0
 def __init__(self):
     self._queue_one = Queue()
     self._queue_two = Queue()
Exemplo n.º 21
0
 def test_empty_list(self):
     queue = Queue()
     # assert that an empty linked list is created
     self.assertEqual(queue.items.head, None)
     self.assertEqual(queue.items.tail, None)
     self.assertEqual(queue.items.walk(), [])
Exemplo n.º 22
0
 def test_enqueue_one_element_to_queue(self):
     queue = Queue()
     queue.enqueue('python')
     self.assertEqual(1, queue.size())
Exemplo n.º 23
0
 def setUp(self):
     self.queue = Queue()