private void ComputeYValueRange()

in Sources/Visualization/Microsoft.Psi.Visualization.Windows/VisualizationObjects/NumericPlot/PlotSeriesVisualizationObject.cs [223:278]


        private void ComputeYValueRange()
        {
            double min = double.MaxValue;
            double max = double.MinValue;

            if ((this.Data != null) && (this.Data.Count > 0))
            {
                foreach (var dictionary in this.Data)
                {
                    foreach (var data in dictionary.Data.Values)
                    {
                        var doubleValue = this.GetNumericValue(data);
                        if (!double.IsNaN(doubleValue) && !double.IsInfinity(doubleValue))
                        {
                            min = Math.Min(min, doubleValue);
                            max = Math.Max(max, doubleValue);
                        }
                    }
                }
            }
            else if ((this.SummaryData != null) && (this.SummaryData.Count > 0))
            {
                foreach (var dictionary in this.SummaryData)
                {
                    foreach (var data in dictionary.Minimum.Values)
                    {
                        var doubleMinimum = this.GetNumericValue(data);
                        if (!double.IsNaN(doubleMinimum) && !double.IsInfinity(doubleMinimum))
                        {
                            min = Math.Min(min, doubleMinimum);
                        }
                    }

                    foreach (var data in dictionary.Maximum.Values)
                    {
                        var doubleMaximum = this.GetNumericValue(data);
                        if (!double.IsNaN(doubleMaximum) && !double.IsInfinity(doubleMaximum))
                        {
                            max = Math.Max(max, doubleMaximum);
                        }
                    }
                }
            }

            if (max >= min)
            {
                if (this.YValueRange == null || this.YValueRange.Minimum != min || this.YAxis.Maximum != max)
                {
                    this.YValueRange = new ValueRange<double>(min, max);
                }
            }
            else if (this.YValueRange != null)
            {
                this.YValueRange = null;
            }
        }