Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_2
This commit is contained in:
@@ -5,7 +5,7 @@ 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 = {"묶음", "묶음수", "작업량", "부모", "부르는수", "불리는수", "관련"}
|
||||
COLS = {"묶음", "묶음수", "작업량", "부모", "부르는수", "불리는수", "관련", "인재경"}
|
||||
|
||||
|
||||
def test_목록_줄_수_그대로_덧칸_다_있음() -> None:
|
||||
@@ -24,9 +24,52 @@ def test_묶음_작업량_부르기() -> None:
|
||||
assert more["GC000268"]["불리는수"] >= 300 # 기계경비 로직
|
||||
assert sum(1 for v in more.values() if v["부르는수"]) == 506
|
||||
assert more["GC000294"]["관련"] == ["GC000292"] # 비고 「1-5-6(주③)」
|
||||
# 인재경 줄 수 = 712-1 묶음 파생 · 못 가른 「하위」 = 복합 하위 로직 부르기 31(조사 12-B ③4)
|
||||
assert sum(v["인재경"]["하위"] for v in more.values()) == 31
|
||||
assert more["GF000101"]["인재경"] == {"인력": 1, "재료": 0, "경비": 1, "하위": 0}
|
||||
|
||||
|
||||
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()) # 자기 자신 없음
|
||||
|
||||
|
||||
def test_화면_접기_같은_절_작업량_찾는_중엔_펼침() -> None:
|
||||
import json
|
||||
import shutil
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
if shutil.which("node") is None:
|
||||
pytest.skip("node 가 없음")
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
url = (root / "M01_MasterData/logic/M01_MasterData_logic_list_fold.ts").as_uri()
|
||||
src = f"""
|
||||
import {{ foldRows }} from "{url}";
|
||||
const items = [
|
||||
{{ key: "A", group: "f|9-12" }}, {{ key: "W", parents: ["A"] }},
|
||||
{{ key: "B", group: "f|9-12" }}, {{ key: "C", group: "f|9-12" }}, {{ key: "D" }},
|
||||
];
|
||||
const keys = (rows) => rows.map((r) => [r.item.key, r.depth, r.hidden ?? 0]);
|
||||
console.log(JSON.stringify({{
|
||||
shut: keys(foldRows(items, new Set(), false)),
|
||||
open: keys(foldRows(items, new Set(["A"]), false)),
|
||||
flat: keys(foldRows(items, new Set(), true)).length,
|
||||
}}));
|
||||
"""
|
||||
done = subprocess.run(
|
||||
["node", "--experimental-strip-types", "--input-type=module", "-e", src],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
encoding="utf-8",
|
||||
timeout=60,
|
||||
cwd=root,
|
||||
)
|
||||
assert done.returncode == 0, done.stderr
|
||||
got = json.loads(done.stdout)
|
||||
assert got["shut"] == [["A", 0, 3], ["D", 0, 0]] # 묶음 나머지 둘 + 작업량 하나 접힘
|
||||
assert got["open"] == [["A", 0, 3], ["W", 1, 0], ["B", 1, 0], ["C", 1, 0], ["D", 0, 0]]
|
||||
assert got["flat"] == 5
|
||||
|
||||
Reference in New Issue
Block a user