diff options
| -rw-r--r-- | circular_queue.py | 14 | ||||
| -rw-r--r-- | queue-test.py | 14 |
2 files changed, 22 insertions, 6 deletions
diff --git a/circular_queue.py b/circular_queue.py index 44954bd..6b36748 100644 --- a/circular_queue.py +++ b/circular_queue.py @@ -11,11 +11,13 @@ class circular_queue: self.pointer += 1 if self.pointer >= self.size: self.pointer = 0 - def average(self): - queue = self.queue - while None in queue: - queue.remove(None) - if len(queue) == 0: + value = 0 + length = 0 + for i in self.queue: + if i != None: + value += i + length += 1 + if length == 0: return 0 - return sum(queue) / len(queue) + return value / length diff --git a/queue-test.py b/queue-test.py index c68ec51..131c2c5 100644 --- a/queue-test.py +++ b/queue-test.py @@ -12,3 +12,17 @@ def test_queue_average(): def test_queue_average_null(): a = circular_queue(50) assert a.average() == 0 + +def test_queue_average_size(): + a = circular_queue(50) + print(len(a.queue)) + a.average() + print(len(a.queue)) + assert len(a.queue) == 50 + +def test_queue_circle(): + a = circular_queue(20) + for i in range(0,2000): + a.add(1) + assert a.average() == 1 + |
