File size: 1,731 Bytes
aca03d2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import pytest
from app.services.cache_layer import make_cache_key, compute_embedding, cosine_similarity


class TestCacheLayer:
    def test_make_cache_key_deterministic(self):
        messages = [{"role": "user", "content": "hello"}]
        k1 = make_cache_key("gpt-4", messages)
        k2 = make_cache_key("gpt-4", messages)
        assert k1 == k2

    def test_make_cache_key_diff_model(self):
        messages = [{"role": "user", "content": "hello"}]
        k1 = make_cache_key("gpt-4", messages)
        k2 = make_cache_key("gpt-3.5", messages)
        assert k1 != k2

    def test_make_cache_key_diff_messages(self):
        k1 = make_cache_key("gpt-4", [{"role": "user", "content": "hello"}])
        k2 = make_cache_key("gpt-4", [{"role": "user", "content": "world"}])
        assert k1 != k2

    def test_compute_embedding_length(self):
        emb = compute_embedding("test query")
        assert len(emb) == 256

    def test_compute_embedding_consistency(self):
        e1 = compute_embedding("same text")
        e2 = compute_embedding("same text")
        assert e1 == e2

    def test_cosine_similarity_identical(self):
        emb = compute_embedding("test")
        assert abs(cosine_similarity(emb, emb) - 1.0) < 0.001

    def test_cosine_similarity_similar_texts(self):
        a = compute_embedding("hello world")
        b = compute_embedding("hello world")
        assert abs(cosine_similarity(a, b) - 1.0) < 0.001

    def test_cosine_similarity_different_texts(self):
        a = compute_embedding("hello world foo bar baz")
        b = compute_embedding("completely unrelated text here")
        # Should be less similar than identical
        sim = cosine_similarity(a, b)
        assert sim < 1.0