Files
Pier_v1/도면추출_연동패키지_20261102/history/tests/renamed_smoke.py
T
CopilotandCopilot 06e1b97a62
ITAM Code Check / build-and-config-check (push) Failing after 37s
ITAM Docker Build Check / docker-build-check (push) Failing after 1m0s
교각 프로그램 초기 버전
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-02 15:55:01 +09:00

31 lines
1.8 KiB
Python

"""Installed SDK: rename all actual DWGs and verify the complete output unchanged."""
import json,shutil,sys
from pathlib import Path
installed,root,converter=map(lambda p:Path(p).resolve(),sys.argv[1:4])
sys.path.insert(0,str(installed))
from bridge_drawing_extractor import extract_folder,__version__
folder=root/'outputs/package_renamed_014'
folder.mkdir(exist_ok=True)
for i,source in enumerate(sorted((root/'산외교도면').glob('*.dwg'))):
if not any(t in source.name for t in ['종평면','받침배치','ELEVATION']):continue
shutil.copy2(source,folder/f'input_{i}.dwg')
result=extract_folder(folder,output_dir=root/'outputs/package_smoke',converter_path=converter)
assert len(result.workbooks)==1
data=result.workbooks[0].data
gold=json.loads((root/'Code/sanoe_extract/extracted.json').read_text(encoding='utf-8'))
for e in gold['evidence']:
if e['sheet']=='Pier' and e['cell'][0] in 'CDHIJK' or e['sheet']=='Bearing' and e['cell'][0]=='F':continue
expected=None if e['value'] in ['미확인','미확정'] else e['value']
assert data['cells'][e['sheet']][e['cell']]==expected,(e['sheet'],e['cell'])
assert len(result.files)==3
assert {r for f in result.files for r in f['roles']}=={'01','02','03'}
assert data['cells']['Pier']['C3']=='T형'
assert data['cells']['Pier']['D3']==71.0632
assert data['cells']['Bearing']['F3']==71.4178
assert '04' not in data['sources']
assert len(data['supplementary_drawings'])==1
report=dict(version=__version__,renamed_files=3,verified_fields=sum(not(e['sheet']=='Pier' and e['cell'][0] in 'CDHIJK' or e['sheet']=='Bearing' and e['cell'][0]=='F') for e in gold['evidence']),
elevation_texts=len(data['supplementary_drawings'][0]['texts']),result='passed')
(folder/'verification.json').write_text(json.dumps(report,ensure_ascii=False,indent=2),encoding='utf-8')
print(json.dumps(report))