Commit Graph

3 Commits

Author SHA1 Message Date
Hermes Agent
2baa8c2422 fix(crowd_db): 27省全部usable+后测试期望同步 + source_url http→https
- 山西/天津 source_url 从 http:// 改为 https://(可信来源入口规范)
- test_loader_low_confidence_warning: 改用 monkeypath 注入 0.45 数据(27省已无 low confidence)
- test_filter_provinces_*: 动态断言取代硬编码列表,避免未来数据升级再次回归
- test_cross_province_beijing_at_690: 改用实际存在的 北京大学-临床医学 组合
- 新增 CROWD_DB_NATIONALIZATION_SOURCE_OF_TRUTH.md + 全国高信任建设计划文档

现状: HIGH=7 / USABLE=20 / LOW=0 (27省口径)
2026-06-24 22:29:59 +08:00
coder
1ce861166f feat(crowd-db): T2.5 扎堆检测单元测试 (覆盖率 93% ≥80%)
PRD 用例: 高风险识别 / 替代方案 / 跨省份 / 异常处理
- 新增 20 个 test_use_case_* 用例锚定 PRD 4 项要求
- 显式覆盖 freq=4 高风险完整字段、alt score 0-100、广东 vs 湖南跨省隔离
- 11 个异常处理用例覆盖 name=None/非 dict 元素/frequency 异常/loader 抛错

根因加固: detector 主循环加入 3 层防御
- isinstance(rec, dict) 防止 TypeError
- isinstance(rec_name, str) 防止 AttributeError on .strip()
- try/except frequency 防止 ValueError
- _normalize_entry 对 truthy 非 str school 走 str() 兜底

质量门禁
- crowd_detector.py 覆盖率 93% (101 stmts / 7 missed 仅 __main__ 块)
- test_crowd_detector 55/55 passed
- data/crowd_db/ 全量 125/125
- ruff check data/crowd_db/ All checks passed
- 仓库全量 249 passed (排除既有 orders/masking 失败)

Refs: docs/IMPLEMENTATION_PLAN_v2.md T2.5
2026-06-12 16:46:42 +08:00
Hermes Agent
55bf84610b feat(crowd_db): T2.3 扎堆检测算法
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled
- 新增 detect_crowd_risk(plan, user_score, province) 入口
- 遍历方案每条志愿,匹配该分数段内 crowd_db 记录
- 风险等级:frequency >=4 high / 2-3 medium / 1 low / 0 跳过
- 院校模糊匹配(互相包含),专业可选
- 支持 dict / CrowdRecommendation / tuple / list 多种 plan 形态
- 支持注入 loader 便于测试,结果按 frequency 降序
- 20 个单元测试覆盖各分支(136/136 全套通过)
2026-06-12 11:00:03 +08:00