ref: 87e181df6f9eef5cb2d7f9e3fee96f3f6b6f46f3
parent: b5322759db58e013cc158bc987ff9f118ab3e501
author: Paul Brossier <piem@piem.org>
date: Sat Sep 15 11:15:13 EDT 2018
python/tests/test_fvec_shift.py: add tests for shift() and ishift()
--- /dev/null
+++ b/python/tests/test_fvec_shift.py
@@ -1,0 +1,35 @@
+#! /usr/bin/env python
+
+import numpy as np
+from numpy.testing import TestCase, assert_equal
+import aubio
+
+class aubio_shift_test_case(TestCase):
+
+ def run_shift_ishift(self, n):
+ ramp = np.arange(n, dtype=aubio.float_type)
+ # construct expected output
+ # even length: [5. 6. 7. 8. 9. 0. 1. 2. 3. 4.]
+ # odd length: [4. 5. 6. 0. 1. 2. 3.]
+ half = n - n//2
+ expected = np.concatenate([np.arange(half, n), np.arange(half)])
+ # shift in place, returns modified copy
+ assert_equal(aubio.shift(ramp), expected)
+ # check input was changed as expected
+ assert_equal(ramp, expected)
+ # construct expected output
+ expected = np.arange(n)
+ # revert shift in place, returns modifed copy
+ assert_equal(aubio.ishift(ramp), expected)
+ # check input was shifted back
+ assert_equal(ramp, expected)
+
+ def test_can_shift_fvec(self):
+ self.run_shift_ishift(10)
+
+ def test_can_shift_fvec_odd(self):
+ self.run_shift_ishift(7)
+
+from unittest import main
+if __name__ == '__main__':
+ main()