public void ERClusteringCoefficientTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("EROutput.xml");
            ERContainer container = new ERContainer();
            container.SetMatrix("ERInput.txt");
            AbstarctGraphAnalyzer analyzer = new ERAnalyzer(container);

            SortedDictionary<double, int> actualValue = analyzer.GetClusteringCoefficient();
            SortedDictionary<double, int> expectedValue = goldResult.Results[0].Coefficient;
            Assert.IsTrue(compare(actualValue, expectedValue));
        }
        public void ERCycles3Test()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("EROutput.xml");
            ERContainer container = new ERContainer();
            container.SetMatrix("ERInput.txt");
            AbstarctGraphAnalyzer analyzer = new ERAnalyzer(container);

            long actualValue = analyzer.GetCycles3();
            long expectedValue = (long)goldResult.Results[0].Result[AnalyseOptions.Cycles3];
            Assert.AreEqual(actualValue, expectedValue);
        }
        public void Cycles3Test()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("WSOutput.xml");
            WSContainer container = new WSContainer();
            container.SetMatrix("WSInput.txt");
            AbstarctGraphAnalyzer analyzer = new WSAnalyzer(container);

            long actualValue = analyzer.GetCycles3();
            long expectedValue = goldResult.Results[0].Cycles3;
            Assert.AreEqual(actualValue, expectedValue);
        }
        public void ERAveragePathTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("EROutput.xml");
            ERContainer container = new ERContainer();
            container.SetMatrix("ERInput.txt");
            AbstarctGraphAnalyzer analyzer = new ERAnalyzer(container);

            double actualValue = analyzer.GetAveragePath();
            double expectedValue = goldResult.Results[0].Result[AnalyseOptions.AveragePath];
            Assert.AreEqual(actualValue, expectedValue);
        }
        public void BACycles4Test()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("BAOutput.xml");
            BAContainer container = new BAContainer();
            container.SetMatrix("BAInput.txt");
            AbstarctGraphAnalyzer analyzer = new BAAnalyzer(container);

            long actualValue = analyzer.GetCycles4();
            double expectedValue = goldResult.Results[0].Result[AnalyseOptions.Cycles4];
            Assert.AreEqual(actualValue, expectedValue);
        }
        public void ERMinPathDistTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("EROutput.xml");
            ERContainer container = new ERContainer();
            container.SetMatrix("ERInput.txt");
            AbstarctGraphAnalyzer analyzer = new ERAnalyzer(container);

            SortedDictionary<int, int> actualValue = analyzer.GetMinPathDist();
            SortedDictionary<int, int> expectedValue = goldResult.Results[0].DistanceBetweenVertices;
            Assert.IsTrue(compare(actualValue, expectedValue));
        }
        public void EREigenValueTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("EROutput.xml");
            ERContainer container = new ERContainer();
            container.SetMatrix("ERInput.txt");
            AbstarctGraphAnalyzer analyzer = new ERAnalyzer(container);

            ArrayList actualValue = analyzer.GetEigenValues();
            ArrayList expectedValue = goldResult.Results[0].EigenVector;
            Assert.IsTrue(compare(actualValue, expectedValue));
        }
        public void ERCyclesTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("EROutput.xml");
            ERContainer container = new ERContainer();
            container.SetMatrix("ERInput.txt");
            AbstarctGraphAnalyzer analyzer = new ERAnalyzer(container);

            SortedDictionary<int, long> actualValue = analyzer.GetCycles(4, 6);
            SortedDictionary<int, long> expectedValue = goldResult.Results[0].Cycles;
            Assert.IsTrue(compare(actualValue, expectedValue));
        }
        public void BAMotivesTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("BAOutput.xml");
            BAContainer container = new BAContainer();
            container.SetMatrix("BAInput.txt");
            AbstarctGraphAnalyzer analyzer = new BAAnalyzer(container);

            SortedDictionary<int, float> actualValue = analyzer.GetMotivs(2, 4);
            SortedDictionary<int, float> expectedValue = goldResult.Results[0].MotivesCount;
            Assert.IsTrue(compare(actualValue, expectedValue));
        }
        public void BADistEigenPathTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("BAOutput.xml");
            BAContainer container = new BAContainer();
            container.SetMatrix("BAInput.txt");
            AbstarctGraphAnalyzer analyzer = new BAAnalyzer(container);

            SortedDictionary<double, int> actualValue = analyzer.GetDistEigenPath();
            SortedDictionary<double, int> expectedValue = goldResult.Results[0].DistancesBetweenEigenValues;
            Assert.IsTrue(compare(actualValue, expectedValue));
        }
        public void BADegreeDistributionTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("BAOutput.xml");
            BAContainer container = new BAContainer();
            container.SetMatrix("BAInput.txt");
            AbstarctGraphAnalyzer analyzer = new BAAnalyzer(container);

            SortedDictionary<int, int> actualValue = analyzer.GetDegreeDistribution();
            SortedDictionary<int, int> expectedValue = goldResult.Results[0].VertexDegree;
            Assert.IsTrue(compare(actualValue, expectedValue));
        }
        private void constructGraph(string modelName)
        {
            try
            {
                XMLResultStorage resultStorage = new XMLResultStorage("");
                goldResult = resultStorage.LoadXML(goldenOutPath.Text);
            }
            catch (Exception e)
            {
                MessageBox.Show(this, "Unable load XML file", e.Message);
            }

            switch (modelName)
            {
                case "Barabasi-Albert":
                    BAContainer baContainer = new BAContainer();
                    baContainer.SetMatrix(inputMatrixPath.Text);
                    BAModelTest(baContainer);
                    break;
                case "ERModel":
                    ERContainer erContainer = new ERContainer();
                    erContainer.SetMatrix(inputMatrixPath.Text);
                    ERModelTest(erContainer);
                    break;
                case "Watts-Strogatz":
                    WSContainer wsContainer = new WSContainer();
                    wsContainer.SetMatrix(inputMatrixPath.Text);
                    WSModelTest(wsContainer);
                    break;
                default:
                    Console.WriteLine("Default case");
                    break;
            }
        }
        public void FullSubGraphTest()
        {
            XMLResultStorage resultStorage = new XMLResultStorage("");
            ResultAssembly goldResult = resultStorage.LoadXML("WSOutput.xml");
            WSContainer container = new WSContainer();
            container.SetMatrix("WSInput.txt");
            AbstarctGraphAnalyzer analyzer = new WSAnalyzer(container);

            SortedDictionary<int, int> actualValue = analyzer.GetFullSubGraph();
            SortedDictionary<int, int> expectedValue = goldResult.Results[0].FullSubgraphs;
            Assert.IsTrue(compare(actualValue, expectedValue));
        }