示例#1
0
        public static double CalculateDefectCodeDensity(this CodeBlockSelectionExpression code)
        {
            code = code.Added().Fixed();

            return CalculateDefectCodeDensity(
                code.CalculateLOC(),
                code.CalculateDefectCodeSize()
            );
        }
示例#2
0
        /// <summary>
        /// Calculates traditional defect density for specified code.
        /// Total code size is LOC at the moment 
        /// (added code minus removed code).
        /// </summary>
        /// <param name="code">Code set to calc metric for.</param>
        /// <returns>Defect density.</returns>
        public static double CalculateTraditionalDefectDensity(this CodeBlockSelectionExpression code)
        {
            code = code.Added().Fixed();

            return CalculateDefectDensity(
                code.CalculateLOC() + code.ModifiedBy().Deleted().CalculateLOC(),
                code.CalculateNumberOfDefects()
            );
        }
示例#3
0
        public static double CalculateDefectCodeDensity(this CodeBlockSelectionExpression code, string revision)
        {
            code = code
                .Commits().TillRevision(revision)
                .CodeBlocks().Again().AddedInitiallyInCommits().Fixed();

            return CalculateDefectCodeDensity(
                code.CalculateLOC(),
                code.CalculateDefectCodeSize(revision)
            );
        }
示例#4
0
        public static double CalculateTraditionalDefectDensity(this CodeBlockSelectionExpression code, string revision)
        {
            code = code
                .Commits().TillRevision(revision)
                .CodeBlocks().Again().AddedInitiallyInCommits().Fixed();

            return CalculateDefectDensity(
                code.CalculateLOC()
                +
                code
                    .Modifications().InCommits()
                    .CodeBlocks().Again().ModifiedBy().Deleted().InModifications().CalculateLOC(),
                code.CalculateNumberOfDefects(revision)
            );
        }