Mercurial > hg > auditok
changeset 317:18a9f0dcdaae
Add tests for AudioEnergyValidator
author | Amine Sehili <amine.sehili@gmail.com> |
---|---|
date | Fri, 18 Oct 2019 20:59:16 +0100 |
parents | b6c5125be036 |
children | bf4a8834c5ec |
files | tests/test_util.py |
diffstat | 1 files changed, 49 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test_util.py Thu Oct 17 21:21:29 2019 +0100 +++ b/tests/test_util.py Fri Oct 18 20:59:16 2019 +0100 @@ -1,5 +1,8 @@ +from unittest import TestCase import math from array import array +from genty import genty, genty_dataset +from auditok.util import AudioEnergyValidator from auditok.io import DATA_FORMAT @@ -49,3 +52,49 @@ for freq in (600, 1150, 2400, 7220) } ) + + +@genty +class TestAudioEnergyValidator(TestCase): + @genty_dataset( + mono_valid_uc_None=([350, 400], 1, None, True), + mono_valid_uc_any=([350, 400], 1, "any", True), + mono_valid_uc_0=([350, 400], 1, 0, True), + mono_valid_uc_mix=([350, 400], 1, "mix", True), + # previous cases are all the same since we have mono audio + mono_invalid_uc_None=([300, 300], 1, None, False), + stereo_valid_uc_None=([300, 400, 350, 300], 2, None, True), + stereo_valid_uc_any=([300, 400, 350, 300], 2, "any", True), + stereo_valid_uc_mix=([300, 400, 350, 300], 2, "mix", True), + stereo_valid_uc_avg=([300, 400, 350, 300], 2, "avg", True), + stereo_valid_uc_average=([300, 400, 300, 300], 2, "average", True), + stereo_valid_uc_mix_with_null_channel=( + [634, 0, 634, 0], + 2, + "mix", + True, + ), + stereo_valid_uc_0=([320, 100, 320, 100], 2, 0, True), + stereo_valid_uc_1=([100, 320, 100, 320], 2, 1, True), + stereo_invalid_uc_None=([280, 100, 280, 100], 2, None, False), + stereo_invalid_uc_any=([280, 100, 280, 100], 2, "any", False), + stereo_invalid_uc_mix=([400, 200, 400, 200], 2, "mix", False), + stereo_invalid_uc_0=([300, 400, 300, 400], 2, 0, False), + stereo_invalid_uc_1=([400, 300, 400, 300], 2, 1, False), + zeros=([0, 0, 0, 0], 2, None, False), + ) + def test_audio_energy_validator( + self, data, channels, use_channel, expected + ): + + data = array("h", data) + sample_width = 2 + energy_threshold = 50 + validator = AudioEnergyValidator( + energy_threshold, sample_width, channels, use_channel + ) + + if expected: + self.assertTrue(validator.is_valid(data)) + else: + self.assertFalse(validator.is_valid(data))