Example #1
0
        static void BorderConditionTests()
        {
            foreach (string filePath in InputFiles())
            {
                string fileNameCore = Path.GetFileNameWithoutExtension(filePath);
                if (specificTestName != "" && fileNameCore != specificTestName)
                {
                    continue;//todo delete
                }
                var inputRepr = InputRepr.FromFile(filePath);

                var boundingBox = new VoronoiDiagram.BoundingBox()
                {
                    x     = inputRepr.boundingBox.leftX,
                    y     = inputRepr.boundingBox.bottomY,
                    sizeX = inputRepr.boundingBox.width,
                    sizeY = inputRepr.boundingBox.height
                };

                DiagramBuildLogger logger = null;
                if (drawDebug)
                {
                    logger = new DiagramBuildLogger("", fileNameCore + "_debug", boundingBox);
                }

                var dots = inputRepr.dots.Select(d => new VoronoiDiagram.Dot()
                {
                    x = d[0], y = d[1]
                });
                var borders = VoronoiDiagram.CreateEdges(dots, logger);

                CanvasCreator canvasCreator;

                canvasCreator = GetSimpleCanvas(dots, borders);
                SetupCanvas(canvasCreator, boundingBox);
                File.WriteAllText($"..\\..\\..\\tests\\out\\{fileNameCore}.html", canvasCreator.GetHtmlContent());

                borders = VoronoiDiagram.ApplyBoundingBox(borders, boundingBox);

                canvasCreator = GetPolygonalCanvas(dots, borders);
                SetupCanvas(canvasCreator, boundingBox);

                File.WriteAllText($"..\\..\\..\\tests\\out\\{fileNameCore}_p.html", canvasCreator.GetHtmlContent());
            }
        }
Example #2
0
        static void RandomGenerationTests(int count, int minDots, int maxDots)
        {
            Random random = new Random();

            for (int iter = 0; iter < count; iter++)
            {
                VoronoiDiagram.BoundingBox boundingBox = new VoronoiDiagram.BoundingBox()
                {
                    x     = 0,
                    y     = 0,
                    sizeX = 1000,
                    sizeY = 1000
                };
                var dots = GetRandomDots(random.Next(minDots, maxDots), 100, 900, 100, 900);

                InputRepr inputRepr = new InputRepr();

                inputRepr.boundingBox.leftX   = boundingBox.x;
                inputRepr.boundingBox.bottomY = boundingBox.y;
                inputRepr.boundingBox.width   = boundingBox.sizeX;
                inputRepr.boundingBox.height  = boundingBox.sizeY;
                inputRepr.dots = dots.Select(dot => new float[2] {
                    dot.x, dot.y
                }).ToArray();
                File.WriteAllText($"input_{iter.ToString()}.json", inputRepr.GetContent());

                var borders = VoronoiDiagram.CreateEdges(dots);

                borders = VoronoiDiagram.ApplyBoundingBox(borders, boundingBox);

                //CanvasCreator canvasCreator = GetSimpleCanvas( dots, borders );
                CanvasCreator canvasCreator = GetPolygonalCanvas(dots, borders);

                SetupCanvas(canvasCreator, boundingBox);

                File.WriteAllText($"output_{iter.ToString()}.html", canvasCreator.GetHtmlContent());
            }
        }