fraudlens-ai / tests /test_document_agent.py
ab1659
FraudLens AI — NVIDIA GTC 2026 hackathon submission
ac29cdc
Raw
History Blame Contribute Delete
2.43 kB
"""Tests for the DocumentAgent."""
import pytest
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
from agents.document_agent import DocumentAgent, ClaimData
@pytest.fixture
def agent(patch_nim_client):
return DocumentAgent()
class TestClaimData:
def test_default_values(self):
cd = ClaimData()
assert cd.claimant_name == ""
assert cd.claim_amount == 0.0
assert cd.injuries_reported == []
def test_to_dict_structure(self):
cd = ClaimData(claimant_name="Test", claim_amount=5000)
d = cd.to_dict()
assert d["claimant"]["name"] == "Test"
assert d["claim"]["amount"] == 5000
class TestDocumentAgent:
def test_parse_amount(self, agent):
assert agent._parse_amount("$1,234.56") == 1234.56
assert agent._parse_amount("5000") == 5000.0
assert agent._parse_amount("invalid") == 0.0
assert agent._parse_amount("$0") == 0.0
def test_parse_llm_response_claimant(self, agent):
response = """
1. CLAIMANT INFORMATION:
- Full Name: John Doe
- Address: 123 Main St
- Phone Number: 555-1234
2. POLICY INFORMATION:
- Policy Number: POL-001
- Policy Type: auto
3. INCIDENT INFORMATION:
- Date of Incident: 2025-01-01
- Description: Rear-ended at intersection
4. CLAIM DETAILS:
- Claim Number: CLM-001
- Amount Claimed: $50,000
5. VEHICLE INFORMATION:
- Make: Toyota
- Model: Camry
- Year: 2022
"""
claim = agent._parse_llm_response(response)
assert claim.claimant_name == "John Doe"
assert claim.policy_number == "POL-001"
assert claim.incident_date == "2025-01-01"
assert claim.claim_amount == 50000.0
assert claim.vehicle_make == "Toyota"
def test_parse_llm_response_medical(self, agent):
response = """
6. MEDICAL INFORMATION:
- Injuries Reported: whiplash, back pain, neck strain
- Treatment Providers: Dr. Smith, QuickCare
- Medical Costs: $25,000
"""
claim = agent._parse_llm_response(response)
assert len(claim.injuries_reported) == 3
assert "whiplash" in claim.injuries_reported
assert claim.medical_costs == 25000.0
@pytest.mark.asyncio
async def test_process_returns_error_for_missing_file(self, agent):
result = await agent.process("/nonexistent/file.pdf")
assert result["status"] == "error"