3 from numpy.testing import TestCase, assert_equal
4 from numpy import array, arange, isnan, isinf
5 from aubio import bintomidi, miditobin, freqtobin, bintofreq, freqtomidi, miditofreq
6 from aubio import unwrap2pi
10 class aubio_mathutils(TestCase):
12 def test_unwrap2pi(self):
17 unwrap2pi(arange(10).astype("int"))
18 unwrap2pi(arange(10).astype("float"))
19 unwrap2pi(arange(10).astype("float32"))
21 unwrap2pi([23.,24.,25.])
25 a = pi/100. * arange(-600,600).astype("float")
30 print unwrap2pi(["23.","24.",25.])
34 def test_unwrap2pi_takes_fvec(self):
38 assert ( b > -pi ).all()
39 assert ( b <= pi ).all()
41 def test_unwrap2pi_takes_array_of_float(self):
42 a = arange(-10., 10.).astype("float")
45 assert ( b > -pi ).all()
46 assert ( b <= pi ).all()
48 def test_unwrap2pi_takes_array_of_float32(self):
49 a = arange(-10, 10).astype("float32")
52 assert ( b > -pi ).all()
53 assert ( b <= pi ).all()
55 def test_freqtomidi(self):
56 a = array(range(-20, 50000, 100) + [ -1e32, 1e32 ])
59 assert_equal ( isnan(array(b)), False )
60 assert_equal ( isinf(array(b)), False )
61 assert_equal ( array(b) < 0, False )
63 def test_miditofreq(self):
64 a = range(-30, 200) + [-100000, 10000]
67 assert_equal ( isnan(b), False )
68 assert_equal ( isinf(b), False )
69 assert_equal ( b < 0, False )
71 def test_miditobin(self):
72 a = range(-30, 200) + [-100000, 10000]
73 b = [ bintomidi(x, 44100, 512) for x in a ]
75 assert_equal ( isnan(array(b)), False )
76 assert_equal ( isinf(array(b)), False )
77 assert_equal ( array(b) < 0, False )
79 def test_bintomidi(self):
81 b = [ bintomidi(x, 44100, 512) for x in a ]
83 assert_equal ( isnan(array(b)), False )
84 assert_equal ( isinf(array(b)), False )
85 assert_equal ( array(b) < 0, False )
87 def test_freqtobin(self):
88 a = range(-20, 50000, 100) + [ -1e32, 1e32 ]
89 b = [ freqtobin(x, 44100, 512) for x in a ]
91 assert_equal ( isnan(array(b)), False )
92 assert_equal ( isinf(array(b)), False )
93 assert_equal ( array(b) < 0, False )
95 def test_bintofreq(self):
97 b = [ bintofreq(x, 44100, 512) for x in a ]
99 assert_equal ( isnan(array(b)), False )
100 assert_equal ( isinf(array(b)), False )
101 assert_equal ( array(b) < 0, False )
103 if __name__ == '__main__':
104 from unittest import main