37 lines
2.4 KiB
Python
37 lines
2.4 KiB
Python
"""EST 테스트 앱 엑셀데이타를 EST로 변환 7개 탭(원본 TfrmExcelToEst — 셀 규칙·머리 줄 꼴·호표 만들기)."""
|
||
|
||
from test_est_rea_parity import run
|
||
|
||
|
||
def test_convert_tabs_and_heads():
|
||
result = run(
|
||
"math",
|
||
r"""(()=>{
|
||
const X=EstExcelToEst;
|
||
const sheets={노임단가:[['L1',' 보통인부 ','','M2',172698,'']],
|
||
견적단가:[['','.펌프','','1','EA','1,500','500','1,000','0','']],
|
||
표준시장단가:[['C1','포장','t=5','m2',1000,300,600,100,0.3,'포함',''],],
|
||
단가산출:[['','산근 1 호표 : 거푸집 합판 (1 ㎡ 당)',100,60,40,0],['','합판 1*2',40,0,40,0],['','#.산근2|철근가공|D10|ton',9,9,0,0]],
|
||
일위대가:[['','No 5 호표 터파기','','','',0,10,0,10,0,0,0,0,''],['','인부','','0.1','인',100,10,100,10,0,0,0,0,''],['','[합계]','','','',0,10,0,0,0,0,0,0,'']]};
|
||
const cols=(n)=>Array.from({length:n},(_,i)=>String.fromCharCode(65+i));
|
||
const tabs={LaborcDat:{sheet:'노임단가',start:1,end:1,columns:cols(6)},EstiMateDat:{sheet:'견적단가',start:1,end:1,columns:cols(10)},
|
||
SilJukDat:{sheet:'표준시장단가',start:1,end:1,columns:cols(11)},CostMainDat:{sheet:'단가산출',start:1,end:3,columns:cols(6)},
|
||
HeadMainDat:{sheet:'일위대가',start:1,end:3,columns:cols(14)},StuffcDat:{sheet:'없는시트',start:1,end:1,columns:cols(18)}};
|
||
const r=X.convert(sheets,tabs,{name:'시험',wonga:[]}), t=r.project.tables;
|
||
return {failed:r.failed, lab:[t.LaborcDat[0].Name,t.LaborcDat[0].Unite,t.LaborcDat[0].TC],
|
||
est:[t.EstiMateDat[0].Name,t.EstiMateDat[0].TC,t.EstiMateDat[0].OTC,t.EstiMateDat[0].Code.slice(0,1)],
|
||
sil:[t.SilJukDat[0].NCRatio,t.SilJukDat[0].Cost1,t.SilJukDat[0].ONC],
|
||
cost:t.CostTitleDat.map(x=>[x.Name,x.Size,x.Unite]), line:t.CostMainDat[1].LineData,
|
||
head:[t.HeadTitleDat.map(x=>x.Name),t.HeadMainDat.length], rows:t.EstMainDat.length, auto:r.project.options.AutoCalc};
|
||
})()""",
|
||
)
|
||
assert result["failed"] == ["없는시트 시트가 없습니다."]
|
||
assert result["lab"] == ["보통인부", "㎡", 172698]
|
||
assert result["est"] == ["펌프", 1500, 1500, "N"]
|
||
assert result["sil"] == [30, 1000, 300]
|
||
assert result["cost"] == [["거푸집", "합판", "㎡"], ["철근가공", "D10", "ton"]]
|
||
assert result["line"] == "합판 1×2"
|
||
assert result["head"] == [["터파기"], 2]
|
||
assert result["rows"] == 36
|
||
assert result["auto"] is False
|