public void FillPolygonTests7() { var dimX = 5; var dimY = 5; var expectedArray = new byte[] { 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, }; var volume2D = new Volume2D <byte>(expectedArray, 5, 5, 1, 1, new Point2D(), new Matrix2()); var extractContour = ExtractContours.PolygonsFilled(volume2D); var output1 = new byte[dimX * dimY]; var polygon = extractContour.First().Points.Select(x => CreatePoint(x.X + 0.00002, x.Y - 0.00001)).ToArray(); FillPolygon.Fill(polygon, output1, dimX, dimY, 0, 0, (byte)1); for (var i = 0; i < output1.Length; i++) { Assert.AreEqual(expectedArray[i], output1[i]); } }
public void FillPolygonTestsRandomCheckTermination() { var dimX = 2000; int seed = Guid.NewGuid().GetHashCode(); Console.WriteLine($"Seed {seed}"); var random = new Random(seed); var byteArray = Enumerable.Range(0, dimX * dimX).Select(_ => (byte)random.Next(0, 2)).ToArray(); var volume2D = new Volume2D <byte>(byteArray, dimX, dimX, 1, 1, new Point2D(), new Matrix2()); var extractContour = ExtractContours.PolygonsFilled(volume2D); Console.WriteLine($"Contours count {extractContour.Count}"); Assert.IsTrue(extractContour.Count > 0); }