summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--queue-test.py15
-rw-r--r--queue.py19
2 files changed, 34 insertions, 0 deletions
diff --git a/queue-test.py b/queue-test.py
new file mode 100644
index 0000000..90838f5
--- /dev/null
+++ b/queue-test.py
@@ -0,0 +1,15 @@
+from queue import circular_queue
+
+def test_queue_average():
+ a = circular_queue(50)
+ a.add(1)
+ a.add(2)
+ a.add(3)
+ assert a.average() == 2
+
+
+def test_queue_average_null():
+ a = circular_queue(50)
+ assert a.average() == 0
+
+
diff --git a/queue.py b/queue.py
new file mode 100644
index 0000000..85516cf
--- /dev/null
+++ b/queue.py
@@ -0,0 +1,19 @@
+class circular_queue:
+ def __init__(self,size):
+ self.size = size
+ self.queue = []
+ for i in range(self.size):
+ self.queue.append(None)
+ self.pointer = 0
+ def add(self, value):
+ self.queue[self.pointer] = value
+ self.pointer += 1
+ if self.pointer > 49:
+ self.pointer = 0
+ def average(self):
+ queue = self.queue
+ while None in queue:
+ queue.remove(None)
+ if len(queue) == 0:
+ return 0
+ return sum(queue) / len(queue)