changeset 110:950cfd5ba9f2

Add tests for _save_wave
author Amine Sehili <amine.sehili@gmail.com>
date Tue, 15 Jan 2019 22:08:04 +0100
parents 4a9e868a9444
children 85fbaf34c88b
files tests/test_io.py
diffstat 1 files changed, 24 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test_io.py	Tue Jan 15 21:18:12 2019 +0100
+++ b/tests/test_io.py	Tue Jan 15 22:08:04 2019 +0100
@@ -2,9 +2,16 @@
 import sys
 import math
 from array import array
+from tempfile import NamedTemporaryFile
+import filecmp
 from unittest import TestCase
 from genty import genty, genty_dataset
-from auditok.io import DATA_FORMAT, AudioParameterError, check_audio_data
+from auditok.io import (
+    DATA_FORMAT,
+    AudioParameterError,
+    check_audio_data,
+    _save_wave,
+)
 
 
 if sys.version_info >= (3, 0):
@@ -87,3 +94,19 @@
                 check_audio_data(data, sample_width, channels)
         else:
             self.assertIsNone(check_audio_data(data, sample_width, channels))
+
+    @genty_dataset(
+        mono=("mono_400Hz.wav", (400,)),
+        three_channel=("3channel_400-800-1600Hz.wav", (400, 800, 1600)),
+    )
+    def test_save_wave(self, filename, frequencies):
+        filename = "tests/data/test_16KHZ_{}".format(filename)
+        sampling_rate = 16000
+        sample_width = 2
+        channels = len(frequencies)
+        fmt = DATA_FORMAT[sample_width]
+        mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies]
+        data = _array_to_bytes(array(fmt, _sample_generator(*mono_channels)))
+        tmpfile = NamedTemporaryFile()
+        _save_wave(tmpfile.name, data, sampling_rate, sample_width, channels)
+        self.assertTrue(filecmp.cmp(tmpfile.name, filename, shallow=False))