Spaces:
Running
Running
| import sys | |
| import numpy as np | |
| from hermesbody.main import audio_sample_to_pcm16_bytes, parse_args, pcm16_bytes_to_float32_audio, resolve_audio_backend | |
| def test_cli_parser_exposes_audio_transport_subcommands_without_optional_imports(monkeypatch): | |
| monkeypatch.setitem(sys.modules, "google.genai", None) | |
| monkeypatch.setitem(sys.modules, "websockets", None) | |
| server = parse_args(["gemini-server", "--host", "127.0.0.1", "--port", "8766", "--token", "test-token"]) | |
| client = parse_args(["reachy-audio-client", "--server", "ws://127.0.0.1:8766", "--token", "test-token"]) | |
| assert server.command == "gemini-server" | |
| assert server.host == "127.0.0.1" | |
| assert server.port == 8766 | |
| assert client.command == "reachy-audio-client" | |
| assert client.server == "ws://127.0.0.1:8766" | |
| def test_audio_backend_auto_defaults_to_packaged_mac_mini_bridge(monkeypatch): | |
| monkeypatch.delenv("HERMESBODY_AUDIO_WS_URL", raising=False) | |
| assert resolve_audio_backend("auto", "") == "gemini_ws" | |
| assert resolve_audio_backend("auto", "ws://10.0.0.192:8877") == "gemini_ws" | |
| assert resolve_audio_backend("gemini_ws", "") == "gemini_ws" | |
| def test_pcm_helpers_convert_reachy_float_audio_to_wire_pcm16_and_back(): | |
| sample = np.array([-1.0, 0.0, 1.0], dtype="float32") | |
| pcm = audio_sample_to_pcm16_bytes(sample) | |
| decoded = pcm16_bytes_to_float32_audio(pcm) | |
| assert len(pcm) == 6 | |
| assert decoded.dtype == np.float32 | |
| assert decoded[0] < -0.99 | |
| assert decoded[1] == 0.0 | |
| assert decoded[2] > 0.99 | |