private void validate(Averaging <int, double> averaging, ObservableCollection <int> items) { if (items.Count > 0) { Assert.AreEqual(averaging.Value, items.Average()); } else { Assert.AreEqual(averaging.Value, double.NaN); } }
/// <summary> /// /// </summary> /// <param name="averaging"></param> /// <param name="countOfPool"></param> /// <param name="isPreInit"></param> public Average(Averaging averaging, int countOfPool = 10, bool isPreInit = false) { this.averaging = averaging; if (countOfPool < 1) { throw new Exception("Average can`t have " + countOfPool.ToString() + " element. Must be greater than 0!"); } maxCount = countOfPool; elements = new List <T>(countOfPool); if (isPreInit) { for (int i = 0; i < countOfPool; i++) { elements.Add(default);
public void Set(PlotAttribute Other) { this.TraceParameter = Other.TraceParameter; this.AveragingType = Other.AveragingType; this.Type = Other.Type; this.WindowWidth = Other.WindowWidth; this.ModuloEnabled = Other.ModuloEnabled; this.ModuloValue = Other.ModuloValue; this.MinEnabled = Other.MinEnabled; this.MinValue = Other.MinValue; this.MaxEnabled = Other.MaxEnabled; this.MaxValue = Other.MaxValue; this.UseY2Axis = Other.UseY2Axis; this.ShowPoints = Other.ShowPoints; this.ShowLines = Other.ShowLines; this.ScaleData = Other.ScaleData; this.ScaleDataCommand = Other.ScaleDataCommand; }
public override string ToString() { return($"{(UseY2Axis ? "Y2" : "Y")}: {TraceParameter.Name} -> {AveragingType}{(AveragingType != Averaging.Raw ? $" ({WindowWidth})" : "")}{(ModuloEnabled ? $", Modulo: {ModuloValue}" : "")}"); }
private void test(int[] values) { string testNum = string.Empty; int index = 0; int value = 0; int indexOld = 0; int indexNew = 0; ObservableCollection <int> items; Averaging <int, double> averaging; try { trace(testNum = "1", values, index, value, indexOld, indexNew); items = getObservableCollection(values); averaging = items.Averaging <int, double>(); //averaging.ValidateConsistency(); validate(averaging, items); for (index = 0; index < values.Length; index++) { trace(testNum = "2", values, index, value, indexOld, indexNew); items = getObservableCollection(values); Averaging <int, double> averageComputing1 = items.Averaging <int, double>(); items.RemoveAt(index); //averageComputing1.ValidateConsistency(); validate(averageComputing1, items); } for (index = 0; index <= values.Length; index++) { for (value = 0; value <= values.Length; value++) { trace(testNum = "8", values, index, value, indexOld, indexNew); items = getObservableCollection(values); Averaging <int, double> averageComputing1 = items.Averaging <int, double>(); items.Insert(index, value); //averageComputing1.ValidateConsistency(); validate(averageComputing1, items); } } for (index = 0; index < values.Length; index++) { for (value = -1; value <= values.Length; value++) { trace(testNum = "3", values, index, value, indexOld, indexNew); items = getObservableCollection(values); Averaging <int, double> averageComputing2 = items.Averaging <int, double>(); items[index] = value; //averageComputing2.ValidateConsistency(); validate(averageComputing2, items); } } for (indexOld = 0; indexOld < values.Length; indexOld++) { for (indexNew = 0; indexNew < values.Length; indexNew++) { trace(testNum = "7", values, index, value, indexOld, indexNew); items = getObservableCollection(values); Averaging <int, double> averageComputing2 = items.Averaging <int, double>(); items.Move(indexOld, indexNew); //averageComputing2.ValidateConsistency(); validate(averageComputing2, items); } } } catch (Exception e) { string traceString = getTraceString(testNum, values, index, value, indexOld, indexNew); _textFileOutputLog.AppentLine(traceString); _textFileOutputLog.AppentLine(e.Message); _textFileOutputLog.AppentLine(e.StackTrace); throw new Exception(traceString, e); } }
private void validate(Averaging <int, double> averaging, ObservableCollection <int> items) { Assert.AreEqual(averaging.Value, items.Count > 0 ? items.Average() : double.NaN); consumer.Dispose(); }
// Internal Methods internal virtual void Reset() { Averaging.Reset(); Offset.Reset(); _frequency = 50e6; }
/// <summary> /// Sets new averaging /// </summary> /// <param name="averaging">Averaging</param> public void SetAveraging(Averaging averaging) { Set(Commands.Averaging, (int)averaging); }