Created
October 13, 2018 03:46
-
-
Save mcclane/555e453a98632a0356afac5a65a76473 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import unittest | |
# from queue_array import Queue | |
from queue_linked import Queue | |
class TestLab1(unittest.TestCase): | |
def test_queue(self): | |
'''Trivial test to ensure method names and parameters are correct''' | |
q = Queue(5) | |
q.is_empty() | |
q.is_full() | |
q.enqueue('thing') | |
q.dequeue() | |
q.size() | |
def test_queue_01(self): | |
"""Test the queue by checking empty, full, adding 100, checking empty, full, removing 100, checking empty, full""" | |
q = Queue(100) | |
# Check empty, full, size | |
self.assertTrue(q.is_empty()) | |
self.assertFalse(q.is_full()) | |
self.assertEqual(q.size(), 0) | |
# Add items to the queue | |
for i in range(100): | |
q.enqueue(i) | |
# Check empty, full, and size | |
self.assertFalse(q.is_empty()) | |
self.assertTrue(q.is_full) | |
# Remove all the items from the queue | |
for i in range(100): | |
self.assertEqual(q.dequeue(), i) | |
# Check empty, size, and full | |
self.assertTrue(q.is_empty()) | |
self.assertFalse(q.is_full()) | |
self.assertEqual(q.size(), 0) | |
def test_queue_empty_dequeue(self): | |
"""Make sure the queue raises an IndexError when trying to dequeue from an empty queue""" | |
q = Queue(1) | |
with self.assertRaises(IndexError): | |
q.dequeue() | |
def test_queue_full_enqueue(self): | |
"""Make sure the queue raises an IndexError when trying to enqueue a full queue""" | |
q = Queue(1) | |
q.enqueue("123abc") | |
with self.assertRaises(IndexError): | |
q.enqueue("123abc") | |
def test_queue_large(self): | |
"""Test the queue by checking empty, full, adding 100000, checking empty, full, removing 1000000, checking empty, full""" | |
q = Queue(100000) | |
# Check empty, full, size | |
self.assertTrue(q.is_empty()) | |
self.assertFalse(q.is_full()) | |
self.assertEqual(q.size(), 0) | |
# Add items to the queue | |
for i in range(100000): | |
q.enqueue(i) | |
# Check empty, full, and size | |
self.assertFalse(q.is_empty()) | |
self.assertTrue(q.is_full) | |
# Remove all the items from the queue | |
for i in range(100000): | |
self.assertEqual(q.dequeue(), i) | |
# Check empty, size, and full | |
self.assertTrue(q.is_empty()) | |
self.assertFalse(q.is_full()) | |
self.assertEqual(q.size(), 0) | |
def test_queue_circular(self): | |
"""Make sure the queue can loop around""" | |
q = Queue(10) | |
for i in range(10): | |
q.enqueue(i) | |
for i in range(5): | |
self.assertEqual(q.dequeue(), i) | |
for i in range(5): | |
q.enqueue(i) | |
for i in range(5, 10): | |
self.assertEqual(q.dequeue(), i) | |
for i in range(q.size()): | |
q.dequeue() | |
if __name__ == '__main__': | |
unittest.main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment