feat(master_data): 로직마다 시험 계산용 기본 입력 · check_master 계산전부
- 로직 줄에 「시험입력」 칸 — 시험 계산 전용(정본 계산은 화면 값만 씀) · 규격·직경은 원문 표 첫 값 · 자재지역은 울진(모래 줄 없는 넷은 포항) - check_master 에 `시험입력()` · `calc_all()` · 「계산전부」 모드 - 일괄 시험 계산 통과 1,219 → 1,270 · 멈춤 135 → 84(모두 데이터 결손 — 관리자 값 65 · 품셈재료 규격 미지정 13 · 지역 줄 없음 1 · 고르기 조합 없음 5) - 시험 둘 추가(test_masterdata_check.py) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
@@ -907,3 +907,22 @@ def test_품셈재료_고르기_칸이_실파일에_있음():
|
||||
assert rows and all("고르기" in row for row in rows.values())
|
||||
assert any(isinstance(row["고르기"], dict) for row in rows.values())
|
||||
assert cm.check_links(whole) == []
|
||||
|
||||
|
||||
def test_로직_일괄_시험계산():
|
||||
"""로직 전부를 시험 입력으로 돌림 — 멈춤은 데이터 결손(관리자 값·규격 미지정)만."""
|
||||
files = cm.load()
|
||||
passed, stuck = cm.calc_all(files, mf.Master(files))
|
||||
assert passed >= 1270
|
||||
남은_까닭 = ("관리자가 채울 값", "규격 선택 필요", "지역 값 없음", "맞는 줄")
|
||||
assert [x for x in stuck if not any(c in x for c in 남은_까닭)] == []
|
||||
|
||||
|
||||
def test_시험입력이_기본값을_이김():
|
||||
"""「시험입력」 은 시험 계산 전용 칸 — 고르기 첫 값·범위 위끝을 덮어씀."""
|
||||
row = {
|
||||
"입력": [{"이름": "지역", "고르기": ["전국평균", "포항"]}, {"이름": "깊이", "범위": [1, 9]}]
|
||||
}
|
||||
assert cm.시험입력(row) == {"지역": "전국평균", "깊이": 9}
|
||||
row["시험입력"] = {"지역": "포항"}
|
||||
assert cm.시험입력(row)["지역"] == "포항"
|
||||
|
||||
Reference in New Issue
Block a user