35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from data.crowd_db.loader import CrowdDBLoader
|
|
|
|
|
|
def test_build_quality_summary_returns_expected_shape():
|
|
from data.crowd_db.quality_summary import build_quality_summary
|
|
|
|
summary = build_quality_summary(CrowdDBLoader(warn_low_confidence=False))
|
|
|
|
assert summary["total_provinces"] == 27
|
|
assert summary["by_quality_level"]
|
|
assert set(summary["by_quality_level"]).issuperset({"high", "usable", "skeleton"})
|
|
assert len(summary["provinces"]) == 27
|
|
first = summary["provinces"][0]
|
|
assert set(first).issuperset({
|
|
"province",
|
|
"confidence",
|
|
"quality_level",
|
|
"quality_label",
|
|
"data_year",
|
|
"source_type",
|
|
})
|
|
|
|
|
|
def test_quality_summary_cli_human_output(capsys):
|
|
from data.crowd_db.quality_summary import main
|
|
|
|
code = main(["--human"])
|
|
captured = capsys.readouterr()
|
|
assert code == 0
|
|
assert "province_count: 27" in captured.out
|
|
assert "quality_counts:" in captured.out
|
|
assert "湖南" in captured.out
|