Nexus / tests /test_proxy_router.py
abc1181's picture
REBUILD
aca03d2
Raw
History Blame Contribute Delete
1.93 kB
import pytest
from app.services.vision import has_images
from app.services.cache_layer import make_cache_key, compute_embedding, cosine_similarity
class TestProxyRouter:
def test_has_images_text_only(self):
messages = [{"role": "user", "content": "Hello"}]
assert has_images(messages) is False
def test_has_images_with_image_url(self):
messages = [{"role": "user", "content": [{"type": "image_url", "image_url": {"url": "https://example.com/img.jpg"}}]}]
assert has_images(messages) is True
def test_has_images_with_content_list_text(self):
messages = [{"role": "user", "content": [{"type": "text", "text": "describe this"}]}]
assert has_images(messages) is False
def test_make_cache_key_deterministic(self):
messages = [{"role": "user", "content": "hello"}]
key1 = make_cache_key("gpt-4", messages)
key2 = make_cache_key("gpt-4", messages)
assert key1 == key2
def test_make_cache_key_different_model(self):
messages = [{"role": "user", "content": "hello"}]
key1 = make_cache_key("gpt-4", messages)
key2 = make_cache_key("gpt-3.5", messages)
assert key1 != key2
def test_compute_embedding(self):
emb = compute_embedding("hello world")
assert len(emb) == 256
assert all(isinstance(v, float) for v in emb)
def test_cosine_similarity_identical(self):
emb = compute_embedding("test")
sim = cosine_similarity(emb, emb)
assert abs(sim - 1.0) < 0.001
def test_cosine_similarity_orthogonal(self):
a = [1.0] + [0.0] * 255
b = [0.0] * 256
b[0] = 1.0
sim = cosine_similarity(a, b)
assert abs(sim - 1.0) < 0.001
def test_cosine_similarity_different(self):
a = compute_embedding("hello world")
b = compute_embedding("goodbye universe")
assert cosine_similarity(a, b) < 0.99