History

tests/test_{source,sink}.py: add sink, improve source, use sounds in python/tests/sounds

Paul Brossier committed 13 years ago

Commit e1bfde51 parent 143cc433 files · +104 −21Browse files

Showing the changes to python/tests/test_source.py (1 of 3 files). Show all

Unified · Split

python/tests/test_source.py+58−16
@@ -3,25 +3,67 @@ · 2 unmodified lines
33 from numpy.testing import TestCase, assert_equal, assert_almost_equal
44 from aubio import fvec, source
55 from numpy import array
6+from utils import list_all_sounds
67
7−path = "/Users/piem/archives/sounds/loops/drum_Chocolate_Milk_-_Ation_Speaks_Louder_Than_Words.wav"
8+list_of_sounds = list_all_sounds('sounds')
9+path = None
810
9−class aubio_filter_test_case(TestCase):
11+class aubio_source_test_case(TestCase):
1012
11− def test_members(self):
12− f = source(path)
13− print dir(f)
13+ def setUp(self):
14+ if not len(list_of_sounds): self.skipTest('add some sound files in \'python/tests/sounds\'')
1415
15− def test_read(self):
16− f = source(path)
17− total_frames = 0
18− while True:
19− vec, read = f()
20− total_frames += read
21− if read < f.hop_size: break
22− print "read", total_frames / float(f.samplerate), " seconds from", path
16+ def read_from_sink(self, f):
17+ total_frames = 0
18+ while True:
19+ vec, read = f()
20+ total_frames += read
21+ if read < f.hop_size: break
22+ print "read", "%.2fs" % (total_frames / float(f.samplerate) ),
23+ print "(", total_frames, "frames", "in",
24+ print total_frames / f.hop_size, "blocks", "at", "%dHz" % f.samplerate, ")",
25+ print "from", f.uri
2326
24−if __name__ == '__main__':
25− from unittest import main
26− main()
27+ def test_samplerate_hopsize(self):
28+ for p in list_of_sounds:
29+ for samplerate, hop_size in zip([0, 44100, 8000, 32000], [ 512, 512, 64, 256]):
30+ f = source(p, samplerate, hop_size)
31+ assert f.samplerate != 0
32+ self.read_from_sink(f)
33+
34+ def test_samplerate_none(self):
35+ for p in list_of_sounds:
36+ f = source(p)
37+ assert f.samplerate != 0
38+ self.read_from_sink(f)
39+
40+ def test_samplerate_0(self):
41+ for p in list_of_sounds:
42+ f = source(p, 0)
43+ assert f.samplerate != 0
44+ self.read_from_sink(f)
45+
46+ def test_wrong_samplerate(self):
47+ for p in list_of_sounds:
48+ try:
49+ f = source(p, -1)
50+ except Exception, e:
51+ print e
52+ else:
53+ self.fail('does not fail with wrong samplerate')
2754
55+ def test_wrong_hop_size(self):
56+ for p in list_of_sounds:
57+ f = source(p, 0, -1)
58+ print f.hop_size
59+
60+ def test_zero_hop_size(self):
61+ for p in list_of_sounds:
62+ f = source(p, 0, 0)
63+ assert f.samplerate != 0
64+ assert f.hop_size != 0
65+ self.read_from_sink(f)
66+
67+if __name__ == '__main__':
68+ from unittest import main
69+ 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