# HG changeset patch # User Amine Sehili # Date 1549201912 -3600 # Node ID 34435df8cf021b4848d2eaf5ffe4dffb44925226 # Parent 3728814e1233ecd91f09470c867458a21215ccdf Add tests for from_file with channel mixing diff -r 3728814e1233 -r 34435df8cf02 tests/test_io.py --- a/tests/test_io.py Sun Feb 03 14:17:14 2019 +0100 +++ b/tests/test_io.py Sun Feb 03 14:51:52 2019 +0100 @@ -247,6 +247,40 @@ self.assertEqual(data, expected) @genty_dataset( + raw_mono=("raw", "mono_400Hz", (400,)), + raw_3channel=("raw", "3channel_400-800-1600Hz", (400, 800, 1600)), + wav_mono=("wav", "mono_400Hz", (400,)), + wav_3channel=("wav", "3channel_400-800-1600Hz", (400, 800, 1600)), + ) + def test_from_file_multichannel_audio_mix( + self, audio_format, filename_suffix, frequencies + ): + sampling_rate = 16000 + sample_width = 2 + channels = len(frequencies) + mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies] + channels = len(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_{}.{}".format( + filename_suffix, audio_format + ) + audio_source = from_file( + filename, + use_channel="mix", + sampling_rate=sampling_rate, + sample_width=2, + channels=channels, + ) + mixed = audio_source._buffer + self.assertEqual((mixed), expected) + + @genty_dataset( mono=("mono_400Hz.wav", (400,)), three_channel=("3channel_400-800-1600Hz.wav", (400, 800, 1600)), )