Merge pull request #35 from JSchmie/tests_audio

Docstrings
This commit is contained in:
Tryndaron
2024-03-25 08:44:27 +00:00
committed by GitHub
+57 -33
View File
@@ -1,29 +1,28 @@
import pytest import pytest
#from scraibe import Transcriber
#from unittest.mock import patch, mock_open
#import unittest
#import os
from .audio import AudioProcessor from .audio import AudioProcessor
import torch import torch
DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
TEST_WAVEFORM = torch.tensor([]).to(DEVICE)
test_waveform = torch.tensor([]).to('cuda') TEST_SR = 16000
test_sr = 16000
SAMPLE_RATE = 16000 SAMPLE_RATE = 16000
NORMALIZATION_FACTOR = 32768 NORMALIZATION_FACTOR = 32768
@pytest.fixture @pytest.fixture
def probe_audio_processor(): 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: 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): 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: 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 isinstance(probe_audio_processor, AudioProcessor)
assert probe_audio_processor.waveform.device == test_waveform.device assert probe_audio_processor.waveform.device == TEST_WAVEFORM.device
assert torch.equal(probe_audio_processor.waveform, test_waveform) assert torch.equal(probe_audio_processor.waveform, TEST_WAVEFORM)
assert probe_audio_processor.sr == test_sr assert probe_audio_processor.sr == TEST_SR
def test_cut(): 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 start = 4
end = 7 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(): 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): with pytest.raises(ValueError):
AudioProcessor(test_waveform, [44100,48000]) AudioProcessor(TEST_WAVEFORM, [44100,48000])
def test_audio_processor_SAMPLE_RATE(): 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 assert probe_audio_processor.sr == SAMPLE_RATE