Exemple #1
0
        public double GetDistanceTo(CodeModel codeModel)
        {
            if (!HasEquivalentMetricsWith(codeModel))
            {
                throw new Exception("Разные метрики моделей исходного кода.");
            }

            return(Math.Sqrt(MetricNames.Sum(name => Math.Pow(GetMetric(name) - codeModel.GetMetric(name), 2))));
        }
Exemple #2
0
        private bool HasEquivalentMetricsWith(CodeModel codeModel)
        {
            var anotherMetricNames = codeModel.MetricNames;
            var thisMetricNames    = MetricNames;

            if (anotherMetricNames.Length != thisMetricNames.Length)
            {
                return(false);
            }

            foreach (var metricName in thisMetricNames)
            {
                if (!anotherMetricNames.Contains(metricName))
                {
                    return(false);
                }
            }

            return(true);
        }