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); }
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); }
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); }