from review_agent.regulatory_info_package.services.field_merge import merge_fields def test_merge_fields_marks_missing_llm_only_and_conflict(): merged, summary = merge_fields( { "product_name": {"value": "规则产品", "evidence": "说明书", "confidence": 0.8, "label": "产品名称"}, "applicant_name": {"value": "", "evidence": "", "confidence": 0.0, "label": "申请人名称"}, "package_specification": {"value": "24人份/盒", "evidence": "表格", "confidence": 0.7, "label": "包装规格"}, }, { "intended_use": {"value": "用于检测", "evidence": "LLM", "confidence": 0.6, "label": "预期用途"}, "package_specification": {"value": "48人份/盒", "evidence": "LLM", "confidence": 0.6, "label": "包装规格"}, }, ) assert merged["applicant_name"].value == "/" assert merged["applicant_name"].highlight_reason == "missing" assert merged["intended_use"].highlight_reason == "llm_only" assert merged["package_specification"].value == "24人份/盒" assert merged["package_specification"].highlight_reason == "conflict" assert any(item["field_key"] == "applicant_name" for item in summary["missing_fields"]) assert len(summary["llm_only_fields"]) == 1 assert len(summary["conflict_fields"]) == 1