Spaces:
Running on Zero
Running on Zero
| """The synthesized audio returns valid, non-trivial WAV bytes.""" | |
| import io | |
| import wave | |
| from sting import (chime_wav_bytes, flatline_wav_bytes, heartbeat_wav_bytes, | |
| menu_loop_wav_bytes, sigh_wav_bytes, sting_wav_bytes, | |
| type_tick_wav_bytes) | |
| def _frames(b: bytes) -> int: | |
| with wave.open(io.BytesIO(b), "rb") as w: | |
| assert w.getnchannels() == 1 | |
| assert w.getsampwidth() == 2 | |
| return w.getnframes() | |
| def test_heartbeat_is_a_whole_number_of_beats_for_seamless_loop(): | |
| # 2 beats at 0.85 s => 1.7 s of audio at 22050 Hz | |
| frames = _frames(heartbeat_wav_bytes()) | |
| assert frames == int(22050 * 1.7) | |
| def test_sigh_is_a_few_seconds_of_audio(): | |
| assert _frames(sigh_wav_bytes()) == int(22050 * 2.6) | |
| def test_flatline_is_four_seconds(): | |
| assert _frames(flatline_wav_bytes()) == int(22050 * 4.0) | |
| def test_existing_sounds_still_synthesize(): | |
| assert len(sting_wav_bytes()) > 1000 | |
| assert len(chime_wav_bytes(0)) > 500 | |
| def test_menu_loop_is_valid_wav(): | |
| b = menu_loop_wav_bytes() | |
| assert len(b) > 2000 | |
| assert _frames(b) > int(22050 * 7) | |
| def test_type_tick_is_a_short_valid_wav(): | |
| b = type_tick_wav_bytes() | |
| assert len(b) > 400 # real audio, not empty | |
| assert _frames(b) < int(22050 * 0.2) # a short tick, well under 0.2s | |