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")
29 def test_unwrap2pi_fails_on_list(self):
30 with self.assertRaises((TypeError, NotImplementedError)):
31 unwrap2pi(["23.","24.",25.])
33 def test_unwrap2pi_takes_fvec(self):
37 assert ( b > -pi ).all()
38 assert ( b <= pi ).all()
40 def test_unwrap2pi_takes_array_of_float(self):
41 a = arange(-10., 10.).astype("float")
44 assert ( b > -pi ).all()
45 assert ( b <= pi ).all()
47 def test_unwrap2pi_takes_array_of_float32(self):
48 a = arange(-10, 10).astype("float32")
51 assert ( b > -pi ).all()
52 assert ( b <= pi ).all()
54 def test_freqtomidi(self):
55 a = array(list(range(-20, 50000, 100)) + [ -1e32, 1e32 ])
58 assert_equal ( isnan(array(b)), False )
59 assert_equal ( isinf(array(b)), False )
60 assert_equal ( array(b) < 0, False )
62 def test_miditofreq(self):
63 a = list(range(-30, 200)) + [-100000, 10000]
66 assert_equal ( isnan(b), False )
67 assert_equal ( isinf(b), False )
68 assert_equal ( b < 0, False )
70 def test_miditobin(self):
71 a = list(range(-30, 200)) + [-100000, 10000]
72 b = [ miditobin(x, 44100, 512) for x in a ]
74 assert_equal ( isnan(array(b)), False )
75 assert_equal ( isinf(array(b)), False )
76 assert_equal ( array(b) < 0, False )
78 def test_bintomidi(self):
79 a = list(range(-100, 512))
80 b = [ bintomidi(x, 44100, 512) for x in a ]
82 assert_equal ( isnan(array(b)), False )
83 assert_equal ( isinf(array(b)), False )
84 assert_equal ( array(b) < 0, False )
86 def test_freqtobin(self):
87 a = list(range(-20, 50000, 100)) + [ -1e32, 1e32 ]
88 b = [ freqtobin(x, 44100, 512) for x in a ]
90 assert_equal ( isnan(array(b)), False )
91 assert_equal ( isinf(array(b)), False )
92 assert_equal ( array(b) < 0, False )
94 def test_bintofreq(self):
95 a = list(range(-20, 148))
96 b = [ bintofreq(x, 44100, 512) for x in a ]
98 assert_equal ( isnan(array(b)), False )
99 assert_equal ( isinf(array(b)), False )
100 assert_equal ( array(b) < 0, False )
102 if __name__ == '__main__':
103 from unittest import main