fix: resolve 3 MEDIUM code review findings
M1: Cache confusion-pair confidences in Path B (eliminate redundant
resolve_confusion_pair re-calls in _path_rule_engine)
M2: Resolve contradictions in Path C instead of hardcoding
resolved_count=0 in _path_llm_assisted
M4: Add DIVIDE_25 to contradiction pair coverage (50-25, 100-25)
and update test_contradiction_pairs_defined to verify all 3 variants
This commit is contained in:
@@ -327,15 +327,26 @@ def test_resolve_contradiction_csv():
|
||||
# ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
def test_contradiction_pairs_defined():
|
||||
"""CONTRADICTION_PAIRS 包含所有 8 个混淆对"""
|
||||
assert len(CONTRADICTION_PAIRS) == 8
|
||||
names = {p["name"] for p in CONTRADICTION_PAIRS}
|
||||
expected = {
|
||||
"""CONTRADICTION_PAIRS 包含所有混淆对,DIVIDE 全部 3 种变体"""
|
||||
assert len(CONTRADICTION_PAIRS) >= 8
|
||||
pairs_by_name: dict[str, list[dict]] = {}
|
||||
for p in CONTRADICTION_PAIRS:
|
||||
pairs_by_name.setdefault(p["name"], []).append(p)
|
||||
|
||||
expected_names = {
|
||||
"matching_vs_keybreak", "dedup_vs_nodedup", "validation_vs_keybreak",
|
||||
"csv_merge_vs_split", "simple_vs_two_stage", "pure_vs_mixed",
|
||||
"division_50_25_100", "mn_output_mode",
|
||||
}
|
||||
assert names == expected
|
||||
assert set(pairs_by_name.keys()) >= expected_names
|
||||
|
||||
# division 应有 3 个矛盾对 (50-100, 50-25, 100-25) 覆盖所有变体
|
||||
div_pairs = pairs_by_name.get("division_50_25_100", [])
|
||||
assert len(div_pairs) == 3, f"DIVIDE 应覆盖全部 3 组变体,当前 {len(div_pairs)} 组"
|
||||
div_types = {(p["type_a"], p["type_b"]) for p in div_pairs}
|
||||
assert ("DIVIDE_50", "DIVIDE_100") in div_types
|
||||
assert ("DIVIDE_50", "DIVIDE_25") in div_types
|
||||
assert ("DIVIDE_100", "DIVIDE_25") in div_types
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user