Example #1
0
        public ThresholdTypeFlags GetThresholdTypesBelowThreshold(CoverageSummary summary, Dictionary <ThresholdTypeFlags, double> thresholdTypeFlagValues, ThresholdStatistic thresholdStat)
        {
            var thresholdTypeFlags = ThresholdTypeFlags.None;

            switch (thresholdStat)
            {
            case ThresholdStatistic.Minimum:
            {
                foreach (var module in Modules)
                {
                    double line   = summary.CalculateLineCoverage(module.Value).Percent;
                    double branch = summary.CalculateBranchCoverage(module.Value).Percent;
                    double method = summary.CalculateMethodCoverage(module.Value).Percent;

                    if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Line, out var lineThresholdValue) && lineThresholdValue > line)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Line;
                    }

                    if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Branch, out var branchThresholdValue) && branchThresholdValue > branch)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Branch;
                    }

                    if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Method, out var methodThresholdValue) && methodThresholdValue > method)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Method;
                    }
                }
            }
            break;

            case ThresholdStatistic.Average:
            {
                double line   = summary.CalculateLineCoverage(Modules).AverageModulePercent;
                double branch = summary.CalculateBranchCoverage(Modules).AverageModulePercent;
                double method = summary.CalculateMethodCoverage(Modules).AverageModulePercent;

                if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Line, out var lineThresholdValue) && lineThresholdValue > line)
                {
                    thresholdTypeFlags |= ThresholdTypeFlags.Line;
                }

                if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Branch, out var branchThresholdValue) && branchThresholdValue > branch)
                {
                    thresholdTypeFlags |= ThresholdTypeFlags.Branch;
                }

                if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Method, out var methodThresholdValue) && methodThresholdValue > method)
                {
                    thresholdTypeFlags |= ThresholdTypeFlags.Method;
                }
            }
            break;

            case ThresholdStatistic.Total:
            {
                double line   = summary.CalculateLineCoverage(Modules).Percent;
                double branch = summary.CalculateBranchCoverage(Modules).Percent;
                double method = summary.CalculateMethodCoverage(Modules).Percent;

                if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Line, out var lineThresholdValue) && lineThresholdValue > line)
                {
                    thresholdTypeFlags |= ThresholdTypeFlags.Line;
                }

                if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Branch, out var branchThresholdValue) && branchThresholdValue > branch)
                {
                    thresholdTypeFlags |= ThresholdTypeFlags.Branch;
                }

                if (thresholdTypeFlagValues.TryGetValue(ThresholdTypeFlags.Method, out var methodThresholdValue) && methodThresholdValue > method)
                {
                    thresholdTypeFlags |= ThresholdTypeFlags.Method;
                }
            }
            break;
            }

            return(thresholdTypeFlags);
        }
Example #2
0
        public ThresholdTypeFlags GetThresholdTypesBelowThreshold(CoverageSummary summary, double threshold, ThresholdTypeFlags thresholdTypes, ThresholdStatistic thresholdStat)
        {
            var thresholdTypeFlags = ThresholdTypeFlags.None;

            switch (thresholdStat)
            {
            case ThresholdStatistic.Minimum:
            {
                foreach (var module in Modules)
                {
                    double line   = summary.CalculateLineCoverage(module.Value).Percent;
                    double branch = summary.CalculateBranchCoverage(module.Value).Percent;
                    double method = summary.CalculateMethodCoverage(module.Value).Percent;

                    if ((thresholdTypes & ThresholdTypeFlags.Line) != ThresholdTypeFlags.None)
                    {
                        if (line < threshold)
                        {
                            thresholdTypeFlags |= ThresholdTypeFlags.Line;
                        }
                    }

                    if ((thresholdTypes & ThresholdTypeFlags.Branch) != ThresholdTypeFlags.None)
                    {
                        if (branch < threshold)
                        {
                            thresholdTypeFlags |= ThresholdTypeFlags.Branch;
                        }
                    }

                    if ((thresholdTypes & ThresholdTypeFlags.Method) != ThresholdTypeFlags.None)
                    {
                        if (method < threshold)
                        {
                            thresholdTypeFlags |= ThresholdTypeFlags.Method;
                        }
                    }
                }
            }
            break;

            case ThresholdStatistic.Average:
            {
                double line   = summary.CalculateLineCoverage(Modules).AverageModulePercent;
                double branch = summary.CalculateBranchCoverage(Modules).AverageModulePercent;
                double method = summary.CalculateMethodCoverage(Modules).AverageModulePercent;

                if ((thresholdTypes & ThresholdTypeFlags.Line) != ThresholdTypeFlags.None)
                {
                    if (line < threshold)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Line;
                    }
                }

                if ((thresholdTypes & ThresholdTypeFlags.Branch) != ThresholdTypeFlags.None)
                {
                    if (branch < threshold)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Branch;
                    }
                }

                if ((thresholdTypes & ThresholdTypeFlags.Method) != ThresholdTypeFlags.None)
                {
                    if (method < threshold)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Method;
                    }
                }
            }
            break;

            case ThresholdStatistic.Total:
            {
                double line   = summary.CalculateLineCoverage(Modules).Percent;
                double branch = summary.CalculateBranchCoverage(Modules).Percent;
                double method = summary.CalculateMethodCoverage(Modules).Percent;

                if ((thresholdTypes & ThresholdTypeFlags.Line) != ThresholdTypeFlags.None)
                {
                    if (line < threshold)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Line;
                    }
                }

                if ((thresholdTypes & ThresholdTypeFlags.Branch) != ThresholdTypeFlags.None)
                {
                    if (branch < threshold)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Branch;
                    }
                }

                if ((thresholdTypes & ThresholdTypeFlags.Method) != ThresholdTypeFlags.None)
                {
                    if (method < threshold)
                    {
                        thresholdTypeFlags |= ThresholdTypeFlags.Method;
                    }
                }
            }
            break;
            }

            return(thresholdTypeFlags);
        }