created unittest for CircularBuffer
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Tue, 12 Jan 2016 12:26:25 +0000 (13:26 +0100)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Tue, 12 Jan 2016 12:26:25 +0000 (13:26 +0100)
test/buffer_unittest.py [new file with mode: 0644]

diff --git a/test/buffer_unittest.py b/test/buffer_unittest.py
new file mode 100644 (file)
index 0000000..377589c
--- /dev/null
@@ -0,0 +1,54 @@
+""" buffer_unittest.py: unit tests for buffers.py
+
+Tests classes and functions in buffers.py
+
+Should be able run from python2 and python3!
+
+For help see :py:mod:`unittest`
+
+.. codeauthor:: Christian Herdtweck, christian.herdtweck@intra2net.com
+"""
+
+import unittest
+
+import buffers
+
+
+class CircBufferTester(unittest.TestCase):
+    """ test class CircularBuffer """
+
+    def test_illegal_size(self):
+        for size in (-10, -1, 0):
+            self.assertRaises(ValueError, buffers.CircularBuffer, size)
+
+    def test_basic(self):
+        """ tests basic functionality """
+
+        for size in (1, 2, 4, 8, 16, 32):
+            buf = buffers.CircularBuffer(size)
+            self.assertTrue(all(item == None for item in buf.get_all()))
+
+            for elem in range(size*2):
+                buf.add(elem)
+                elems = buf.get_all()
+                start_elem = max(0, elem-size)
+                print('added {0}, expect elems from {1} to {2} in buf'
+                      .format(elem, start_elem, elem))
+                self.assertEqual(elems[:elem+1], range(start_elem, elem+1))
+                self.assertTrue(all(elem == None for elem in elems[elem+1:]))
+
+
+#class LogarithmicBufferTest(unittest.TestCase):
+#    """ test class LogarithmicBuffer """
+#
+#    def test_some_func(self):
+#        """ tests some_func """
+#
+#        this_is_implemented = False
+#        self.assertTrue(this_is_implemented, 'Appears not yet implemented')
+#
+#        self.fail('Fail in any case, but with this nice message')
+
+
+if __name__ == '__main__':
+    unittest.main()