public DbObject ProcessObjectCoverage(DbObject dbObject) { var dbObjectClone = dbObject.Get(); if (dbObjectClone.Code == null) return dbObjectClone; if (dbObjectClone.CoveredSegments.Count > 0) { var codeWithHighlights = _dbCodeFormatter.FormatCodeWithHighlights(dbObjectClone.Code, dbObjectClone.CoveredSegments); dbObjectClone.CoveredSegments = ProcessHighlightedCode(codeWithHighlights); var functionalHighlightedCode = _dataScrubber.Scrub(codeWithHighlights, "floc.scrub"); var functionalSegments = ProcessHighlightedCode(functionalHighlightedCode); foreach (var functionalSegment in functionalSegments) { dbObjectClone.CoveredCharacters += functionalSegment.EndByte - functionalSegment.StartByte; dbObjectClone.CoveredLinesOfCode += functionalSegment.LinesOfCode; } } var functionalCode = _dataScrubber.Scrub(dbObjectClone.Code, "floc.scrub"); dbObjectClone.TotalLoc = dbObjectClone.Code.Split('\n').Length; dbObjectClone.TotalCharacters = dbObjectClone.Code.Length; dbObjectClone.TotalFloc = functionalCode.Split('\n').Length; dbObjectClone.TotalFunctionalCharacters = functionalCode.Length; dbObjectClone.CoveredPercent = (decimal)dbObjectClone.CoveredCharacters / dbObjectClone.TotalFunctionalCharacters; return dbObjectClone; }
public void Set(DbObject dbObject) { Code = dbObject.Code; CodeHighlighted = dbObject.CodeHighlighted; CoveredSegments = dbObject.CoveredSegments; CoveredCharacters = dbObject.CoveredCharacters; CoveredLinesOfCode = dbObject.CoveredLinesOfCode; CoveredPercent = dbObject.CoveredPercent; TotalLoc = dbObject.TotalLoc; TotalFloc = dbObject.TotalFloc; TotalFunctionalCharacters = dbObject.TotalFunctionalCharacters; Name = dbObject.Name; TotalCharacters = dbObject.TotalCharacters; }