diff options
Diffstat (limited to 'python/tests/test_musicutils.py')
-rwxr-xr-x | python/tests/test_musicutils.py | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/python/tests/test_musicutils.py b/python/tests/test_musicutils.py new file mode 100755 index 0000000..dd54abb --- /dev/null +++ b/python/tests/test_musicutils.py @@ -0,0 +1,88 @@ +#! /usr/bin/env python + +from unittest import main +import numpy as np +from numpy.testing import TestCase +from numpy.testing.utils import assert_equal, assert_almost_equal +from aubio import window, level_lin, db_spl, silence_detection, level_detection +from aubio import fvec, float_type + +class aubio_window(TestCase): + + def test_accept_name_and_size(self): + window("default", 1024) + + def test_fail_name_not_string(self): + with self.assertRaises(TypeError): + window(10, 1024) + + def test_fail_size_not_int(self): + with self.assertRaises(TypeError): + window("default", "default") + + def test_compute_hanning_1024(self): + size = 1024 + aubio_window = window("hanning", size) + numpy_window = .5 - .5 * np.cos(2. * np.pi * np.arange(size) / size) + assert_almost_equal(aubio_window, numpy_window) + +class aubio_level_lin(TestCase): + def test_accept_fvec(self): + level_lin(fvec(1024)) + + def test_fail_not_fvec(self): + with self.assertRaises(ValueError): + level_lin("default") + + def test_zeros_is_zeros(self): + assert_equal(level_lin(fvec(1024)), 0.) + + def test_minus_ones_is_one(self): + assert_equal(level_lin(-np.ones(1024, dtype = float_type)), 1.) + +class aubio_db_spl(TestCase): + def test_accept_fvec(self): + db_spl(fvec(1024)) + + def test_fail_not_fvec(self): + with self.assertRaises(ValueError): + db_spl("default") + + def test_zeros_is_inf(self): + assert np.isinf(db_spl(fvec(1024))) + + def test_minus_ones_is_zero(self): + assert_equal(db_spl(-np.ones(1024, dtype = float_type)), 0.) + +class aubio_silence_detection(TestCase): + def test_accept_fvec(self): + silence_detection(fvec(1024), -70.) + + def test_fail_not_fvec(self): + with self.assertRaises(ValueError): + silence_detection("default", -70) + + def test_zeros_is_one(self): + assert silence_detection(fvec(1024), -70) == 1 + + def test_minus_ones_is_zero(self): + from numpy import ones + assert silence_detection(ones(1024, dtype = float_type), -70) == 0 + +class aubio_level_detection(TestCase): + def test_accept_fvec(self): + level_detection(fvec(1024), -70.) + + def test_fail_not_fvec(self): + with self.assertRaises(ValueError): + level_detection("default", -70) + + def test_zeros_is_one(self): + assert level_detection(fvec(1024), -70) == 1 + + def test_minus_ones_is_zero(self): + from numpy import ones + assert level_detection(ones(1024, dtype = float_type), -70) == 0 + +if __name__ == '__main__': + main() |