/// <summary> /// Create a MeasureInfo object for generic stats. /// <param name="stat">The statistics to use.</param> /// <returns>A new GenericMeasureInfo object.</returns> /// </summary> /// <param name="shouldUseGenericMeasureInfo"></param> private MeasureInfo CreateGenericMeasureInfo(Statistics stat, bool shouldUseGenericMeasureInfo) { double?sum = null; double?average = null; double?StandardDeviation = null; object max = null; object min = null; if (!_nonNumericError) { if (_measureSum) { sum = stat.sum; } if (_measureAverage && stat.count > 0) { average = stat.sum / stat.count; } if (_measureStandardDeviation) { StandardDeviation = Math.Sqrt(stat.variance); } } if (_measureMax) { if (shouldUseGenericMeasureInfo && (stat.max != null)) { double temp; LanguagePrimitives.TryConvertTo <double>(stat.max, out temp); max = temp; } else { max = stat.max; } } if (_measureMin) { if (shouldUseGenericMeasureInfo && (stat.min != null)) { double temp; LanguagePrimitives.TryConvertTo <double>(stat.min, out temp); min = temp; } else { min = stat.min; } } if (shouldUseGenericMeasureInfo) { GenericMeasureInfo gmi = new GenericMeasureInfo(); gmi.Count = stat.count; gmi.Sum = sum; gmi.Average = average; gmi.StandardDeviation = StandardDeviation; if (max != null) { gmi.Maximum = (double)max; } if (min != null) { gmi.Minimum = (double)min; } return(gmi); } else { GenericObjectMeasureInfo gomi = new GenericObjectMeasureInfo(); gomi.Count = stat.count; gomi.Sum = sum; gomi.Average = average; gomi.Maximum = max; gomi.Minimum = min; return(gomi); } }
private MeasureInfo CreateGenericMeasureInfo(Statistics stat, bool shouldUseGenericMeasureInfo) { double?nullable = null; double?nullable2 = null; object max = null; object min = null; if (!this.nonNumericError) { if (this.measureSum) { nullable = new double?(stat.sum); } if (this.measureAverage && (stat.count > 0)) { nullable2 = new double?(stat.sum / ((double)stat.count)); } } if (this.measureMax) { if (shouldUseGenericMeasureInfo && (stat.max != null)) { double num; LanguagePrimitives.TryConvertTo <double>(stat.max, out num); max = num; } else { max = stat.max; } } if (this.measureMin) { if (shouldUseGenericMeasureInfo && (stat.min != null)) { double num2; LanguagePrimitives.TryConvertTo <double>(stat.min, out num2); min = num2; } else { min = stat.min; } } if (shouldUseGenericMeasureInfo) { GenericMeasureInfo info = new GenericMeasureInfo { Count = stat.count, Sum = nullable, Average = nullable2 }; if (max != null) { info.Maximum = new double?((double)max); } if (min != null) { info.Minimum = new double?((double)min); } return(info); } return(new GenericObjectMeasureInfo { Count = stat.count, Sum = nullable, Average = nullable2, Maximum = max, Minimum = min }); }