Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1

This commit is contained in:
2026-10-15 23:31:36 +09:00
+33 -1
View File
@@ -3,7 +3,8 @@
여섯 파일 올라감(봉화 45 · 영월 23 · 울진대흥 설계 · 착공 34 · 영덕 9 · 울진소광 25 호표) ·
봉화 줄 216(구성 209 + 근거글 7) · 단산 103 · 노임 30 · 호표 22 · 줄 코드 갈래 ·
노임 이름 어긋남 0 · 블록 자원 품 · 이음 열쇠(M~Z 열 코드 꼴 첫 것) ·
문서 보안(장수 · 진안) 400 글 · 원본 엑셀 · master_data 그대로.
문서 보안(장수 · 진안) 400 글 · 원본 엑셀 · master_data 그대로 ·
영월 정답 자리(`y_ids` — 338 실험 C1 `labels_y` Y000~Y035 = D · X 고유 줄 차례 · 골든 시험이 씀).
"""
import hashlib
@@ -183,3 +184,34 @@ def test_여섯_파일_올라감(client):
assert view.status_code == 200, view.text # 맞춤 보기가 STmate 줄을 받음
assert {tag: hashlib.sha256(_path(tag).read_bytes()).hexdigest() for tag in FILES} == sources
assert master_hash() == before
def y_ids(book: dict) -> dict[str, dict]:
"""영월 정답 자리 — D · X 줄을 (이름, 규격, 단위, 코드) 고유로 처음 나온 차례 →
`{"Y000": {호표, 차례, 열쇠}}`(338 실험 C1 `s09_stmate` 와 같은 번)."""
out: dict[str, dict] = {}
seen: set[tuple] = set()
for hopyo in book["호표"]:
for line in hopyo["줄"]:
key = (line["이름"], line["규격"], line["단위"], line["코드"])
if line["코드"][0] in "DX" and key not in seen:
seen.add(key)
out[f"Y{len(out):03d}"] = {"호표": hopyo["번"], "차례": line["차례"], "열쇠": key}
return out
def test_영월_정답_자리(books):
got = y_ids(books["영월"])
assert len(got) == 36 # 정답 34 + 우리에 없음 둘(Y004 · Y007)
assert got["Y000"] == {
"호표": 2,
"차례": 1,
"열쇠": ("무근콘크리트타설", "인력운반타설", "M3", "D02058"),
}
assert got["Y005"]["열쇠"] == ("크레인(타이어)", "10톤", "시간", "X02104")
assert got["Y010"]["열쇠"][3] == "D00060" and got["Y035"]["열쇠"][3] == "D01810"
by = {h["번"]: h for h in books["영월"]["호표"]}
for one in got.values():
line = by[one["호표"]]["줄"][one["차례"]]
assert (line["이름"], line["규격"], line["단위"], line["코드"]) == one["열쇠"]
assert line["갈래"] == "기계" or "근거" in line # 단산 줄은 블록 이음