"""품 할증 겹침 — 2026-09-14 브레인 672: 건설 공통 1-4-2 「할증의 중복가산요령」. 원문: 「W = 기본품 × (1 + a1 + a2 + a3 + … + an) · 단, 동일성격의 품할증요소의 이중적용은 불가함」 산림품셈 1-4 에는 겹침 규정이 없어 **교차 참조**로 건설 규정을 따름 — 합산은 이제 「우리가 둔 것」이 아니라 원문. 「동일성격」이 어느 계열끼리인지는 원문이 안 정함 → 막지 않고 설계자에게 그 단서를 그대로 보임. """ from __future__ import annotations from decimal import Decimal import B09_Estimation.B09_Estimation_LaborSurcharge as LS def test_여럿을_고르면_합산이고_근거는_건설_1_4_2() -> None: assert LS.COMBINE_RULE == "sum" picks = LS.parse_choices({"1-4-1": "1-4-1:0", "1-4-5": "1-4-5:1"}) # 10% · 5% assert LS.total_percent(picks)[0] == Decimal(15) note = LS.COMBINE_NOTE assert "1-4-2" in note and "1 + a1 + a2" in note and "교차 참조" in note, note assert "확정 대기" not in note and "우리가 그렇게" not in note, note def test_동일성격_이중적용_불가_단서를_보임() -> None: assert "동일성격" in LS.COMBINE_NOTE and "이중적용" in LS.COMBINE_NOTE assert "설계자" in LS.COMBINE_NOTE # 어느 계열이 동일성격인지는 원문이 안 정함