"""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))