Spaces:
Running
Running
Download tests/test_decoder.py from kxmWebwe/trackembeddingapi: direct link, hf CLI and curl.
- Browser
- Download file 1.14 kB
-
https://huggingface.co/spaces/kxmWebwe/trackembeddingapi/resolve/main/tests/test_decoder.py
- Command line
-
hf download hf://spaces/kxmWebwe/trackembeddingapi/tests/test_decoder.py
-
curl -L -o test_decoder.py https://huggingface.co/spaces/kxmWebwe/trackembeddingapi/resolve/main/tests/test_decoder.py
1.14 kB
| from pathlib import Path | |
| import wave | |
| import numpy as np | |
| import pytest | |
| from openmusic_analysis.audio.decoder import AudioDecoder | |
| from openmusic_analysis.errors import AudioDecodeError | |
| def test_decoder_rejects_invalid_audio(tmp_path: Path): | |
| source = tmp_path / "invalid.mp3" | |
| source.write_bytes(b"not an audio file") | |
| with pytest.raises(AudioDecodeError): | |
| AudioDecoder(timeout_seconds=5).decode(source) | |
| def test_decoder_produces_canonical_mono_float32_pcm(tmp_path: Path): | |
| source = tmp_path / "valid.wav" | |
| samples = (np.sin(np.linspace(0, 10, 8_000)) * 20_000).astype("<i2") | |
| with wave.open(str(source), "wb") as output: | |
| output.setnchannels(1) | |
| output.setsampwidth(2) | |
| output.setframerate(8_000) | |
| output.writeframes(samples.tobytes()) | |
| decoded = AudioDecoder(canonical_sample_rate=16_000, timeout_seconds=5).decode(source) | |
| assert decoded.sample_rate == 16_000 | |
| assert decoded.waveform.dtype == np.float32 | |
| assert decoded.waveform.ndim == 1 | |
| assert decoded.waveform.size == pytest.approx(16_000, abs=2) | |
| assert decoded.metadata.source_sample_rate == 8_000 | |