public void UT_getGrps() { var mh = new MH(); var sr = new SR(); if (boot.isTeklaActive) { mod.dir = TS.GetTeklaDir(TS.ModelDir.model); } else { mod.dir = boot.ModelDir; } mod.elements = sr.Raw(mod); string md5 = mod.getMD5(mod.elements); Assert.AreEqual(32, md5.Length); var grp = mh.getGrps(mod.elements); Assert.IsTrue(grp.Count > 0); string pricing_md5 = mod.get_pricingMD5(grp); Assert.AreEqual(32, pricing_md5.Length); FileOp.AppQuit(); }
public void UT_Hndl() { //-- Assign: подготавливаем все необходимое для Hndl- //.. mod.elements и mod.elmGroups, инициируем Rules с загрузкой прайс-листов boot.Init(); var sr = new _SR(); mod = sr.SetModel(boot); mod.elements = sr.Raw(mod); List <Elm> elmCopy = new List <Elm>(); foreach (Elm elm in mod.elements) { elmCopy.Add(elm); } for (int i = 0; i < elmCopy.Count; i++) { Assert.AreEqual(elmCopy[i], mod.elements[i]); } int cnt = mod.elements.Count; string MD5 = mod.getMD5(mod.elements); Assert.IsTrue(cnt > 0); string cMD5 = mod.getMD5(elmCopy); Assert.AreEqual(cMD5, MD5); if (mod.Rules == null || mod.Rules.Count == 0) { sr._GetSavedRules(mod); } var mh = new MH(); Mtch mtsh = new Mtch(mod); mh.Hndl(ref mod); // проверка, что elements не испортились foreach (var gr in mod.elmGroups) { cnt -= gr.guids.Count(); } Assert.AreEqual(0, cnt); Assert.AreEqual(mod.elements.Count, elmCopy.Count); for (int i = 0; i < elmCopy.Count; i++) { Assert.AreEqual(elmCopy[i], mod.elements[i]); } string newMD5 = mod.getMD5(mod.elements); string copyMD5 = mod.getMD5(elmCopy); Assert.AreEqual(mod.getMD5(mod.elements), MD5); // проверка наличия compDescription, sCS, sSupl и totalPrice в группах foreach (var gr in mod.elmGroups) { if (gr.totalPrice == 0) { continue; } Assert.IsTrue(gr.compDescription.Length > 0); Assert.IsTrue(gr.SupplierName.Length > 0); Assert.IsTrue(gr.CompSetName.Length > 0); } //Hndl performance test -- 180 sec for 100 cycles ОНХП модель 1124 элемента // -- 20,4 sec 1 cycle модель "Навес над трибунами" 7128 э-тов int nLoops = 1; DateTime t0 = DateTime.Now; for (int i = 0; i < nLoops; i++) { mh.Hndl(ref mod); } TimeSpan ts = DateTime.Now - t0; var secHndl = ts.TotalSeconds / nLoops; Assert.IsTrue(secHndl > 0.0); FileOp.AppQuit(); }