File: test_fvec_shift.py

package info (click to toggle)
aubio 0.4.9-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,720 kB
  • sloc: python: 20,447; ansic: 20,127; makefile: 348; sh: 232
file content (35 lines) | stat: -rw-r--r-- 1,108 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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)

if __name__ == '__main__':
    from unittest import main
    main()