medilang-tech / tests /test_cameroon_data.py
Dama03's picture
first push of the AI
411a994
raw
history blame
1.52 kB
import os
import pandas as pd
from app.services.cameroon_data import CameroonMedicalData
def test_service_handles_missing_csv(tmp_path):
svc = CameroonMedicalData(csv_path=str(tmp_path / "missing.csv"))
svc.clean()
assert svc.stats_overview()["total_rows"] == 0
def test_basic_stats(tmp_path):
# Build a tiny CSV
df = pd.DataFrame([
{"summary_id": "1", "patient_id": "p1", "patient_age": 25, "patient_gender": "M", "diagnosis": "Paludisme",
"body_temp_c": 38.5, "blood_pressure_systolic": 120, "heart_rate": 90, "summary_text": "Fievre et frissons",
"date_recorded": "2024-01-10"},
{"summary_id": "2", "patient_id": "p2", "patient_age": 7, "patient_gender": "F", "diagnosis": "Typhoide",
"body_temp_c": 39.2, "blood_pressure_systolic": 110, "heart_rate": 95, "summary_text": "Fièvre, maux de ventre",
"date_recorded": "2024-02-15"}
])
csv_path = tmp_path / "clinical_summaries.csv"
df.to_csv(csv_path, index=False)
svc = CameroonMedicalData(csv_path=str(csv_path))
svc.clean()
ov = svc.stats_overview()
assert ov["total_rows"] == 2
assert "paludisme" in ov["top_diagnoses"] or "typhoide" in ov["top_diagnoses"]
disease = svc.stats_disease("paludisme")
assert disease["disease"] == "paludisme"
seasonal = svc.seasonal_patterns()
assert isinstance(seasonal, dict)
age_gender = svc.age_gender_distribution()
assert "age_buckets" in age_gender and "gender_distribution" in age_gender