Ziggy
Awaaz: consumer voice coaching — session-scoped history, config-aware analyzer filters, softened narratives, Awaaz design identity
2a762ba | """Unit tests for audio validation.""" | |
| import numpy as np | |
| import pytest | |
| from app.audio.validator import validate_audio_array | |
| def test_empty_audio_fails(): | |
| result = validate_audio_array(np.array([]), 16000) | |
| assert not result.valid | |
| def test_silent_audio_fails(): | |
| audio = np.zeros(16000 * 3, dtype=np.float32) | |
| result = validate_audio_array(audio, 16000) | |
| assert not result.valid | |
| def test_valid_audio_passes(): | |
| t = np.linspace(0, 3, 16000 * 3) | |
| audio = 0.3 * np.sin(2 * np.pi * 440 * t).astype(np.float32) | |
| result = validate_audio_array(audio, 16000) | |
| assert result.valid | |
| assert result.details["duration"] == pytest.approx(3.0, abs=0.1) | |