diff --git a/resources/master_data/ref/_검증_텍스트_수식.md b/resources/master_data/ref/_검증_텍스트_수식.md new file mode 100644 index 00000000..9e1e7427 --- /dev/null +++ b/resources/master_data/ref/_검증_텍스트_수식.md @@ -0,0 +1,53 @@ +# 「텍스트 수식」(`POST /text`) 검증 (읽기 전용) — 어긋난 것만 + +대상: 로직 1,354개 가운데 시험 계산이 도는 **1,291개** 전부. 입력은 `check_master.시험입력` 한 벌. +아래 네 가지를 대조 — 맞는 것은 안 적음. + +| 항목 | 결과 | +|---|---| +| ① 묶음 소계 합 + 끝수 = 계(`/calc`) | 어긋남 **0** | +| ② 글에 함수 글자(`찾기(`·`로직(`·`만약(`·`올림(` …)나 요소 키(`LB…`·`QF…`) | 샌 줄 **0** | +| ③ 호표에 있는데 글에서 빠진 줄 | **64개 로직 · 83줄** (아래) | +| ③ 글에만 있고 호표에 없는 줄 | **0** (덧줄 제외) | +| ④ 자릿수(소수 넷째 자리 · 천 단위 쉼표) | 어긋난 줄 **0** | +| 글 만들기가 터지거나 `ok=false` | **0** | + +## ③ 호표에 있는데 글에서 빠진 줄 — 64개 로직 · 83줄 + +**한 가지 원인 하나뿐** — 비목이 여럿으로 나뉘는 하위 로직 줄(기계경비: 노무비·재료비·경비)에서 **수량 0 이라 세 비목 몫이 모두 0** 이면, 비목마다 「몫 0 은 안 적음」 규칙에 걸려 **줄 자체가 통째로 사라짐**. +그 줄의 까닭(「수량 0 — 이 조건에서는 안 쓰는 줄」)도 같이 사라져, 설계자가 「그 장비 줄이 왜 없는지」 를 화면에서 못 봄. +소계·계는 0 이라 ① 은 안 깨짐. + +견본 `GC000999`(일반전정) — 계산 줄 넷 가운데 셋만 글에 나옴: + +``` +조경공 235,204 * 0.0556 = 13,066.8889 +보통인부 172,068 * 0.0278 = 4,779.6667 +고소작업차 (사라짐 · 수량 0 · 비목 노무비 0 / 재료비 0 / 경비 0) +공구손료 및 경장비 … = 535.3967 +``` + +고칠 자리: `resources/master_data/scripts/master_text.py` `lines()` 의 +`if money == 0 and len(line["비목"]) > 1: continue` — 그 줄의 비목 몫이 **전부** 0 일 때는 대표 비목 하나에 까닭과 함께 한 줄을 남길 것. + +빠진 로직과 줄(키 · 빠진 줄 이름): + +- `GC000019` 크레인 · `GC000082` 유압잭 · `GC000085` 굴착기 1.0㎥ · `GC000086` 굴착기 1.0㎥ · `GC000087` 불도저 32ton(집토) +- `GC000105` 래머 80㎏ · `GC000110` 진동롤러(핸드가이드식) 0.7ton · `GC000111` 대형브레이커 1.0㎥ · `GC000115` 크레인 +- `GC000152` 굴착기 0.4㎥ · `GC000153` 굴착기 · 크레인 · `GC000154` 굴착기 0.4㎥ · `GC000155` 굴착기 · 크레인 · `GC000157` 굴착기 0.6㎥+부착용 집게 +- `GC000162` 굴착기(무한궤도) · `GC000169` 크롤러드릴(탑승유압식) 110kW · `GC000176` 오거(케이싱) · 공기압축기 25.5㎥/min · `GC000183` 유압식 크롤러드릴 110㎾ +- `GC000187` 다짐말뚝 전용장비 100ton · 진동파일해머 90㎾ · 공기압축기 17.0㎥ · `GC000189`·`GC000191` 오거(케이싱) · 공기압축기 25.5㎥/min +- `GC000195` 오실레이터 · 전회전식천공기 · 굴착기(무한궤도) · `GC000196` 전회전식 굴착기 · `GC000198` 굴착기(무한궤도) +- `GC000249` 크레인 · `GC000287` 아스팔트 디스트리뷰터 3,800ℓ · `GC000309` 크레인(추가 표지판) · `GC000331` 고소작업차 +- `GC000343` 굴착기 0.6㎥ · `GC000345` 굴착기 0.2㎥ · `GC000350` 굴착기 0.6㎥(바닥·인버트) · `GC000397` 양중장비 · `GC000405` 크레인 · `GC000414` 크레인 · `GC000421` 크레인 +- `GC000427`·`GC000428`·`GC000429` 트럭탑재형 크레인 15ton · `GC000563` 타워크레인 · 트럭탑재형 크레인 · 굴착기 · `GC000575`·`GC000576`·`GC000580`·`GC000581`·`GC000582` 지게차 +- `GC000613` 크레인 · `GC000854` 트럭탑재형 크레인 10ton · `GC000887` 크레인(타이어) · `GC000981` 크레인 5톤 · `GC000999`·`GC001000` 고소작업차 +- `GC001017` 굴착기+대형브레이커 · `GC001032` 아스팔트 피니셔 3m · 머캐덤 롤러 · 타이어 롤러 · 탠덤롤러 · 플레이트 콤팩터 · 아스팔트 스프레이어 +- `GC001064`·`GC001065`·`GC001066`·`GC001068`·`GC001069` 굴착기(무한궤도) 0.2㎥ · `GC001085` 굴착기+부착용 집게 0.6㎥ · 양로기 11.19㎾ +- `GC001091`·`GC001096` 진공흡입 준설차 13톤 · 물탱크(살수차) 5,500ℓ · `GC001092` 트럭탑재형 크레인 5톤 · `GC001099` 진공흡입 준설차 13톤 +- `GF000137` 트럭 10.5ton · `GF000241` 굴착기(무한궤도) 0.6㎥ + +## 딸린 사실 + +- 비목이 나뉜 하위 로직 줄은 비목마다 한 줄씩 같은 이름으로 나옴(계약대로 · 어긋남 아님). +- 시험 계산이 멈추는 로직 63개는 이번 대조 밖 — `/text` 도 같은 까닭 한 줄로 멈춤.