private void ComputeErrors(IEnumerable <EstimationResult> result) { var weightedMeanError = 0.0; var trendError = 0.0; var armaError = 0.0; var neuronNetworkError = 0.0; var estimatesCount = 0; for (int i = 0; i < Data.Count - 1; i++) { if (Data[i].WeightedMeanEstimation.HasValue) { weightedMeanError += Math.Abs(Data[i].WeightedMeanEstimation.Value - Data[i + 1].Value); trendError += Math.Abs(Data[i].TrendEstimation.Value - Data[i + 1].Value); armaError += Math.Abs(Data[i].ArmaEstimation.Value - Data[i + 1].Value); neuronNetworkError += Math.Abs(Data[i].NeuronNetworkEstimation.Value - Data[i + 1].Value); estimatesCount++; } } result.First(x => x.Estimator == Estimator.WeightedMean).Error = Math2.DivWithZero(weightedMeanError, estimatesCount); result.First(x => x.Estimator == Estimator.Trend).Error = Math2.DivWithZero(trendError, estimatesCount); result.First(x => x.Estimator == Estimator.NeuronNetwork).Error = Math2.DivWithZero(neuronNetworkError, estimatesCount); result.First(x => x.Estimator == Estimator.ARMA).Error = Math2.DivWithZero(armaError, estimatesCount); }
public void DivWithZero_is_correct(double a, double b, double expectedResult) { Math2.DivWithZero(a, b).ShouldBe(expectedResult); }