1 | #! /usr/bin/env python |
---|
2 | |
---|
3 | import numpy as np |
---|
4 | from numpy.testing import TestCase, assert_equal |
---|
5 | import aubio |
---|
6 | |
---|
7 | class aubio_shift_test_case(TestCase): |
---|
8 | |
---|
9 | def run_shift_ishift(self, n): |
---|
10 | ramp = np.arange(n, dtype=aubio.float_type) |
---|
11 | # construct expected output |
---|
12 | # even length: [5. 6. 7. 8. 9. 0. 1. 2. 3. 4.] |
---|
13 | # odd length: [4. 5. 6. 0. 1. 2. 3.] |
---|
14 | half = n - n//2 |
---|
15 | expected = np.concatenate([np.arange(half, n), np.arange(half)]) |
---|
16 | # shift in place, returns modified copy |
---|
17 | assert_equal(aubio.shift(ramp), expected) |
---|
18 | # check input was changed as expected |
---|
19 | assert_equal(ramp, expected) |
---|
20 | # construct expected output |
---|
21 | expected = np.arange(n) |
---|
22 | # revert shift in place, returns modifed copy |
---|
23 | assert_equal(aubio.ishift(ramp), expected) |
---|
24 | # check input was shifted back |
---|
25 | assert_equal(ramp, expected) |
---|
26 | |
---|
27 | def test_can_shift_fvec(self): |
---|
28 | self.run_shift_ishift(10) |
---|
29 | |
---|
30 | def test_can_shift_fvec_odd(self): |
---|
31 | self.run_shift_ishift(7) |
---|
32 | |
---|
33 | from unittest import main |
---|
34 | if __name__ == '__main__': |
---|
35 | main() |
---|