32 lines
1.5 KiB
Python
32 lines
1.5 KiB
Python
"""713-3 지킴 — 로직 목록 덧칸(묶음 · 작업량 부모 · 부르는/불리는 수 · 관련) · 정본 그대로 · 줄 수 그대로."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from M01_MasterData import M01_MasterData_Router as router
|
|
from M01_MasterData import M01_MasterData_Store_List as store_list
|
|
|
|
COLS = {"묶음", "묶음수", "작업량", "부모", "부르는수", "불리는수", "관련"}
|
|
|
|
|
|
def test_목록_줄_수_그대로_덧칸_다_있음() -> None:
|
|
got = router.get_logics()["logics"]
|
|
assert len(got) == 1469 # 묶음은 화면 접기만 — 목록 줄은 그대로
|
|
assert all(COLS <= set(x) for x in got)
|
|
|
|
|
|
def test_묶음_작업량_부르기() -> None:
|
|
more = store_list.extras()
|
|
assert sum(1 for v in more.values() if v["묶음"]) == 323 # 한 절에 로직 둘 넘음(조사 12-B ㉯)
|
|
work = {k for k, v in more.items() if v["작업량"]}
|
|
assert len(work) == 27
|
|
assert more["GF000102"]["부모"] == ["GF000103"] # 구조물터파기 작업량 → 단가 로직 밑
|
|
assert more["GC000268"]["불리는수"] >= 300 # 기계경비 로직
|
|
assert sum(1 for v in more.values() if v["부르는수"]) == 506
|
|
assert more["GC000294"]["관련"] == ["GC000292"] # 비고 「1-5-6(주③)」
|
|
|
|
|
|
def test_관련은_해석_글과_넓은_절을_뺌() -> None:
|
|
more = store_list.extras()
|
|
assert all(len(v["관련"]) <= store_list._WIDE for v in more.values())
|
|
assert not any(k in v["관련"] for k, v in more.items()) # 자기 자신 없음
|