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)),
     )