public static double CalculateDefectCodeSize(this CodeBlockSelectionExpression code, string revision)
 {
     return - code
         .Commits().TillRevision(revision)
         .Modifications().InCommits()
         .CodeBlocks().Again().ModifiedBy().InModifications().InBugFixes().CalculateLOC();
 }
        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)
            );
        }
        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)
            );
        }