public decimal ScoreCoverageData(CoverageMetricData coverageMetricData) { var noncoveredRatio = ((double)coverageMetricData.TotalDatabases - coverageMetricData.DatabasesCovered) / coverageMetricData.TotalDatabases; if (noncoveredRatio < 0.0075) { return(FormulaForNoncoveredRatioLessThan0_75Percent()); } return(noncoveredRatio >= 0.1 ? FormulaForNoncoveredRatioMoreThan10Percent() : FormulaForNoncoveredRatioBetween0_075And0_1Percent(noncoveredRatio)); }
public void GapCoverageAnalyzer_ScoreCoverageData(int coveredDatabases, double expectedResult, double errorMargin) { // Arrange // Arrange var coverageMetricData = new CoverageMetricData { DatabasesCovered = coveredDatabases, TotalDatabases = 10 * 1000 }; // Act var result = this.gapCoverageAnalyzer.ScoreCoverageData(coverageMetricData); // Assert Assert.That(Math.Abs((double)result - expectedResult), Is.LessThanOrEqualTo(errorMargin)); }