Showing the changes to python (1 of 1 file). Show all
Unified · Split
| @@ -1,17 +1,31 @@ | ||
| 1 | 1 | #! /usr/bin/env python |
| 2 | 2 | |
| 3 | 3 | from numpy.testing import TestCase, assert_equal, assert_almost_equal |
| 4 | +from nose2.tools import params | |
| 4 | 5 | from aubio import fvec, source, sink |
| 5 | 6 | from numpy import array |
| 6 | 7 | from utils import list_all_sounds, get_tmp_sink_path, del_tmp_sink_path |
| 7 | 8 | |
| 8 | 9 | list_of_sounds = list_all_sounds('sounds') |
| 10 | +samplerates = [0, 44100, 8000, 32000] | |
| 11 | +hop_sizes = [512, 1024, 64] | |
| 12 | + | |
| 9 | 13 | path = None |
| 10 | 14 | |
| 11 | 15 | many_files = 300 # 256 opened files is too much |
| 12 | 16 | |
| 17 | +all_params = [] | |
| 18 | +for soundfile in list_of_sounds: | |
| 19 | + for hop_size in hop_sizes: | |
| 20 | + for samplerate in samplerates: | |
| 21 | + all_params.append((hop_size, samplerate, soundfile)) | |
| 22 | + | |
| 13 | 23 | class aubio_sink_test_case(TestCase): |
| 14 | 24 | |
| 25 | + def setUp(self): | |
| 26 | + if not len(list_of_sounds): | |
| 27 | + self.skipTest('add some sound files in \'python/tests/sounds\'') | |
| 28 | + | |
| 15 | 29 | def test_many_sinks(self): |
| 16 | 30 | from tempfile import mkdtemp |
| 17 | 31 | import os.path |
| @@ -29,43 +43,40 @@ class aubio_sink_test_case(TestCase): · 11 unmodified lines | ||
| 29 | 43 | g.close() |
| 30 | 44 | shutil.rmtree(tmpdir) |
| 31 | 45 | |
| 32 | − def test_read_and_write(self): | |
| 33 | − | |
| 34 | − if not len(list_of_sounds): | |
| 35 | − self.skipTest('add some sound files in \'python/tests/sounds\'') | |
| 36 | − | |
| 37 | − for path in list_of_sounds: | |
| 38 | − for samplerate, hop_size in zip([0, 44100, 8000, 32000], [512, 1024, 64, 256]): | |
| 39 | − f = source(path, samplerate, hop_size) | |
| 40 | − if samplerate == 0: samplerate = f.samplerate | |
| 41 | − sink_path = get_tmp_sink_path() | |
| 42 | − g = sink(sink_path, samplerate) | |
| 43 | − total_frames = 0 | |
| 44 | − while True: | |
| 45 | − vec, read = f() | |
| 46 | − g(vec, read) | |
| 47 | − total_frames += read | |
| 48 | − if read < f.hop_size: break | |
| 49 | − del_tmp_sink_path(sink_path) | |
| 46 | + @params(*all_params) | |
| 47 | + def test_read_and_write(self, hop_size, samplerate, path): | |
| 50 | 48 | |
| 51 | − def test_read_and_write_multi(self): | |
| 52 | − | |
| 53 | − if not len(list_of_sounds): | |
| 54 | − self.skipTest('add some sound files in \'python/tests/sounds\'') | |
| 49 | + try: | |
| 50 | + f = source(path, samplerate, hop_size) | |
| 51 | + except RuntimeError as e: | |
| 52 | + self.skipTest('failed opening with hop_s = {:d}, samplerate = {:d} ({:s})'.format(hop_size, samplerate, e)) | |
| 53 | + if samplerate == 0: samplerate = f.samplerate | |
| 54 | + sink_path = get_tmp_sink_path() | |
| 55 | + g = sink(sink_path, samplerate) | |
| 56 | + total_frames = 0 | |
| 57 | + while True: | |
| 58 | + vec, read = f() | |
| 59 | + g(vec, read) | |
| 60 | + total_frames += read | |
| 61 | + if read < f.hop_size: break | |
| 62 | + del_tmp_sink_path(sink_path) | |
| 55 | 63 | |
| 56 | − for path in list_of_sounds: | |
| 57 | − for samplerate, hop_size in zip([0, 44100, 8000, 32000], [512, 1024, 64, 256]): | |
| 58 | − f = source(path, samplerate, hop_size) | |
| 59 | − if samplerate == 0: samplerate = f.samplerate | |
| 60 | − sink_path = get_tmp_sink_path() | |
| 61 | − g = sink(sink_path, samplerate, channels = f.channels) | |
| 62 | − total_frames = 0 | |
| 63 | − while True: | |
| 64 | − vec, read = f.do_multi() | |
| 65 | − g.do_multi(vec, read) | |
| 66 | − total_frames += read | |
| 67 | − if read < f.hop_size: break | |
| 68 | − del_tmp_sink_path(sink_path) | |
| 64 | + @params(*all_params) | |
| 65 | + def test_read_and_write_multi(self, hop_size, samplerate, path): | |
| 66 | + try: | |
| 67 | + f = source(path, samplerate, hop_size) | |
| 68 | + except RuntimeError as e: | |
| 69 | + self.skipTest('failed opening with hop_s = {:d}, samplerate = {:d} ({:s})'.format(hop_size, samplerate, e)) | |
| 70 | + if samplerate == 0: samplerate = f.samplerate | |
| 71 | + sink_path = get_tmp_sink_path() | |
| 72 | + g = sink(sink_path, samplerate, channels = f.channels) | |
| 73 | + total_frames = 0 | |
| 74 | + while True: | |
| 75 | + vec, read = f.do_multi() | |
| 76 | + g.do_multi(vec, read) | |
| 77 | + total_frames += read | |
| 78 | + if read < f.hop_size: break | |
| 79 | + del_tmp_sink_path(sink_path) | |
| 69 | 80 | |
| 70 | 81 | def test_close_file(self): |
| 71 | 82 | samplerate = 44100 |
| @@ -83,5 +94,5 @@ class aubio_sink_test_case(TestCase): · 11 unmodified lines | ||
| 83 | 94 | del_tmp_sink_path(sink_path) |
| 84 | 95 | |
| 85 | 96 | if __name__ == '__main__': |
| 86 | − from unittest import main | |
| 97 | + from nose2 import main | |
| 87 | 98 | main() |