Esempio n. 1
0
        /// <summary>
        /// Runs the comparison for a given folder.
        /// </summary>
        public static void ComparisonSuite(String graphsFolder, String resultLog, bool parallelTest)
        {
            string dataFolder = Path.GetFileName(Path.GetDirectoryName(graphsFolder));
            string dateTime   = DateTime.Now.ToString("-yyyy.MM.dd-HH_mm");

            //Set the current directory.
            subFolderName = "TestSuite2-";
            Directory.CreateDirectory(subFolderName + dataFolder + dateTime);
            Directory.SetCurrentDirectory(subFolderName + dataFolder + dateTime);
            int numberCores = 1;

            if (parallelTest)
            {
                numberCores = Environment.ProcessorCount;
            }

            var testSuite = new OverlapRemovalTestSuite(resultLog);

            testSuite.overlapMethods = CollectionOverlapRemovalMethods();
            testSuite.layoutMethods  = CollectionInitialLayout();


            string[] filePaths = Directory.GetFiles(graphsFolder, "*.dot");

            Parallel.ForEach(
                filePaths,
                new ParallelOptions {
                MaxDegreeOfParallelism = numberCores
            },
                testSuite.RunOverlapRemoval
                );

            testSuite.Finished();
        }
        private static void Main(string[] args)
        {
#if DEBUG && !SILVERLIGHT
            DisplayGeometryGraph.SetShowFunctions();
//                        ProximityOverlapRemoval.DebugMode = true;
#endif

            //          OverlapRemovalTestSuite.ComparisonSuite(@"C:\dev\GraphLayout\graphs\overlapSamples\debugOnly\", "DebugOnlyTestSuite1.csv", false);
            //          OverlapRemovalTestSuite.ComparisonSuite(@"C:\dev\GraphLayout\graphs\overlapSamples\", "ResultsOverlapRemovalTestSuite1.csv", false);
            //            OverlapRemovalTestSuite.ComparisonSuite(@"C:\dev\GraphLayout\graphs\overlapSamples\net50comp1\", "ResultsNet50comp1TestSuite1.csv", false);
            //          OverlapRemovalTestSuite.ComparisonSuite(@"C:\dev\GraphLayout\graphs\overlapSamples\large\", "ResultsLargeGraphsTestSuite1.csv", false);
            OverlapRemovalTestSuite.ComparisonSuite(
                @"C:\dev\GraphLayout\graphs\overlapSamples\prism-original-dataset\",
                "ResultsPrism-original-datasetTestSuite1.csv", false);


            //            Console.ReadLine();
            //            var rootGraph = DotLoader.LoadFile(@"C:\dev\GraphLayout\graphs\overlapSamples\root.dot");

            ////          var rootGraph = DotLoader.LoadFile(@"C:\dev\GraphLayout\graphs\overlapSamples\net50comp1\net50comp_1.gv.dot");
            ////          var rootGraph = DotLoader.LoadFile(@"C:\dev\GraphLayout\graphs\overlapSamples\badvoro.gv.dot");
            ////          var rootGraph = DotLoader.LoadFile(@"C:\dev\GraphLayout\graphs\large\twittercrawl-sfdp.dot");
            ////          var oldPositions = rootGraph.Nodes.Select(v => v.Center).ToList();
            ////          LayoutAlgorithmSettings.ShowGraph(rootGraph);
            //            ProximityOverlapRemoval prism=new ProximityOverlapRemoval(rootGraph);
            //            prism.Settings.WorkInInches = true;
            //            prism.Settings.StressSettings.ResidualTolerance = 0.06;
            //#if DEBUG
            //            ProximityOverlapRemoval.DebugMode = false;
            //#endif
            //            prism.RemoveOverlap();
            ////            var newPositions = rootGraph.Nodes.Select(v => v.Center).ToList();
            ////            var procrustes = Statistics.Statistics.ProcrustesStatistics(oldPositions, newPositions);
            ////            Console.WriteLine("ProcrustesStatistics: {0}",procrustes);
            //
            //#if DEBUG
            //
            //            LayoutAlgorithmSettings.ShowGraph(rootGraph);
            //#endif
            //            Console.ReadLine();
        }