コード例 #1
0
ファイル: UT_Handler.cs プロジェクト: PavelKhrapkin/TSmatch
        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();
        }
コード例 #2
0
ファイル: UT_Handler.cs プロジェクト: PavelKhrapkin/TSmatch
        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();
        }