ref: e836160a1cec3b83c7f526e5ce350f55600e4dbf
dir: /python/tests/test_musicutils.py/
#! /usr/bin/env python
import numpy as np
from numpy.testing import TestCase
from numpy.testing 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__':
from unittest import main
main()