public void TestMaskEngineMultipleLines()
        {
            var lines = new List <string>()
            {
                "03/22 08:51:06 INFO   :...read_physical_netif: index #0, interface VLINK1 has address 129.1.1.1, ifidx 0 ",
                "03/22 08:51:06 INFO: ...read_physical_netif: index #1, interface TR1 has address 9.37.65.139, ifidx 1"
            };
            var mappedIP                 = new Dictionary <string, Dictionary <string, HashSet <int> > >();
            var firstNetworkComputer     = mappedIP.SetKey("129.1.1");
            var firstNetworkComputerRows = firstNetworkComputer.SetKey("1");

            firstNetworkComputerRows.Add(0);
            var secondNetworkComputer     = mappedIP.SetKey("9.37.65");
            var secondNetworkComputerRows = secondNetworkComputer.SetKey("139");

            secondNetworkComputerRows.Add(1);

            var maskEngine = new MaskEngine(lines, mappedIP);
            var masked     = maskEngine.Execute();

            Assert.IsNotNull(masked);
            Assert.IsNotNull(masked.Lines);
            Assert.AreEqual(masked.Lines.Count(), 2);
            Assert.IsNotNull(masked.Summery);
            Assert.AreEqual(masked.Summery.Count(), 2);
            Assert.AreEqual(masked.Summery.ElementAt(0).OriginalIP, "129.1.1.1");
            Assert.AreEqual(masked.Summery.ElementAt(1).OriginalIP, "9.37.65.139");
            var firstMasked  = masked.Summery.ElementAt(0).MaskedIP;
            var secondMasked = masked.Summery.ElementAt(1).MaskedIP;

            Assert.AreNotEqual(firstMasked.NetworkAddress(), secondMasked.NetworkAddress());
            Assert.AreEqual(masked.Lines.ElementAt(0).IndexOf(firstMasked), 86);
            Assert.AreEqual(masked.Lines.ElementAt(1).IndexOf(secondMasked), 81);
        }
示例#2
0
        public static List <object[, ]> V2_CutShape(object[,] input, List <object[, ]> inShapes, List <object[, ]> outShapes, double inShapeOffset, double outShapeOffset)
        {
            MaskEngine _me           = new MaskEngine();
            Mask       _inShapeMask  = _me.Masks.Add();
            Mask       _outShapeMask = _me.Masks.Add();



            if (inShapes != null)
            {
                foreach (object[,] _cutter in inShapes)
                {
                    _inShapeMask.Shapes.AddByPointsArray(_cutter.Length / 3, _cutter, true, EMaskEngineUnit.emeUnitMils);
                }
                if (inShapeOffset != 0)
                {
                    _inShapeMask.Oversize(inShapeOffset, EMaskEngineOversizeType.emeOversizeTypeRound, EMaskEngineUnit.emeUnitMils);
                }
            }
            if (outShapes != null)
            {
                foreach (object[,] _cutter in outShapes)
                {
                    _outShapeMask.Shapes.AddByPointsArray(_cutter.Length / 3, _cutter, true, EMaskEngineUnit.emeUnitMils);
                }
                if (outShapeOffset != 0)
                {
                    _outShapeMask.Oversize(outShapeOffset, EMaskEngineOversizeType.emeOversizeTypeRound, EMaskEngineUnit.emeUnitMils);
                }
            }


            Mask _objMask = _me.Masks.Add();

            _objMask.Shapes.AddByPointsArray(input.Length / 3, input, true, EMaskEngineUnit.emeUnitMils);

            Mask _finalMask = null;

            if (inShapes != null)
            {
                _finalMask = _me.BooleanOp(EMaskEngineBooleanOp.emeBooleanOpAND, _objMask, _inShapeMask);
            }
            else
            {
                _finalMask = _objMask;
            }
            if (outShapes != null)
            {
                _finalMask = _me.BooleanOp(EMaskEngineBooleanOp.emeBooleanOpSubtract, _finalMask, _outShapeMask);
            }

            List <object[, ]> _returnList = new List <object[, ]>();

            foreach (Shape _s in _finalMask.Shapes)
            {
                _returnList.Add((object[, ])_s.get_PointsArray(EMaskEngineUnit.emeUnitMils));
            }

            return(_returnList);
        }
示例#3
0
        public static object[,] V2_Oversize(object[,] input, double offsetAsMils, int oversizeType = 0)
        {
            EMaskEngineOversizeType _type = EMaskEngineOversizeType.emeOversizeTypeRound;

            if (oversizeType != 0)
            {
                _type = EMaskEngineOversizeType.emeOversizeTypeSquare;
            }
            MaskEngine _me = new MaskEngine();


            Mask _BAmask = _me.Masks.Add();

            _BAmask.Shapes.AddByPointsArray(input.Length / 3, input, true, EMaskEngineUnit.emeUnitMils);
            _BAmask.Oversize(offsetAsMils, _type, EMaskEngineUnit.emeUnitMils);

            object[,] retVal = (object[, ])_BAmask.Shapes.Item[1].get_PointsArray(MASKENGINEAUTOMATIONCONTROLLERLib.EMaskEngineUnit.emeUnitMils);
            Marshal.FinalReleaseComObject(_me);
            return(retVal);
        }