# HG changeset patch # User Amine Sehili # Date 1547586484 -3600 # Node ID 950cfd5ba9f2170a3a6dd95abcfaffd13cdf7475 # Parent 4a9e868a9444dcca46af7fb769aaf41afb955912 Add tests for _save_wave diff -r 4a9e868a9444 -r 950cfd5ba9f2 tests/test_io.py --- 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))