public async void CalculateServiceCalculateStandardDeviationShouldCalculateStandardDeviation() { //Arrange var optimistic = _fixture.Create <double>(); var pessimistic = _fixture.Create <double>(); //Act var assertResult = Math.Round((optimistic - pessimistic) / 6, 4); //According to its formula (See the description upper) var result = await _calculateService.CalculateStDeviation(optimistic, pessimistic); //Assert result.Should().Be(assertResult); }
public async Task <SummaryAssessment> CalculateTasks(double desiredCompletionTime, string estimationTimeFormat) { var tasksItems = await GetTasksList(); var totalAssessments = new SummaryAssessment(); totalAssessments.DesiredCompletionTime = desiredCompletionTime; totalAssessments.EstimationTimeFormat = estimationTimeFormat; foreach (var taskItem in tasksItems) { taskItem.Assessments.Estimation = 0; taskItem.Assessments.StDeviation = 0; taskItem.Assessments.Variance = 0; } foreach (var taskItem in tasksItems) { var optimistic = taskItem.Assessments.Optimistic; var mostLikely = taskItem.Assessments.MostLikely; var pessimistic = taskItem.Assessments.Pessimistic; var deviation = await _calculateService.CalculateStDeviation(optimistic, pessimistic); taskItem.Assessments.Estimation = await _calculateService.CalculateEstimation(optimistic, mostLikely, pessimistic); taskItem.Assessments.StDeviation += deviation; taskItem.Assessments.Variance += await _calculateService.CalculateVariance(deviation); totalAssessments.SumEstimation += taskItem.Assessments.Estimation; totalAssessments.SumStDeviation += taskItem.Assessments.StDeviation; totalAssessments.SumVariance += taskItem.Assessments.Variance; } totalAssessments.PercentageOfCompletion = await _calculateService.CalculatePercentageOfCompletion(totalAssessments.SumEstimation, totalAssessments.SumVariance, desiredCompletionTime); await _cacheService.Upadate <SummaryAssessment>(nameof(SummaryAssessment), totalAssessments); return(totalAssessments); }