spb/countryatlas
Public
TypeScript 57%
Python 38.6%
JavaScript 3.6%
CSS 0.6%
1from __future__ import annotations23from countryatlas import registry456def test_registry_loads() -> None:7 cs = registry.countries()8 assert len(cs) >= 2009 assert all(c.iso3 == c.id for c in cs)10 slugs = {c.slug for c in cs}11 assert len(slugs) == len(cs)12 inds = registry.indicators()13 assert len(inds) >= 20014 assert all(i.topic in registry.TOPICS for i in inds)15 gs = registry.groups_by_id()16 assert "world" in gs and len(gs["world"].members) == len(cs)17 assert "oecd" in gs and "CAN" in gs["oecd"].members181920def test_lookup_maps_codes() -> None:21 lk = registry.lookup()22 assert lk.from_iso3("CAN") == "CAN"23 assert lk.from_iso3("UNK") == "XKX"24 assert lk.from_iso3("WLD") is None25 assert lk.from_iso3("") is None26 assert lk.from_iso2("GB") == "GBR"27 assert lk.from_name("Viet Nam") == "VNM"282930def test_source_specs_filter() -> None:31 wb = registry.source_specs(connector="worldbank")32 assert wb and all(s.connector == "worldbank" for s in wb)33 one = registry.source_specs(indicator="gdp-per-capita")34 assert {s.indicator_id for s in one} == {"gdp-per-capita"}35 assert one[0].priority <= one[-1].priority363738def test_similarity_and_insights_registries_reference_known_indicators() -> None:39 from countryatlas.pipeline.insights import insight_templates40 from countryatlas.pipeline.similarity import similarity_config4142 known = set(registry.indicators_by_id())43 cfg = similarity_config()44 assert set(cfg["modes"]) == {"overall", "economic", "demographic", "energy", "social"}45 for spec in cfg["modes"].values():46 for f in spec["features"]:47 assert f["indicator"] in known, f48 assert len(cfg["dna"]) == 949 templates = insight_templates()50 assert len(templates) >= 1251 assert all(t["indicator"] in known for t in templates)52