ref: 19f1dc9b5dd9997b2b152cebacb9ff8112adc323
dir: /tests/python/src/onset/peakpick.py/
from template import aubio_unit_template
from localaubio import *
buf_size = 7
channels = 1
class peakpick_unit(aubio_unit_template):
def setUp(self):
self.o = new_aubio_peakpicker(0.1)
pass
def tearDown(self):
del_aubio_peakpicker(self.o)
pass
def test_peakpick(self):
""" create and delete peakpick """
pass
def test_peakpick_zeroes(self):
""" check peakpick run on a vector full of zero returns no peak. """
self.assertEqual(0., aubio_peakpick_pimrt_getval(self.o))
def test_peakpick_impulse(self):
""" check peakpick detects a single impulse as a peak. """
""" check two consecutive peaks are detected as one. """
#print
for index in range(0,buf_size-1):
input = new_fvec(buf_size, channels)
fvec_write_sample(input, 1000., 0, index)
fvec_write_sample(input, 1000./2, 0, index+1)
#print "%2s" % index, aubio_peakpick_pimrt(input, self.o), "|",
#for i in range(buf_size): print fvec_read_sample(input, 0, i),
#print
del_fvec(input)
def test_peakpick_consecutive_peaks(self):
""" check two consecutive peaks are detected as one. """
#print
for index in range(0,buf_size-4):
input = new_fvec(buf_size, channels)
fvec_write_sample(input, 1000./2, 0, index)
fvec_write_sample(input, 1000., 0, index+1)
fvec_write_sample(input, 1000., 0, index+3)
fvec_write_sample(input, 1000./2, 0, index+4)
peak_pick_result = aubio_peakpick_pimrt(input, self.o)
if index == 2: self.assertEqual(1., peak_pick_result)
else: self.assertEqual(0., peak_pick_result)
#print "%2s" % index, peak_pick_result, "|",
#for i in range(buf_size): print fvec_read_sample(input, 0, i),
#print
del_fvec(input)
for index in range(buf_size-4,buf_size-1):
input = new_fvec(buf_size, channels)
fvec_write_sample(input, 1000./2, 0, index)
fvec_write_sample(input, 1000., 0, index+1)
#print "%2s" % index, aubio_peakpick_pimrt(input, self.o), "|",
#for i in range(buf_size): print fvec_read_sample(input, 0, i),
#print
del_fvec(input)
def test_peakpick_set_threshold(self):
""" test aubio_peakpicker_set_threshold """
new_threshold = 0.1
aubio_peakpicker_set_threshold(self.o, new_threshold)
self.assertCloseEnough(new_threshold, aubio_peakpicker_get_threshold(self.o))
def test_peakpick_get_threshold(self):
""" test aubio_peakpicker_get_threshold """
new_threshold = aubio_peakpicker_get_threshold(self.o)
aubio_peakpicker_set_threshold(self.o, new_threshold)
self.assertCloseEnough(new_threshold, aubio_peakpicker_get_threshold(self.o))
if __name__ == '__main__':
unittest.main()