def checkRemoveOperation(self):
        # by Using the Automation code
        print("\n")
        print("****Remove Operation Using Automation****")
        print("Test case for checking Remove Operation")
        self.queue.clear()
        self.addElements()
        print(" Element Remove from Queue ", self.queue.popleft())
        print("After Remove of Element Queue content = ", self.queue)

        # Checking the inserted element is present in Queue
        self.checkElementnotPresent(self.element, self.queue)

        # by Using the function written

        print("****Remove Operation Using Function****")
        q = Queue()
        print("Initially Queue Contains", q.queue)
        q.insert(self.element + 1)
        q.insert(self.element + 2)
        print("Now Queue Contains", q.queue)
        print(" Element Remove from Queue ", q.remove())
        print("Now Queue Contains", q.queue)

        # Checking the Removed element is present in Queue
        self.checkElementnotPresent(self.element, q.queue)
        print('*' * 70)
    def checkSizeAfterRemove(self):
        print('\n')
        print("**** Check Size After Remove Operation using Queue Automation****")
        self.queue.clear()
        self.addElements()
        print(" Element Remove from Queue ", self.queue.popleft())
        print("After Remove of Element Queue content = ", self.queue)

        # finding size
        size = 0
        for elements in self.queue:
            size += 1
        print("Size of Queue Is = ", size)

        # by using the function
        print("\n")
        print("**** Operation Using Function****")
        q = Queue()
        print("Initially Queue Contains", q.queue)
        q.insert(self.element + 1)
        q.insert(self.element + 2)
        q.remove()
        print("Now Queue Contains", q.queue)

        # calling function of size from the
        print("Size of Queue is ", q.size())

        if q.size() == size:
            print("both sizes of Automated Queue and Function Queue are Equal Test Case passed")

        else:
            print("Test Case is Failed size is not Equal")

        print('*' * 70)
    def checkRemoveFromEmptyQueue(self):
        print('\n')
        print("****Remove From Empty Queue Operation Using Automation****")
        print("Test case for checking Deleting from Empty Queue")
        self.queue.clear()
        print('Now Queue contains', self.queue)

        print('Trying to Delete from Empty Queue')
        try:
            self.queue.popleft()
        except IndexError:
            print("You cant Remove from Empty Queue\n")

        print("****Remove From Empty Queue Operation Using Automation****")
        z = Queue()
        z.queue.clear()
        print("Now Queue Contains", z.queue)
        print('Trying to Delete from Empty Queue')
        z.remove()
        print("Test Case is Passed")

        print('*'*71)
Ejemplo n.º 4
0
class Stack:
    def __init__(self):
        self.__queue = Queue()

    def push(self, item):
        self.__queue.enqueue(item)

    def pop(self):
        if self.__queue.length() != 1:
            self.__re_order()
        return self.__queue.dequeue()

    def length(self):
        return self.__queue.length()

    def __re_order(self):
        i = 1
        length = self.__queue.length()
        while i < length:
            self.__queue.enqueue(self.__queue.dequeue())
            i += 1
Ejemplo n.º 5
0
def bfs(graph: Graph, source: Any) -> list:
    """
    Perform breadth-frist search on the given graph from the specified source vertex
    :param graph: the graph to perform bfs on
    :param source: the vertex to start from
    :return: a list of breadth-first traversal of format (vertex, distance, parent)
    """
    bfs_traversal = []
    vertices = graph.adjacency_list.keys()

    status = {}  # synonymous to colours, initialized at white (unvisited)
    distance = {}  # distance from source
    parent = {}  # parent of discovered vertex
    for vertex in vertices:
        status[vertex] = 0
        distance[vertex] = None  # indicates depth of disconnect
        parent[vertex] = None

    status[
        source] = 1  # initialize source at grey (visited but not explored completely)
    distance[source] = 0  # the distance from the source to itself is 0
    q = Queue()  # queue for vertices that need to be explored

    q.enqueue(source)
    while not q.is_empty():
        u = q.dequeue()
        for v in graph.adjacency_list[u]:
            if status[v] == 0:  # if vertex v is white
                status[v] = 1  # update v to grey
                distance[v] = distance[u] + 1
                parent[v] = u
                q.enqueue(v)
        status[u] = 2  # we have fully explored u, hence update u to black
        bfs_traversal.append((u, distance[u], parent[u]))

    return bfs_traversal
    def checkInsertOperationinQueue(self):
        # by Using the Automation code
        print('\n')
        print("****Insert Operation using Queue Automation****")
        self.queue.clear()
        self.addElements()

        # Checking the inserted element is present in Queue
        if self.element+1 in self.queue:
            print("The Element is inserted ", self.element+1)
            print("Element is present in Queue")
        else:
            print("Element is Not present in list")
        print("Now Queue Contains  Last Inserted Element ", self.queue, '\n')

        # by Using the function written

        print("****Insert Operation Using Function****")
        q = Queue()
        print("Initially Queue Contains", q.queue)
        q.insert(self.element+1)
        q.insert(self.element + 2)
        print("Now the contents of queue is =", q.queue)

        # Checking the inserted element is present in Queue
        if self.element+1 in q.queue:
            print("The Element is inserted ", self.element+1)
            print("Element is present in Queue")
        else:
            print("Element is Not present in list")

        # comparing two Queues Are Equal or not
        AutomatedQueue = self.queue
        FunctionQueue = q.queue

        for QAelements in AutomatedQueue:
            for QFelements in FunctionQueue:
                if QAelements == QFelements:
                    None
        print("Both Queue are Same Insertion TestCase passed")
        print('*' * 70)
Ejemplo n.º 7
0
 def setUp(self):
     self.queue = Queue()
Ejemplo n.º 8
0
class TestQueue(unittest.TestCase):
    def setUp(self):
        self.queue = Queue()

    def test_queue_is_initialised(self):
        self.assertEqual(0, self.queue.length())

    def test_enqueue_is_increasing_length(self):
        self.queue.enqueue(5)
        self.queue.enqueue(10)
        self.assertEqual(2, self.queue.length())

    def test_dequeue_is_reducing_length(self):
        self.queue.enqueue(15)
        self.assertEqual(15, self.queue.dequeue())
        self.assertEqual(0, self.queue.length())

    def test_queue_follows_FIFO(self):
        self.queue.enqueue(20)
        self.queue.enqueue(25)
        self.assertEqual(2, self.queue.length())
        self.assertEqual(20, self.queue.dequeue())

    def test_dequeue_return_error_from_empty_queue(self):
        with self.assertRaises(QueueEmptyException):
            self.queue.dequeue()
Ejemplo n.º 9
0
 def __init__(self):
     self.__queue = Queue()
Ejemplo n.º 10
0
 def QueExecution(self):
     q=Queue()
     q.callingQueue()