Add audio_signal_analysis/tests/test_core.py
This commit is contained in:
parent
77844d8849
commit
a14528ed83
1 changed files with 51 additions and 0 deletions
51
audio_signal_analysis/tests/test_core.py
Normal file
51
audio_signal_analysis/tests/test_core.py
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import pytest
|
||||
import numpy as np
|
||||
from audio_signal_analysis import core
|
||||
|
||||
|
||||
def make_audio_data(sample_count=10):
|
||||
# Erzeugt synthetische Audiodaten mit gleichmäßig verteilten Timestamps
|
||||
return [{
|
||||
'timestamp': f'2024-06-01T00:{i:02d}:00Z',
|
||||
'audio_level': float(i)
|
||||
} for i in range(sample_count)]
|
||||
|
||||
|
||||
def test_analyze_audio_signal_returns_float(mocker):
|
||||
# Mock der Temperaturdaten (internes Lesen wird ggf. innerhalb core realisiert)
|
||||
audio_data = make_audio_data(20)
|
||||
result = core.analyze_audio_signal(audio_data)
|
||||
assert isinstance(result, float), 'Rückgabewert muss float sein.'
|
||||
|
||||
|
||||
def test_analyze_audio_signal_value_range():
|
||||
audio_data = make_audio_data(15)
|
||||
corr = core.analyze_audio_signal(audio_data)
|
||||
# Erwartung: Wert liegt typischerweise zwischen -1 und 1
|
||||
assert -1.0 <= corr <= 1.0, 'Korrelationskoeffizient außerhalb des gültigen Bereichs.'
|
||||
|
||||
|
||||
def test_analyze_audio_signal_with_minimal_input():
|
||||
# Edge Case: Nur zwei Datenpunkte – minimale sinnvolle Menge zur Korrelation
|
||||
audio_data = make_audio_data(2)
|
||||
result = core.analyze_audio_signal(audio_data)
|
||||
assert isinstance(result, float)
|
||||
|
||||
|
||||
def test_analyze_audio_signal_invalid_input():
|
||||
# Fehlerhafte Eingabe (kein numerischer Pegel)
|
||||
invalid_data = [{'timestamp': '2024-06-01T00:00:00Z', 'audio_level': 'not_a_number'}]
|
||||
with pytest.raises((TypeError, ValueError)):
|
||||
core.analyze_audio_signal(invalid_data)
|
||||
|
||||
|
||||
def test_analyze_audio_signal_randomized():
|
||||
# Test mit zufallig generierten Audiopegeln, Erwartung: Ergebnis berechenbar
|
||||
np.random.seed(42)
|
||||
audio_data = [{
|
||||
'timestamp': f'2024-06-01T00:{i:02d}:00Z',
|
||||
'audio_level': float(val)
|
||||
} for i, val in enumerate(np.random.randn(50))]
|
||||
corr_val = core.analyze_audio_signal(audio_data)
|
||||
assert isinstance(corr_val, float)
|
||||
assert not np.isnan(corr_val)
|
||||
Loading…
Reference in a new issue