"""794-2b 지킴 — 품셈 판 표지 · 잔토처리 단독 GC. ① 로직 줄 칸 「개정」 = 빌더(`build_로직_개정.py`)가 원문 절 머리에서 뽑은 값과 같음 · 채움 수. ② 셈 값 그대로 — 791-1 지문 fixture 가 지금 마스터 지문(건너뜀 없이 1,515 전후 같음을 돎). ③ 근거 제안 까닭 판 번호 시험은 809-1 에서 지움(근거 → 기초 제안 길 걷음 · 요구 703). ④ 잔토처리(인력) GC001194 = ㎥당 보통인부 0.2 인(건설 공통 3-2-1 비고). """ import importlib import json from M01_MasterData import M01_MasterData_Store as m01 # scripts 길을 둠 rev = importlib.import_module("build_로직_개정") mf = importlib.import_module("master_formula") fp = importlib.import_module("test_791_1_engine_semantics") def _rows() -> dict: files, _ = m01.loaded() return {r["키"]: r for d in files.values() if d.get("그룹") == "로직" for r in d["줄"]} def test_개정_칸_빌더와_같음(): got = rev.build(check=True) assert got["바뀐 파일"] == 0 # 마스터 = 빌더 값(손 입력 없음) assert got["GC 채움"] + got["GF 채움"] >= 1237 and got["GF 빈칸"] == 0 rows = _rows() assert rows["GC000083"]["개정"] == [2008, 2020, 2025] # 3-2-1('08, '20, 25년 보완) assert 2024 in rows["GC000207"]["개정"] # 6-2-3 철근 현장조립 '24 보완 assert rows["GF000123"]["개정"] == [2026] # 산림 2026-01-01 제정 cols = list(rows["GC000083"]) assert cols.index("개정") == cols.index("출처") + 1 # _틀.md 7 장 열 차례 def test_셈_지문_건너뜀_없음(): saved = json.loads(fp.FINGER.read_text(encoding="utf-8")) assert saved["마스터"] == fp._master_hash() assert len(saved["결과"]) >= 1516 def test_잔토처리_단독(): _, whole = m01.loaded() row = _rows()["GC001194"] assert (row["원문번호"], row["결과단위"]) == ("3-2-1", "원/㎥") raw = mf.run(whole, "GC001194", {}) (line,) = raw["줄"] assert (line["이름"], float(line["수량"])) == ("보통인부", 0.2)