Example #1
0
        private IAggregate GetExtendedStatsAggregate(StatsAggregate statsMetric, JsonReader reader)
        {
            var extendedStatsMetric = new ExtendedStatsAggregate()
            {
                Average = statsMetric.Average,
                Count   = statsMetric.Count,
                Max     = statsMetric.Max,
                Min     = statsMetric.Min,
                Sum     = statsMetric.Sum
            };

            reader.Read();
            extendedStatsMetric.SumOfSquares = (reader.Value as double?);
            reader.Read();
            reader.Read();
            extendedStatsMetric.Variance = (reader.Value as double?);
            reader.Read(); reader.Read();
            extendedStatsMetric.StdDeviation = (reader.Value as double?);
            reader.Read();

            if (reader.TokenType != JsonToken.EndObject)
            {
                var bounds = new StandardDeviationBounds();
                reader.Read();
                reader.Read();
                if ((reader.Value as string) == "upper")
                {
                    reader.Read();
                    bounds.Upper = reader.Value as double?;
                }
                reader.Read();
                if ((reader.Value as string) == "lower")
                {
                    reader.Read();
                    bounds.Lower = reader.Value as double?;
                }
                extendedStatsMetric.StdDeviationBounds = bounds;
                reader.Read();
                reader.Read();
            }
            while (reader.TokenType != JsonToken.EndObject && (reader.Value as string).Contains("_as_string"))
            {
                // std_deviation_bounds is an object, so we need to skip its properties
                if ((reader.Value as string).Equals("std_deviation_bounds_as_string"))
                {
                    reader.Read();
                    reader.Read();
                    reader.Read();
                    reader.Read();
                }
                reader.Read();
                reader.Read();
            }
            return(extendedStatsMetric);
        }
        private IAggregate GetExtendedStatsAggregate(ref JsonReader reader, StatsAggregate statsMetric, IReadOnlyDictionary <string, object> meta)
        {
            var extendedStatsMetric = new ExtendedStatsAggregate
            {
                Average = statsMetric.Average,
                Count   = statsMetric.Count,
                Max     = statsMetric.Max,
                Min     = statsMetric.Min,
                Sum     = statsMetric.Sum,
                Meta    = statsMetric.Meta
            };

            extendedStatsMetric.SumOfSquares = reader.ReadNullableDouble();
            reader.ReadNext();             // ,
            reader.ReadNext();             // "variance"
            reader.ReadNext();             // :
            extendedStatsMetric.Variance = reader.ReadNullableDouble();
            reader.ReadNext();             // ,
            reader.ReadNext();             // "std_deviation"
            reader.ReadNext();             // :
            extendedStatsMetric.StdDeviation = reader.ReadNullableDouble();

            if (reader.GetCurrentJsonToken() != JsonToken.EndObject)
            {
                var bounds = new StandardDeviationBounds();
                reader.ReadNext();                 // ,
                reader.ReadNext();                 // "std_deviation_bounds"
                reader.ReadNext();                 // :
                reader.ReadNext();                 // {
                reader.ReadNext();                 // "upper"
                reader.ReadNext();                 // :
                bounds.Upper = reader.ReadNullableDouble();
                reader.ReadNext();                 // ,
                reader.ReadNext();                 // "lower"
                reader.ReadNext();                 // :
                bounds.Lower = reader.ReadNullableDouble();
                reader.ReadNext();                 // }
                extendedStatsMetric.StdDeviationBounds = bounds;
            }

            // read any remaining _as_string fields
            while (reader.GetCurrentJsonToken() != JsonToken.EndObject)
            {
                reader.ReadNextBlock();
            }

            return(extendedStatsMetric);
        }
Example #3
0
        private IAggregate GetExtendedStatsAggregate(StatsAggregate statsMetric, JsonReader reader)
        {
            var extendedStatsMetric = new ExtendedStatsAggregate()
            {
                Average = statsMetric.Average,
                Count   = statsMetric.Count,
                Max     = statsMetric.Max,
                Min     = statsMetric.Min,
                Sum     = statsMetric.Sum
            };

            reader.Read();
            extendedStatsMetric.SumOfSquares = (reader.Value as double?);
            reader.Read();
            reader.Read();
            extendedStatsMetric.Variance = (reader.Value as double?);
            reader.Read();
            reader.Read();
            extendedStatsMetric.StdDeviation = (reader.Value as double?);
            reader.Read();

            string propertyName;

            if (reader.TokenType != JsonToken.EndObject)
            {
                var bounds = new StandardDeviationBounds();
                reader.Read();
                reader.Read();

                propertyName = (string)reader.Value;
                if (propertyName == Parser.Upper)
                {
                    reader.Read();
                    bounds.Upper = reader.Value as double?;
                }
                reader.Read();

                propertyName = (string)reader.Value;
                if (propertyName == Parser.Lower)
                {
                    reader.Read();
                    bounds.Lower = reader.Value as double?;
                }
                extendedStatsMetric.StdDeviationBounds = bounds;
                reader.Read();
                reader.Read();
            }

            propertyName = (string)reader.Value;
            while (reader.TokenType != JsonToken.EndObject && propertyName.Contains(Parser.AsStringSuffix))
            {
                // std_deviation_bounds is an object, so we need to skip its properties
                if (propertyName.Equals(Parser.StdDeviationBoundsAsString))
                {
                    reader.Read();
                    reader.Read();
                    reader.Read();
                    reader.Read();
                }
                reader.Read();
                reader.Read();
            }
            return(extendedStatsMetric);
        }
		private IAggregate GetExtendedStatsAggregation(StatsAggregate statsMetric, JsonReader reader)
		{
			var extendedStatsMetric = new ExtendedStatsAggregate()
			{
				Average = statsMetric.Average,
				Count = statsMetric.Count,
				Max = statsMetric.Max,
				Min = statsMetric.Min,
				Sum = statsMetric.Sum
			};

			reader.Read();
			extendedStatsMetric.SumOfSquares = (reader.Value as double?);
			reader.Read();
			reader.Read();
			extendedStatsMetric.Variance = (reader.Value as double?);
			reader.Read(); reader.Read();
			extendedStatsMetric.StdDeviation = (reader.Value as double?);
			reader.Read();

			if (reader.TokenType != JsonToken.EndObject)
			{
				var bounds = new StandardDeviationBounds();
				reader.Read();
				reader.Read();
				if ((reader.Value as string) == "upper")
				{
					reader.Read();
					bounds.Upper = reader.Value as double?;
				}
				reader.Read();
				if ((reader.Value as string) == "lower")
				{
					reader.Read();
					bounds.Lower = reader.Value as double?;
				}
				extendedStatsMetric.StdDeviationBounds = bounds;
				reader.Read();
				reader.Read();
			}
			while (reader.TokenType != JsonToken.EndObject && (reader.Value as string).Contains("_as_string"))
			{
				// std_deviation_bounds is an object, so we need to skip its properties
				if ((reader.Value as string).Equals("std_deviation_bounds_as_string"))
				{
					reader.Read();
					reader.Read();
					reader.Read();
					reader.Read();
				}
				reader.Read();
				reader.Read();
			}
			return extendedStatsMetric;
		}