internal TestResultSummary(TestResult testResult, ITestOutcomeFilter outcomeFilter) { TestResult = testResult; Successes = TestResult.Outcomes.Count(o => o.Exception == null); Failures = TestResult.Outcomes.Count() - Successes; var eligibleOutcomes = outcomeFilter.Filter(TestResult.Outcomes); if (eligibleOutcomes.Any()) { AverageExecutionTime = eligibleOutcomes.Average(o => o.Elapsed.TotalMilliseconds); } }
internal TestResultSummary(TestResult testResult, ITestOutcomeFilter outcomeFilter) { TestResult = testResult; Successes = TestResult.Outcomes.Count(o => o.Exception == null); Failures = TestResult.Outcomes.Count() - Successes; var eligibleOutcomes = outcomeFilter.Filter(TestResult.Outcomes); if (eligibleOutcomes.Any()) { AverageExecutionTime = eligibleOutcomes.Average(o => o.Elapsed.TotalMilliseconds); MinExecutionTime = eligibleOutcomes.Min(o => o.Elapsed.TotalMilliseconds); MaxExecutionTime = eligibleOutcomes.Max(o => o.Elapsed.TotalMilliseconds); var sum = eligibleOutcomes.Sum(x => (x.Elapsed.TotalMilliseconds - AverageExecutionTime) * (x.Elapsed.TotalMilliseconds - AverageExecutionTime)); StandardDeviation = Math.Sqrt(sum / eligibleOutcomes.Count()); TotalExecutionTime = eligibleOutcomes.Sum(o => o.Elapsed.TotalMilliseconds); } }