ref: 31a5c405338cad0dd084411e6c9b6eeece8bae20
parent: 1164bcdf2dccde23ef4484a0ea276edcf14f5fce
author: Paul Brossier <piem@piem.org>
date: Sun Feb 23 11:39:25 EST 2014
python/tests/test_source.py: improve tests, add double close and do_multi
--- a/python/tests/test_source.py
+++ b/python/tests/test_source.py
@@ -8,11 +8,30 @@
list_of_sounds = list_all_sounds('sounds')
path = None
-class aubio_source_test_case(TestCase):
+class aubio_source_test_case_base(TestCase):
def setUp(self):
if not len(list_of_sounds): self.skipTest('add some sound files in \'python/tests/sounds\'')
+class aubio_source_test_case(aubio_source_test_case_base):
+
+ def test_close_file(self):
+ samplerate = 0 # use native samplerate
+ hop_size = 256
+ for p in list_of_sounds:
+ f = source(p, samplerate, hop_size)
+ f.close()
+
+ def test_close_file_twice(self):
+ samplerate = 0 # use native samplerate
+ hop_size = 256
+ for p in list_of_sounds:
+ f = source(p, samplerate, hop_size)
+ f.close()
+ f.close()
+
+class aubio_source_read_test_case(aubio_source_test_case_base):
+
def read_from_sink(self, f):
total_frames = 0
while True:
@@ -68,20 +87,19 @@
assert f.hop_size != 0
self.read_from_sink(f)
- def test_close_file(self):
- samplerate = 0 # use native samplerate
- hop_size = 256
- for p in list_of_sounds:
- f = source(p, samplerate, hop_size)
- f.close()
+class aubio_source_readmulti_test_case(aubio_source_read_test_case):
- def test_close_file_twice(self):
- samplerate = 0 # use native samplerate
- hop_size = 256
- for p in list_of_sounds:
- f = source(p, samplerate, hop_size)
- f.close()
- f.close()
+ def read_from_sink(self, f):
+ total_frames = 0
+ while True:
+ vec, read = f.do_multi()
+ total_frames += read
+ if read < f.hop_size: break
+ print "read", "%.2fs" % (total_frames / float(f.samplerate) ),
+ print "(", total_frames, "frames", "in",
+ print f.channels, "channels and",
+ print total_frames / f.hop_size, "blocks", "at", "%dHz" % f.samplerate, ")",
+ print "from", f.uri
if __name__ == '__main__':
from unittest import main