feat(800-4): 소계 · 합계를 기준 단가산출별 묶음으로 — 가. 이름 → 노 · 재 · 경 → 소 계 · 맨 끝 소 계(묶음 소계를 더한 식) · 블록 식 줄 아래 · 블록 줄 곁 열쇠 글 걷음
- 수식 영역: 블록 묶음은 그 블록 식 줄 바로 아래(createEqChain after) · 남은 묶음 · 소 계 · 끝수 · 합계는 맨 끝 - 금액 셈 그대로(보이기만) · 묶음 소계 합 + 끝수 = 합계 시험 추가(test_800_2) - 정의 영역: 로직 부르기 정의의 이름 되풀이 걷음 · 상수 연결 설명 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -94,6 +94,8 @@ def definitions(lines: list[dict], row: dict, rows: list[dict], unused) -> list[
|
||||
name, link = key[2:].strip("'"), f"호표 줄 금액 — {key[2:].strip(chr(39))}"
|
||||
else:
|
||||
link = _link({**node, "갈래": kind}, specs.get(key), leaf.get(key))
|
||||
if kind == "블록" and not leaf.get(key):
|
||||
link = "로직 부르기" # 이름이 곧 그 로직 — 되풀이 안 함
|
||||
name = (look.get("이름") or key) if mine else look.get("이름") or ""
|
||||
name = node.get("칸") or name if kind == "찾기" else name
|
||||
one = {
|
||||
|
||||
@@ -95,3 +95,28 @@ def test_candidates():
|
||||
assert eq.links({"갈래": "요소", "검색": "형틀목공", "분류": "인력"})["후보"]
|
||||
assert eq.links({"갈래": "로직", "검색": "합판거푸집", "분류": ""})["후보"]
|
||||
assert whole is not None
|
||||
|
||||
|
||||
def test_groups_add_up_to_total():
|
||||
"""800-4 — 묶음(블록 · 자원 · 덧줄) 소계 합 + 끝수 = 합계(비목마다) · 한 묶음 소계 = 노 + 재 + 경."""
|
||||
for key in ("GC001148", "GC000211"):
|
||||
eqn = eq.read(key, {})["수식"]
|
||||
sub, total = eqn["소계"], eqn["합계"]
|
||||
for k in ("노무비", "재료비", "경비"):
|
||||
got = sum(float(r[k]) for r in sub["줄"]) + float(sub["끝수"][k])
|
||||
assert abs(got - float(total[k])) < 1e-6, (key, k)
|
||||
assert all(
|
||||
abs(float(r["계"]) - sum(float(r[k]) for k in ("노무비", "재료비", "경비"))) < 1e-6
|
||||
for r in sub["줄"]
|
||||
)
|
||||
|
||||
|
||||
def test_screen_source_groups_and_inline_edit():
|
||||
ui = ROOT / "ui_template"
|
||||
sum_ts = (ui / "ui_template_equation_sum.ts").read_text(encoding="utf-8")
|
||||
line_ts = (ui / "ui_template_equation_line.ts").read_text(encoding="utf-8")
|
||||
page = (ROOT / "M01_MasterData/M01_MasterData_UI_LogicLab_Equation.ts").read_text(encoding="utf-8")
|
||||
assert "ORDER" in sum_ts and "ui-eq__grp" in sum_ts # 가 · 나 · 다 묶음
|
||||
assert "o.after?.(line)" in line_ts and "after:" in page # 블록 식 줄 바로 아래
|
||||
assert "block-key" not in line_ts # 줄 곁 DB 열쇠 글 없음
|
||||
assert "ui-eq__solve" not in line_ts and "ui-eq__step" not in line_ts # 풀이 · 줄 번호 걷음
|
||||
|
||||
Reference in New Issue
Block a user