Exemplo n.º 1
0
class TestCircularQueue(unittest.TestCase):

    def setUp(self):
        self.cq = CircularQueue()
        self.cq.enqueue('A')
        self.cq.enqueue('B')

    def test_instantiation(self):
        print('Can create an instance')
        self.assertIsInstance(self.cq, CircularQueue)

    def test_is_empty_method(self):
        print('Can check if the queue is empty')
        self.assertEqual(len(self.cq), 2)
        self.assertNotEqual(len(self.cq), 4)

    def test_first_method(self):
        print('Can return the first element from the front of the queue')
        self.assertEqual(self.cq.first(), 'A')

    def test_enqueue_method(self):
        print('Can add element to the back of the queue')
        self.cq.enqueue('C')
        self.assertEqual(len(self.cq), 3)

    def test_dequeue_method(self):
        print('Can remove element from the queue')
        self.cq.dequeue()
        self.cq.dequeue()
        self.assertEqual(self.cq.is_empty(), True)

    def test_rotate_method(self):
        print('Can rotate front element to the back of the queue')
        self.cq.rotate()
        self.assertEqual(self.cq.first(), 'B')

    def test_exception_raising(self):
        print('Can raise exception while performing actions on empty queue')
        self.cq.dequeue()
        self.cq.dequeue()
        with self.assertRaises(Empty):
            self.cq.first()
            self.cq.dequeue()
Exemplo n.º 2
0
class CircularQueueTest(object):
    def __init__(self):
        self.queue = CircularQueue()

    def _enqueue_dequeue_test(self):
        """
        enqueue和dequeue方法测试
        :return: None
        """
        print("enqueue和dequeue方法测试中....")
        print("循环队列:", self.queue)
        size = 10
        print("开始enqueue元素%d次" % size)
        for i in range(size):
            self.queue.enqueue(i)
        print("当前第3个元素为", self.queue[2])
        print("enqueue结束,当前循环队列为:", self.queue)
        print("当前循环队列长度为:", len(self.queue))
        print("顶部元素为:", self.queue.first())
        print("开始dequeue元素%d次" % size)
        for i in range(size):
            self.queue.dequeue()
        print("dequeue结束,当前循环队列为:", self.queue)
        print("当前队列应该为空:", self.queue.is_empty())

    def _rotate_test(self):
        """
        rotate方法测试
        :return: None
        """
        print("\n" + "rotate方法测试中....")
        print("添加元素")
        for i in range(10):
            self.queue.enqueue(i)
        print("当前循环列表:", self.queue)
        print("执行rotate方法")
        self.queue.rotate()
        print("当前循环列表:", self.queue)

    def run(self):
        """
        执行测试方法
        :return: None
        """
        self._enqueue_dequeue_test()
        self._rotate_test()