Clusterizator.Krab.Calculators.NormalizedLinearCalculator.Calculate C# (CSharp) Method

Calculate() public method

Normalized euclidean distance calculation method.
public Calculate ( GraphManager graph ) : void
graph GraphManager /// Connections graph. ///
return void
        public void Calculate(GraphManager graph)
        {
            double diameter = GetDiameter(graph.Connections);
            if (Math.Abs(diameter - 0) < 0.00001)
            {
                return;
            }

            // Normalizing all distances to range (0;1]
            foreach (Connection connection in graph.Connections)
            {
                connection.NormalizedDistance = connection.Distance / diameter;
            }
        }

Usage Example

        public void ThreePointsTest()
        {
            var node1 = new GraphElement(new[] { 15.0 }, "node1");
            var node2 = new GraphElement(new[] { 10.0 }, "node2");
            var node3 = new GraphElement(new[] { -3.0 }, "node3");

            var el = new List<GraphElement> { node1, node2, node3 };

            var conn1 = new Connection(0, 1);
            var conn2 = new Connection(0, 2);
            var conn3 = new Connection(1, 2);

            var graph = new List<Connection> { conn1, conn2, conn3 };

            var gm = new GraphManager(graph, el);

            ICalculator calculator = new LinearCalculator();
            calculator.Calculate(gm);
            calculator = new NormalizedLinearCalculator();
            calculator.Calculate(gm);
            calculator = new TauStarCalculator();
            calculator.Calculate(gm);
            calculator = new TauCalculator();
            calculator.Calculate(gm);
            Assert.AreEqual(107, Math.Round(gm.Connections[0].Tau * 1000));
            Assert.AreEqual(722, Math.Round(gm.Connections[2].Tau * 1000));
            Assert.AreEqual(1, gm.Connections[1].Tau);
        }
All Usage Examples Of Clusterizator.Krab.Calculators.NormalizedLinearCalculator::Calculate
NormalizedLinearCalculator