summaryrefslogtreecommitdiff
path: root/python/tests/test_musicutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests/test_musicutils.py')
-rwxr-xr-xpython/tests/test_musicutils.py88
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()