source: python/tests/test_mathutils.py @ bf1c0e43

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since bf1c0e43 was a6f9ebf, checked in by Paul Brossier <piem@piem.org>, 9 years ago

python/tests/test_mathutils.py: can also raise NotImplementedError? (darwin)

  • Property mode set to 100755
File size: 3.3 KB
Line 
1#! /usr/bin/env python
2
3from unittest import main
4from numpy.testing import TestCase, assert_equal
5from numpy import array, arange, isnan, isinf
6from aubio import bintomidi, miditobin, freqtobin, bintofreq, freqtomidi, miditofreq
7from aubio import unwrap2pi
8from aubio import fvec
9from math import pi
10
11class aubio_mathutils(TestCase):
12
13    def test_unwrap2pi(self):
14        unwrap2pi(int(23))
15        unwrap2pi(float(23.))
16        unwrap2pi(int(23.))
17        unwrap2pi(arange(10))
18        unwrap2pi(arange(10).astype("int"))
19        unwrap2pi(arange(10).astype("float"))
20        unwrap2pi(arange(10).astype("float32"))
21        unwrap2pi([1,3,5])
22        unwrap2pi([23.,24.,25.])
23        a = fvec(10)
24        a[:] = 4.
25        unwrap2pi(a)
26        a = pi/100. * arange(-600,600).astype("float")
27        unwrap2pi(a)
28        #print zip(a, b)
29
30    def test_unwrap2pi_fails_on_list(self):
31        with self.assertRaises((TypeError, NotImplementedError)):
32            unwrap2pi(["23.","24.",25.])
33
34    def test_unwrap2pi_takes_fvec(self):
35        a = fvec(10)
36        b = unwrap2pi(a)
37        #print zip(a, b)
38        assert ( b > -pi ).all()
39        assert ( b <= pi ).all()
40
41    def test_unwrap2pi_takes_array_of_float(self):
42        a = arange(-10., 10.).astype("float")
43        b = unwrap2pi(a)
44        #print zip(a, b)
45        assert ( b > -pi ).all()
46        assert ( b <= pi ).all()
47
48    def test_unwrap2pi_takes_array_of_float32(self):
49        a = arange(-10, 10).astype("float32")
50        b = unwrap2pi(a)
51        #print zip(a, b)
52        assert ( b > -pi ).all()
53        assert ( b <= pi ).all()
54
55    def test_freqtomidi(self):
56        a = array(list(range(-20, 50000, 100)) + [ -1e32, 1e32 ])
57        b = freqtomidi(a)
58        #print zip(a, b)
59        assert_equal ( isnan(array(b)), False )
60        assert_equal ( isinf(array(b)), False )
61        assert_equal ( array(b) < 0, False )
62
63    def test_miditofreq(self):
64        a = list(range(-30, 200)) + [-100000, 10000]
65        b = miditofreq(a)
66        #print zip(a, b)
67        assert_equal ( isnan(b), False )
68        assert_equal ( isinf(b), False )
69        assert_equal ( b < 0, False )
70
71    def test_miditobin(self):
72        a = list(range(-30, 200)) + [-100000, 10000]
73        b = [ miditobin(x, 44100, 512) for x in a ]
74        #print zip(a, b)
75        assert_equal ( isnan(array(b)), False )
76        assert_equal ( isinf(array(b)), False )
77        assert_equal ( array(b) < 0, False )
78
79    def test_bintomidi(self):
80        a = list(range(-100, 512))
81        b = [ bintomidi(x, 44100, 512) for x in a ]
82        #print zip(a, b)
83        assert_equal ( isnan(array(b)), False )
84        assert_equal ( isinf(array(b)), False )
85        assert_equal ( array(b) < 0, False )
86
87    def test_freqtobin(self):
88        a = list(range(-20, 50000, 100)) + [ -1e32, 1e32 ]
89        b = [ freqtobin(x, 44100, 512) for x in a ]
90        #print zip(a, b)
91        assert_equal ( isnan(array(b)), False )
92        assert_equal ( isinf(array(b)), False )
93        assert_equal ( array(b) < 0, False )
94
95    def test_bintofreq(self):
96        a = list(range(-20, 148))
97        b = [ bintofreq(x, 44100, 512) for x in a ]
98        #print zip(a, b)
99        assert_equal ( isnan(array(b)), False )
100        assert_equal ( isinf(array(b)), False )
101        assert_equal ( array(b) < 0, False )
102
103if __name__ == '__main__':
104    main()
Note: See TracBrowser for help on using the repository browser.