diff --git a/scraibe/test/test_audio.py b/scraibe/test/test_audio.py index a0c37ad..6b46c1b 100644 --- a/scraibe/test/test_audio.py +++ b/scraibe/test/test_audio.py @@ -1,29 +1,28 @@ import pytest -#from scraibe import Transcriber -#from unittest.mock import patch, mock_open -#import unittest -#import os from .audio import AudioProcessor import torch - - -test_waveform = torch.tensor([]).to('cuda') -test_sr = 16000 +DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu") +TEST_WAVEFORM = torch.tensor([]).to(DEVICE) +TEST_SR = 16000 SAMPLE_RATE = 16000 NORMALIZATION_FACTOR = 32768 @pytest.fixture def probe_audio_processor(): - """_summary_ + """Fixture for creating an instance of the AudioProcessor class with test waveform and sample rate. + + This fixture is used to create an instance of the AudioProcessor class with a predfined test waveform and sample rate (TEST_SR). It returns the instantiated AudioProcessor , which can bes used as a + dependency in other test functions. + Returns: - _type_: _description_ + AudioProcessor (obj): An instance of the AudioProcessor class with the test waveform and sample rate. """ - return AudioProcessor(test_waveform, test_sr) + return AudioProcessor(TEST_WAVEFORM, TEST_SR) @@ -31,54 +30,79 @@ def probe_audio_processor(): def test_AudioProcessor_init(probe_audio_processor): - """_summary_ + """ + Test the initialization of the AudioProcessor class. + + This test verifies that the AUdioProcessor class is correctly initialized with the provided waveform and sample rate. It checks whether the instantiated AhdioProcessor object has the correct attributes + and whether the waveform and sample rate match the expected values. Args: - probe_audio_processor (_type_): _description_ + probe_audio_processor (obj): An instance of the AudioProcessor class to be tested. + + + Returns: + None + + + + """ assert isinstance(probe_audio_processor, AudioProcessor) - assert probe_audio_processor.waveform.device == test_waveform.device - assert torch.equal(probe_audio_processor.waveform, test_waveform) - assert probe_audio_processor.sr == test_sr + assert probe_audio_processor.waveform.device == TEST_WAVEFORM.device + assert torch.equal(probe_audio_processor.waveform, TEST_WAVEFORM) + assert probe_audio_processor.sr == TEST_SR def test_cut(): - """_summary_ + """Test the cut function of the AudioProcessor class. + + This test verifies that the cut function correctly extracts a segment of audio data from + the waveform, given start and end indices. It checks whether the size of the extracted segment matches + the expected size based on the provided start and end indices and the sample rate. + + Returns: + None + + """ - waveform = torch.Tensor(10, 3) - sr = 16000 + start = 4 end = 7 - assert AudioProcessor(waveform, sr).cut(start, end).size() == int((end - start) * test_sr) + assert AudioProcessor(TEST_WAVEFORM, TEST_SR).cut(start, end).size() == int((end - start) * TEST_SR) -""" def test_cut(probe_audio_processor): - start = 10 - end = 100 - test_segment = probe_audio_processor.cut(start, end) - print(test_segment) - erwartetes_segment = int((end - start) * test_sr) - print(test_segment.size()) - assert len(test_segment) == erwartetes_segment - """ + + def test_audio_processor_invalid_sr(): - """_summary_ + """Test the behavior of AudioProcessor when an invalid smaple rate is provided. + + This test verifies that the AudioProcessor constructor raises a ValueError when an invalid sample rate is provided. It uses the pytest.raises context manager to check if the ValueError is raised when initializing an + AudioProcessor object with an invalid sample rate. + + Returns: + None """ with pytest.raises(ValueError): - AudioProcessor(test_waveform, [44100,48000]) + AudioProcessor(TEST_WAVEFORM, [44100,48000]) def test_audio_processor_SAMPLE_RATE(): - """_summary_ + """Test the default sample rate of the AudioProcessor class. + + This test verifies that the default sample rate of the AudioProcessor class matches the expected value defined by the constant SAMPLE_RATE. It instantiates an AudioProcessor object with a test waveform + and checks whether the sample rate attribute (sr) of the AudioProcessor object equals the predefined constant SAMPLE_RATE. + + Returns: + None """ - probe_audio_processor = AudioProcessor(test_waveform) + probe_audio_processor = AudioProcessor(TEST_WAVEFORM) assert probe_audio_processor.sr == SAMPLE_RATE