+57
-33
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user