Skip to content

Commit aeac9f5

Browse files
committed
test: expand metrics.models tests (roundtrip + basics)
1 parent 12eb7a7 commit aeac9f5

1 file changed

Lines changed: 31 additions & 5 deletions

File tree

tests/test_metrics_models.py

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,35 @@
1-
import importlib
1+
from __future__ import annotations
22

3+
import json
4+
from dataclasses import asdict
35

4-
def test_import_metrics_models():
5-
mod = importlib.import_module("llm_observability_analytics.metrics.models")
6-
assert mod is not None
6+
from llm_observability_analytics.metrics.models import MetricRecord, AnalyticsSummary
77

88

9-
# TODO: add numeric helper tests with small sample inputs
9+
def test_metric_record_basic():
10+
mr = MetricRecord(metric_name="latency", metric_value=12.5, dimension_key="service", dimension_value="svc-a")
11+
assert mr.metric_name == "latency"
12+
assert mr.metric_value == 12.5
13+
14+
15+
def test_analytics_summary_roundtrip():
16+
s = AnalyticsSummary(
17+
request_count=10,
18+
retrieval_trace_count=4,
19+
latency_mean_ms=100.0,
20+
latency_p50_ms=90.0,
21+
latency_p95_ms=150.0,
22+
total_tokens=1234,
23+
average_tokens_per_request=123.4,
24+
retrieval_hit_count=3,
25+
grounded_response_count=7,
26+
ungrounded_response_count=3,
27+
feedback_count=2,
28+
)
29+
d = s.to_dict()
30+
assert d["request_count"] == 10
31+
# JSON roundtrip
32+
j = s.to_json()
33+
parsed = json.loads(j)
34+
assert parsed == asdict(s)
35+

0 commit comments

Comments
 (0)