source: python/tests/test_mathutils.py @ 143cc43

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

tests/test_mathutils.py: improve

  • Property mode set to 100755
File size: 3.3 KB
RevLine 
[6a50b9e]1#! /usr/bin/env python
2
3from numpy.testing import TestCase, run_module_suite
4from numpy.testing import assert_equal, assert_almost_equal
[143cc43]5from numpy import array, arange, isnan, isinf
[6a50b9e]6from aubio import bintomidi, miditobin, freqtobin, bintofreq, freqtomidi, miditofreq
[6514bb6]7from aubio import unwrap2pi
[143cc43]8from aubio import fvec
9from math import pi
[6a50b9e]10
11class aubio_mathutils(TestCase):
12
[6514bb6]13    def test_unwrap2pi(self):
[143cc43]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)
[6514bb6]29
[143cc43]30        try:
31            print unwrap2pi(["23.","24.",25.])
32        except TypeError:
33            pass
[6a50b9e]34
[143cc43]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()
[6a50b9e]41
[143cc43]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()
[6a50b9e]48
[143cc43]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()
[6a50b9e]55
56    def test_freqtomidi(self):
[143cc43]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 )
[6a50b9e]63
64    def test_miditofreq(self):
[143cc43]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 )
[6a50b9e]103
104if __name__ == '__main__':
105    from unittest import main
106    main()
Note: See TracBrowser for help on using the repository browser.