FinSight / tests /test_entity_resolver.py
Sanjam19's picture
Deploy FinSight demo (single-container Docker Space)
d4f8959 verified
Raw
History Blame Contribute Delete
1.4 kB
from backend.entity_resolver import resolve_entity, normalize_org_name, format_money
EXISTING = ["Apple", "HDFC Bank", "3M"]
def test_alias_table_resolves_ticker():
assert resolve_entity("AAPL", "ORG", EXISTING) == "ORG_Apple"
def test_legal_suffix_stripped():
assert resolve_entity("Apple Inc.", "ORG", EXISTING) == "ORG_Apple"
assert resolve_entity("HDFC Bank Limited", "ORG", EXISTING) == "ORG_HDFC Bank"
def test_short_name_not_mangled():
assert resolve_entity("3M Company", "ORG", EXISTING) == "ORG_3M"
def test_non_org_labels_pass_through():
assert resolve_entity("$394.3 billion", "MONEY", EXISTING).startswith("MONEY_")
def test_normalize_strips_trailing_suffixes_only():
assert normalize_org_name("Reliance Industries Limited") == "reliance"
# 'Industries' is a LEGAL_SUFFIXES entry, but only trailing words drop
assert normalize_org_name("Industries First Corp") == "industries first"
def test_format_money_inr_crore():
# 60,812 crore in absolute rupees
assert format_money(60_812 * 10_000_000, "INR") == "₹60,812.0 Cr"
def test_format_money_inr_lakh_crore():
assert "Lakh Cr" in format_money(2.7e13, "INR")
def test_format_money_usd():
assert format_money(394_300_000_000, "USD") == "$394.3B"
assert format_money(45_000_000, "USD") == "$45.0M"
def test_format_money_none():
assert format_money(None) == "N/A"