History

tests/test_mathutils.py: improve

Paul Brossier committed 13 years ago

Commit 143cc431 parent b583c091 file · +84 −14Browse files

Showing the changes to python/tests/test_mathutils.py (1 of 1 file). Show all

Unified · Split

python/tests/test_mathutils.py+84−14
@@ -2,34 +2,104 @@ · 1 unmodified line
22
33 from numpy.testing import TestCase, run_module_suite
44 from numpy.testing import assert_equal, assert_almost_equal
5+from numpy import array, arange, isnan, isinf
56 from aubio import bintomidi, miditobin, freqtobin, bintofreq, freqtomidi, miditofreq
67 from aubio import unwrap2pi
8+from aubio import fvec
9+from math import pi
710
811 class aubio_mathutils(TestCase):
912
1013 def test_unwrap2pi(self):
11− a = [ x/100. for x in range(-600,600,100) ]
12− b = [ unwrap2pi(x) for x in a ]
13− #print b
14+ unwrap2pi(int(23))
15+ unwrap2pi(float(23.))
16+ unwrap2pi(long(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+ b = unwrap2pi (a)
28+ #print zip(a, b)
1429
15− def test_miditobin(self):
16− a = [ miditobin(a, 44100, 512) for a in range(128) ]
30+ try:
31+ print unwrap2pi(["23.","24.",25.])
32+ except TypeError:
33+ pass
1734
18− def test_bintomidi(self):
19− a = [ bintomidi(a, 44100, 512) for a in range(128) ]
35+ def test_unwrap2pi_takes_fvec(self):
36+ a = fvec(10)
37+ b = unwrap2pi(a)
38+ #print zip(a, b)
39+ assert ( b > -pi ).all()
40+ assert ( b <= pi ).all()
2041
21− def test_freqtobin(self):
22− a = [ freqtobin(a, 44100, 512) for a in range(128) ]
42+ def test_unwrap2pi_takes_array_of_float(self):
43+ a = arange(-10., 10.).astype("float")
44+ b = unwrap2pi(a)
45+ #print zip(a, b)
46+ assert ( b > -pi ).all()
47+ assert ( b <= pi ).all()
2348
24− def test_bintofreq(self):
25− a = [ bintofreq(a, 44100, 512) for a in range(128) ]
49+ def test_unwrap2pi_takes_array_of_float32(self):
50+ a = arange(-10, 10).astype("float32")
51+ b = unwrap2pi(a)
52+ #print zip(a, b)
53+ assert ( b > -pi ).all()
54+ assert ( b <= pi ).all()
2655
2756 def test_freqtomidi(self):
28− a = [ freqtomidi(a) for a in range(128) ]
57+ a = array(range(-20, 50000, 100) + [ -1e32, 1e32 ])
58+ b = freqtomidi(a)
59+ #print zip(a, b)
60+ assert_equal ( isnan(array(b)), False )
61+ assert_equal ( isinf(array(b)), False )
62+ assert_equal ( array(b) < 0, False )
2963
3064 def test_miditofreq(self):
31− freqs = [ miditofreq(a) for a in range(128) ]
32− midis = [ freqtomidi(a) for a in freqs ]
65+ a = range(-30, 200) + [-100000, 10000]
66+ b = miditofreq(a)
67+ #print zip(a, b)
68+ assert_equal ( isnan(b), False )
69+ assert_equal ( isinf(b), False )
70+ assert_equal ( b < 0, False )
71+
72+ def test_miditobin(self):
73+ a = range(-30, 200) + [-100000, 10000]
74+ b = [ bintomidi(x, 44100, 512) for x in a ]
75+ #print zip(a, b)
76+ assert_equal ( isnan(array(b)), False )
77+ assert_equal ( isinf(array(b)), False )
78+ assert_equal ( array(b) < 0, False )
79+
80+ def test_bintomidi(self):
81+ a = range(-100, 512)
82+ b = [ bintomidi(x, 44100, 512) for x in a ]
83+ #print zip(a, b)
84+ assert_equal ( isnan(array(b)), False )
85+ assert_equal ( isinf(array(b)), False )
86+ assert_equal ( array(b) < 0, False )
87+
88+ def test_freqtobin(self):
89+ a = range(-20, 50000, 100) + [ -1e32, 1e32 ]
90+ b = [ freqtobin(x, 44100, 512) for x in a ]
91+ #print zip(a, b)
92+ assert_equal ( isnan(array(b)), False )
93+ assert_equal ( isinf(array(b)), False )
94+ assert_equal ( array(b) < 0, False )
95+
96+ def test_bintofreq(self):
97+ a = range(-20, 148)
98+ b = [ bintofreq(x, 44100, 512) for x in a ]
99+ #print zip(a, b)
100+ assert_equal ( isnan(array(b)), False )
101+ assert_equal ( isinf(array(b)), False )
102+ assert_equal ( array(b) < 0, False )
33103
34104 if __name__ == '__main__':
35105 from unittest import main

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t