项目文件夹

文件
wehub-resource-sync eec33d25b2
Build Wheel / build (3.11) (push) Failing after 1s
Build Wheel / build (3.12) (push) Failing after 0s
pre-commit / pre-commit (push) Failing after 1s
chore: import upstream snapshot with attribution
2026-07-13 12:29:08 +08:00

58 行
2.0 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
"""Unit tests for the SLERP interpolation math in speaker_embedding_interpolation.py."""
import sys
from pathlib import Path
import numpy as np
import pytest
# Import the slerp function from the example script.
_examples_dir = str(
Path(__file__).parent.parent.parent / "examples" / "online_serving" / "text_to_speech" / "qwen3_tts"
)
sys.path.insert(0, _examples_dir)
from speaker_embedding_interpolation import slerp # noqa: E402
pytestmark = [pytest.mark.core_model, pytest.mark.cpu]
class TestSlerp:
def test_endpoints(self):
"""t=0 returns v0, t=1 returns v1."""
v0 = np.random.randn(1024).astype(np.float64)
v1 = np.random.randn(1024).astype(np.float64)
np.testing.assert_allclose(slerp(v0, v1, 0.0), v0, atol=1e-6)
np.testing.assert_allclose(slerp(v0, v1, 1.0), v1, atol=1e-6)
def test_midpoint_unit_norm(self):
"""Midpoint of two unit vectors should also be approximately unit norm."""
v0 = np.random.randn(1024)
v0 /= np.linalg.norm(v0)
v1 = np.random.randn(1024)
v1 /= np.linalg.norm(v1)
mid = slerp(v0, v1, 0.5)
assert abs(np.linalg.norm(mid) - 1.0) < 0.05
def test_parallel_vectors_fallback(self):
"""Parallel vectors (omega~0) fall back to lerp without error."""
v0 = np.ones(1024)
v1 = np.ones(1024) * 1.001 # nearly parallel
result = slerp(v0, v1, 0.5)
expected = 0.5 * v0 + 0.5 * v1
np.testing.assert_allclose(result, expected, atol=1e-4)
def test_antiparallel_vectors(self):
"""Antiparallel vectors (omega~pi) should not produce NaN."""
v0 = np.ones(1024)
v1 = -np.ones(1024)
result = slerp(v0, v1, 0.5)
assert not np.any(np.isnan(result))
def test_output_shape_matches_input(self):
"""Output shape must match input shape."""
v0 = np.random.randn(2048)
v1 = np.random.randn(2048)
assert slerp(v0, v1, 0.3).shape == (2048,)