3 from numpy.testing import TestCase, run_module_suite
4 from numpy.testing import assert_equal, assert_almost_equal
5 from numpy import array, arange, isnan, isinf
6 from aubio import bintomidi, miditobin, freqtobin, bintofreq, freqtomidi, miditofreq
7 from aubio import unwrap2pi
11 class aubio_mathutils(TestCase):
13 def test_unwrap2pi(self):
18 unwrap2pi(arange(10).astype("int"))
19 unwrap2pi(arange(10).astype("float"))
20 unwrap2pi(arange(10).astype("float32"))
22 unwrap2pi([23.,24.,25.])
26 a = pi/100. * arange(-600,600).astype("float")
31 print unwrap2pi(["23.","24.",25.])
35 def test_unwrap2pi_takes_fvec(self):
39 assert ( b > -pi ).all()
40 assert ( b <= pi ).all()
42 def test_unwrap2pi_takes_array_of_float(self):
43 a = arange(-10., 10.).astype("float")
46 assert ( b > -pi ).all()
47 assert ( b <= pi ).all()
49 def test_unwrap2pi_takes_array_of_float32(self):
50 a = arange(-10, 10).astype("float32")
53 assert ( b > -pi ).all()
54 assert ( b <= pi ).all()
56 def test_freqtomidi(self):
57 a = array(range(-20, 50000, 100) + [ -1e32, 1e32 ])
60 assert_equal ( isnan(array(b)), False )
61 assert_equal ( isinf(array(b)), False )
62 assert_equal ( array(b) < 0, False )
64 def test_miditofreq(self):
65 a = range(-30, 200) + [-100000, 10000]
68 assert_equal ( isnan(b), False )
69 assert_equal ( isinf(b), False )
70 assert_equal ( b < 0, False )
72 def test_miditobin(self):
73 a = range(-30, 200) + [-100000, 10000]
74 b = [ bintomidi(x, 44100, 512) for x in a ]
76 assert_equal ( isnan(array(b)), False )
77 assert_equal ( isinf(array(b)), False )
78 assert_equal ( array(b) < 0, False )
80 def test_bintomidi(self):
82 b = [ bintomidi(x, 44100, 512) for x in a ]
84 assert_equal ( isnan(array(b)), False )
85 assert_equal ( isinf(array(b)), False )
86 assert_equal ( array(b) < 0, False )
88 def test_freqtobin(self):
89 a = range(-20, 50000, 100) + [ -1e32, 1e32 ]
90 b = [ freqtobin(x, 44100, 512) for x in a ]
92 assert_equal ( isnan(array(b)), False )
93 assert_equal ( isinf(array(b)), False )
94 assert_equal ( array(b) < 0, False )
96 def test_bintofreq(self):
98 b = [ bintofreq(x, 44100, 512) for x in a ]
100 assert_equal ( isnan(array(b)), False )
101 assert_equal ( isinf(array(b)), False )
102 assert_equal ( array(b) < 0, False )
104 if __name__ == '__main__':
105 from unittest import main