comparison tests/test_io.py @ 321:903b5e1e8af9

Clean up tests
author Amine Sehili <amine.sehili@gmail.com>
date Sat, 19 Oct 2019 15:01:38 +0100
parents 10b725735637
children 9f17aa9a4018
comparison
equal deleted inserted replaced
320:06a39e279cd7 321:903b5e1e8af9
6 import filecmp 6 import filecmp
7 from unittest import TestCase 7 from unittest import TestCase
8 from unittest.mock import patch, Mock 8 from unittest.mock import patch, Mock
9 from genty import genty, genty_dataset 9 from genty import genty, genty_dataset
10 from test_util import _sample_generator, _generate_pure_tone, PURE_TONE_DICT 10 from test_util import _sample_generator, _generate_pure_tone, PURE_TONE_DICT
11 from auditok.signal import FORMAT
11 from auditok.io import ( 12 from auditok.io import (
12 DATA_FORMAT,
13 AudioIOError, 13 AudioIOError,
14 AudioParameterError, 14 AudioParameterError,
15 BufferAudioSource, 15 BufferAudioSource,
16 RawAudioSource, 16 RawAudioSource,
17 WaveAudioSource, 17 WaveAudioSource,
222 self.assertIsInstance(audio_source, expected_class) 222 self.assertIsInstance(audio_source, expected_class)
223 self.assertEqual(audio_source.sampling_rate, 16000) 223 self.assertEqual(audio_source.sampling_rate, 16000)
224 self.assertEqual(audio_source.sample_width, 2) 224 self.assertEqual(audio_source.sample_width, 2)
225 self.assertEqual(audio_source.channels, len(frequencies)) 225 self.assertEqual(audio_source.channels, len(frequencies))
226 mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies] 226 mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies]
227 fmt = DATA_FORMAT[audio_source.sample_width] 227 fmt = FORMAT[audio_source.sample_width]
228 expected = array(fmt, _sample_generator(*mono_channels)).tobytes() 228 expected = array(fmt, _sample_generator(*mono_channels)).tobytes()
229 self.assertEqual(data, expected) 229 self.assertEqual(data, expected)
230 230
231 @genty_dataset( 231 @genty_dataset(
232 missing_sampling_rate=("sr",), 232 missing_sampling_rate=("sr",),
260 self.assertIsInstance(audio_source, expected_class) 260 self.assertIsInstance(audio_source, expected_class)
261 self.assertEqual(audio_source.sampling_rate, 16000) 261 self.assertEqual(audio_source.sampling_rate, 16000)
262 self.assertEqual(audio_source.sample_width, 2) 262 self.assertEqual(audio_source.sample_width, 2)
263 self.assertEqual(audio_source.channels, len(frequencies)) 263 self.assertEqual(audio_source.channels, len(frequencies))
264 mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies] 264 mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies]
265 fmt = DATA_FORMAT[audio_source.sample_width] 265 fmt = FORMAT[audio_source.sample_width]
266 expected = array(fmt, _sample_generator(*mono_channels)).tobytes() 266 expected = array(fmt, _sample_generator(*mono_channels)).tobytes()
267 self.assertEqual(data, expected) 267 self.assertEqual(data, expected)
268 268
269 @patch("auditok.io._WITH_PYDUB", True) 269 @patch("auditok.io._WITH_PYDUB", True)
270 @patch("auditok.io.BufferAudioSource") 270 @patch("auditok.io.BufferAudioSource")
298 three_channel=("3channel_400-800-1600Hz.raw", (400, 800, 1600)), 298 three_channel=("3channel_400-800-1600Hz.raw", (400, 800, 1600)),
299 ) 299 )
300 def test_save_raw(self, filename, frequencies): 300 def test_save_raw(self, filename, frequencies):
301 filename = "tests/data/test_16KHZ_{}".format(filename) 301 filename = "tests/data/test_16KHZ_{}".format(filename)
302 sample_width = 2 302 sample_width = 2
303 fmt = DATA_FORMAT[sample_width] 303 fmt = FORMAT[sample_width]
304 mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies] 304 mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies]
305 data = array(fmt, _sample_generator(*mono_channels)).tobytes() 305 data = array(fmt, _sample_generator(*mono_channels)).tobytes()
306 tmpfile = NamedTemporaryFile() 306 tmpfile = NamedTemporaryFile()
307 _save_raw(data, tmpfile.name) 307 _save_raw(data, tmpfile.name)
308 self.assertTrue(filecmp.cmp(tmpfile.name, filename, shallow=False)) 308 self.assertTrue(filecmp.cmp(tmpfile.name, filename, shallow=False))
314 def test_save_wave(self, filename, frequencies): 314 def test_save_wave(self, filename, frequencies):
315 filename = "tests/data/test_16KHZ_{}".format(filename) 315 filename = "tests/data/test_16KHZ_{}".format(filename)
316 sampling_rate = 16000 316 sampling_rate = 16000
317 sample_width = 2 317 sample_width = 2
318 channels = len(frequencies) 318 channels = len(frequencies)
319 fmt = DATA_FORMAT[sample_width] 319 fmt = FORMAT[sample_width]
320 mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies] 320 mono_channels = [PURE_TONE_DICT[freq] for freq in frequencies]
321 data = array(fmt, _sample_generator(*mono_channels)).tobytes() 321 data = array(fmt, _sample_generator(*mono_channels)).tobytes()
322 tmpfile = NamedTemporaryFile() 322 tmpfile = NamedTemporaryFile()
323 _save_wave(data, tmpfile.name, sampling_rate, sample_width, channels) 323 _save_wave(data, tmpfile.name, sampling_rate, sample_width, channels)
324 self.assertTrue(filecmp.cmp(tmpfile.name, filename, shallow=False)) 324 self.assertTrue(filecmp.cmp(tmpfile.name, filename, shallow=False))