/// <summary> /// Averages the supplied item with the previously supplied items. /// </summary> /// <param name="localAverage">The local average to add to the global average.</param> public void Aggregate(CosmosElement localAverage) { // item is a JObject of the form : { "sum": <number>, "count": <number> } AverageInfo newInfo = AverageInfo.Create(localAverage); this.globalAverage += newInfo; }
// Calculate the average and limit the range. protected double CalcNLimitAverage(double min, double max, IFormatProvider provider) { // Get the format provider and calculate the average. AverageInfo avgInfo = GetAverageInfo(provider); double avg = Average(avgInfo.TypeOfAverage); // Limit the range, based on the minimum and maximum values // for the type. return(avg > max ? max : avg < min ? min : avg); }
public static CosmosElement ToCosmosElement(AverageInfo averageInfo) { Dictionary <string, CosmosElement> dictionary = new Dictionary <string, CosmosElement>(); if (averageInfo.Sum.HasValue) { dictionary.Add(AverageInfo.SumName, CosmosNumber64.Create(averageInfo.Sum.Value)); } dictionary.Add(AverageInfo.CountName, CosmosNumber64.Create(averageInfo.Count)); return(CosmosObject.Create(dictionary)); }
public void Aggregate(dynamic item) { AverageInfo newInfo = ((JObject)item).ToObject <AverageInfo>(); if (this.info == null) { this.info = newInfo; } else { this.info += newInfo; } }
/// <summary> /// Averages the supplied item with the previously supplied items. /// </summary> /// <param name="localAverage">The local average to add to the global average.</param> public void Aggregate(CosmosElement localAverage) { // item is a JObject of the form : { "sum": <number>, "count": <number> } TryCatch <AverageInfo> tryCreateAverageInfo = AverageInfo.TryCreateFromCosmosElement(localAverage); if (!tryCreateAverageInfo.Succeeded) { throw tryCreateAverageInfo.Exception; } AverageInfo newInfo = tryCreateAverageInfo.Result; this.globalAverage += newInfo; }
public static bool TryParse(string serializedAverageInfo, out AverageInfo averageInfo) { if (serializedAverageInfo == null) { throw new ArgumentNullException(nameof(serializedAverageInfo)); } if (!CosmosElement.TryParse(serializedAverageInfo, out CosmosElement cosmosElementAverageInfo)) { averageInfo = default(AverageInfo); return(false); } averageInfo = AverageInfo.Create(cosmosElementAverageInfo); return(true); }
public static TryCatch <IAggregator> TryCreate(string continuationToken) { AverageInfo averageInfo; if (continuationToken != null) { if (!AverageInfo.TryParse(continuationToken, out averageInfo)) { return(TryCatch <IAggregator> .FromException(new ArgumentException($"Invalid continuation token: {continuationToken}"))); } } else { averageInfo = new AverageInfo(0, 0); } return(TryCatch <IAggregator> .FromResult(new AverageAggregator(averageInfo))); }
public static AverageAggregator Create(string continuationToken) { AverageInfo averageInfo; if (continuationToken != null) { if (!AverageInfo.TryParse(continuationToken, out averageInfo)) { throw new ArgumentException($"Invalid continuation token: {continuationToken}"); } } else { averageInfo = new AverageInfo(0, 0); } return(new AverageAggregator(averageInfo)); }
// Get the AverageInfo object from the caller's format provider, // or use the local default. protected AverageInfo GetAverageInfo(IFormatProvider provider) { AverageInfo avgInfo = null; if (provider != null) { avgInfo = (AverageInfo)provider.GetFormat( typeof(AverageInfo)); } if (avgInfo == null) { return(defaultProvider); } else { return(avgInfo); } }
public static TryCatch <IAggregator> TryCreate(CosmosElement continuationToken) { AverageInfo averageInfo; if (continuationToken != null) { TryCatch <AverageInfo> tryCreateAverageInfo = AverageInfo.TryCreateFromCosmosElement(continuationToken); if (!tryCreateAverageInfo.Succeeded) { return(TryCatch <IAggregator> .FromException( new MalformedContinuationTokenException( message : $"Invalid continuation token: {continuationToken}", innerException : tryCreateAverageInfo.Exception))); } averageInfo = tryCreateAverageInfo.Result; } else { averageInfo = new AverageInfo(0, 0); } return(TryCatch <IAggregator> .FromResult(new AverageAggregator(averageInfo))); }
// Construct the object and add an initial list of values. // Create a default format provider. public DataSet(params double[] values) { data = new ArrayList(values); defaultProvider = new AverageInfo(AverageType.ArithmeticMean); }
// Display a DataSet with three different format providers. public static void DisplayDataSet(DataSet ds) { string fmt = "{0,-12}{1,20}{2,20}{3,20}"; AverageInfo median = new AverageInfo(AverageType.Median); AverageInfo geMean = new AverageInfo(AverageType.GeometricMean); // Display the dataset elements. if (ds.Count > 0) { Console.Write("\nDataSet: [{0}", ds[0]); for (int iX = 1; iX < ds.Count; iX++) { Console.Write(", {0}", ds[iX]); } Console.WriteLine("]\n"); } Console.WriteLine(fmt, "Convert.", "Default", "Geometric Mean", "Median"); Console.WriteLine(fmt, "--------", "-------", "--------------", "------"); Console.WriteLine(fmt, "ToBoolean", Convert.ToBoolean(ds, null), Convert.ToBoolean(ds, geMean), Convert.ToBoolean(ds, median)); Console.WriteLine(fmt, "ToByte", Convert.ToByte(ds, null), Convert.ToByte(ds, geMean), Convert.ToByte(ds, median)); Console.WriteLine(fmt, "ToChar", Convert.ToChar(ds, null), Convert.ToChar(ds, geMean), Convert.ToChar(ds, median)); Console.WriteLine("{0,-12}{1,20:yyyy-MM-dd HH:mm:ss}" + "{2,20:yyyy-MM-dd HH:mm:ss}{3,20:yyyy-MM-dd HH:mm:ss}", "ToDateTime", Convert.ToDateTime(ds, null), Convert.ToDateTime(ds, geMean), Convert.ToDateTime(ds, median)); Console.WriteLine(fmt, "ToDecimal", Convert.ToDecimal(ds, null), Convert.ToDecimal(ds, geMean), Convert.ToDecimal(ds, median)); Console.WriteLine(fmt, "ToDouble", Convert.ToDouble(ds, null), Convert.ToDouble(ds, geMean), Convert.ToDouble(ds, median)); Console.WriteLine(fmt, "ToInt16", Convert.ToInt16(ds, null), Convert.ToInt16(ds, geMean), Convert.ToInt16(ds, median)); Console.WriteLine(fmt, "ToInt32", Convert.ToInt32(ds, null), Convert.ToInt32(ds, geMean), Convert.ToInt32(ds, median)); Console.WriteLine(fmt, "ToInt64", Convert.ToInt64(ds, null), Convert.ToInt64(ds, geMean), Convert.ToInt64(ds, median)); Console.WriteLine(fmt, "ToSByte", Convert.ToSByte(ds, null), Convert.ToSByte(ds, geMean), Convert.ToSByte(ds, median)); Console.WriteLine(fmt, "ToSingle", Convert.ToSingle(ds, null), Convert.ToSingle(ds, geMean), Convert.ToSingle(ds, median)); Console.WriteLine(fmt, "ToUInt16", Convert.ToUInt16(ds, null), Convert.ToUInt16(ds, geMean), Convert.ToUInt16(ds, median)); Console.WriteLine(fmt, "ToUInt32", Convert.ToUInt32(ds, null), Convert.ToUInt32(ds, geMean), Convert.ToUInt32(ds, median)); Console.WriteLine(fmt, "ToUInt64", Convert.ToUInt64(ds, null), Convert.ToUInt64(ds, geMean), Convert.ToUInt64(ds, median)); }
private AverageAggregator(AverageInfo globalAverage) { this.globalAverage = globalAverage; }
public CosmosElement GetCosmosElementContinuationToken() { return(AverageInfo.ToCosmosElement(this.globalAverage)); }