Mercurial > hg > auditok
changeset 130:7c5f325dae7a
Add tests for _load_wave with channel mixing
author | Amine Sehili <amine.sehili@gmail.com> |
---|---|
date | Fri, 08 Feb 2019 20:51:36 +0100 |
parents | fb31a7250402 |
children | 92a6f1d5f265 |
files | tests/test_io.py |
diffstat | 1 files changed, 25 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test_io.py Thu Feb 07 20:26:33 2019 +0100 +++ b/tests/test_io.py Fri Feb 08 20:51:36 2019 +0100 @@ -468,6 +468,31 @@ self.assertEqual(data, expected) @genty_dataset( + mono=("mono_400Hz", (400,)), + three_channel=("3channel_400-800-1600Hz", (400, 800, 1600)), + ) + def test_load_wave_mix(self, filename_suffix, frequencies): + sampling_rate = 16000 + sample_width = 2 + channels = len(frequencies) + mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies] + fmt = DATA_FORMAT[sample_width] + expected = _array_to_bytes( + array( + fmt, + (sum(samples) // channels for samples in zip(*mono_channels)), + ) + ) + filename = "tests/data/test_16KHZ_{}.wav".format(filename_suffix) + audio_source = _load_wave(filename, use_channel="mix") + mixed = audio_source._buffer + self.assertEqual(mixed, expected) + self.assertIsInstance(audio_source, BufferAudioSource) + self.assertEqual(audio_source.sampling_rate, sampling_rate) + self.assertEqual(audio_source.sample_width, sample_width) + self.assertEqual(audio_source.channels, 1) + + @genty_dataset( mono=("mono_400Hz.wav", (400,)), three_channel=("3channel_400-800-1600Hz.wav", (400, 800, 1600)), )