File size: 703 Bytes
26fe9a7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import pytest
from services.rag.chunk import split_text, create_chunks
from eval.metrics import calculate_recall, calculate_mrr

def test_split_text():
    text = "Line 1\nLine 2\nLine 3"
    chunks = split_text(text, chunk_size=10, chunk_overlap=0)
    assert len(chunks) > 1

def test_metrics_recall():
    retrieved = ["doc1_chunk1", "doc2_chunk1"]
    gold = ["doc1"]
    assert calculate_recall(retrieved, gold) == 1.0
    
    gold_fail = ["doc3"]
    assert calculate_recall(retrieved, gold_fail) == 0.0

def test_metrics_mrr():
    retrieved = ["doc1_chunk1", "doc2_chunk1"]
    gold = ["doc2"]
    # doc2 is at index 1 (rank 2). MRR = 1/2 = 0.5
    assert calculate_mrr(retrieved, gold) == 0.5