public void Test_PolygonCustomTest()
        {
            CanvasPixel canvas = new CanvasPixel(11, 20);

            Trace.RegionManipulator rm = new Trace.RegionManipulator(canvas, canvas);

            Trace.RegionVO region = new Trace.RegionVO(new Pixel());
            region.Pixels = Helper_GetCustomPolygon(rm);

            Helper_Test_EdgeCrawler(region, rm, new Point(9, 9));
        }
        private int [] Helper_GetCrossPolygon(Trace.RegionManipulator rm)
        {
            List <Point> points = new List <Point>();

            points.Add(new Point(10, 9));
            points.Add(new Point(9, 10));
            points.Add(new Point(10, 10));
            points.Add(new Point(11, 10));
            points.Add(new Point(10, 11));

            return(points.Select(x => rm.Get_IndexFromPoint(x)).ToArray());
        }
        private void Helper_Test_EdgeCrawler(Trace.RegionVO region, Trace.RegionManipulator rm, Point?startPoint)
        {
            List <int> result =
                (startPoint.HasValue)?
                new RegionToPolygon_Test().EdgeCrawler(region, rm, rm.Get_IndexFromPoint(startPoint.Value)) :
                new RegionToPolygon_Test().EdgeCrawler(region, rm);

            int[] correctResult = rm.Get_RegionEdges(region);

            bool resultCompare = Helper_ComparePixelRegions(result.ToArray(), correctResult);

            Assert.IsTrue(resultCompare);
        }
        public void Test_PolygonRectangle_AtEdgeTest()
        {
            // arrange
            Test2DPolygonDefinition testPolygon = Helper_Get2DRectangleEdgePolygon();

            Trace.RegionManipulator rm     = Helper_Create_RegionManipulator(testPolygon);
            Trace.RegionVO          region = Helper_Create_RegionFromParam(testPolygon, rm);

            int[] correctPixelsIndex = Helper_Create_PixelsOfRegionFromParam(Helper_Get2DRectangleEdgePolygon_Correct(), rm);

            // act
            int [] newPixelsIndex = new RegionToPolygon_Test().EdgeCrawler(region, rm).ToArray();

            // assert
            bool resultCompare = Helper_ComparePixelRegions(newPixelsIndex, correctPixelsIndex);

            Assert.IsTrue(resultCompare);
        }
        private int[] Helper_Create_PixelsOfRegionFromParam(Test2DPolygonDefinition testPolygon, Trace.RegionManipulator rm)
        {
            List <int> result = new List <int>();

            for (int i = 0; i < testPolygon.Points.Length; i++)
            {
                if (testPolygon.Points[i] == 1)
                {
                    result.Add(i);
                }
            }

            return(result.ToArray());
        }
 private Trace.RegionVO Helper_Create_RegionFromParam(Test2DPolygonDefinition testPolygon, Trace.RegionManipulator rm)
 {
     Trace.RegionVO region = new Trace.RegionVO(new Pixel());
     region.Pixels = Helper_Create_PixelsOfRegionFromParam(testPolygon, rm);
     return(region);
 }