Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1
This commit is contained in:
@@ -14,6 +14,7 @@ from M01_MasterData import M01_MasterData_Store_Sheet as sheet # noqa: E402
|
||||
from M02_MasterTemplete import M02_Logic_Standard as standard # noqa: E402
|
||||
|
||||
msl = sheet.msl
|
||||
num = standard.labor_inputs._num # Decimal → JSON 수(두 길 같은 규칙)
|
||||
|
||||
|
||||
def _text(key: str) -> dict:
|
||||
@@ -36,6 +37,18 @@ def test_line_keys_and_bundle():
|
||||
assert any(line["묶음"] == "인력" for line in lines)
|
||||
|
||||
|
||||
def test_machine_spread():
|
||||
"""714-1b — 장비 줄 「펼침」 = 부른 기계경비 로직 계산서(조종원 · 연료 · 손료) · 시간당 계."""
|
||||
lines = _lines(_text("GF000103"))
|
||||
spread = next(line for line in lines if line.get("장비"))["펼침"]
|
||||
assert spread["키"].startswith("GC0002") and spread["단위"] == "시간"
|
||||
names = " ".join(one["이름"] for one in spread["줄"])
|
||||
assert "조종원" in names and "손료" in names
|
||||
sums = [v for v in spread["소계"].values() if v is not None]
|
||||
assert spread["계"] == sum(sums) and spread["계"] > 0
|
||||
assert not any(line.get("펼침") for line in lines if not line.get("장비"))
|
||||
|
||||
|
||||
def test_uses_follow_middle_values():
|
||||
"""중간값을 거슬러 입력까지 — 돌쌓기 석공 품은 높이 · 쌓기 · 돌 입력을 씀."""
|
||||
lines = _lines(_text("GF000219"))
|
||||
@@ -59,4 +72,4 @@ def test_two_routes_same_shape():
|
||||
for a, b in zip(m01, m02):
|
||||
assert set(b) == {"이름", "글", "금액", *msl.KEYS}
|
||||
assert a["이름"] == b["이름"]
|
||||
assert [a.get(k) for k in msl.KEYS] == [b.get(k) for k in msl.KEYS]
|
||||
assert num([a.get(k) for k in msl.KEYS]) == [b.get(k) for k in msl.KEYS]
|
||||
|
||||
Reference in New Issue
Block a user