/// <inheritdoc cref="IReservoir" /> public IReservoirSnapshot GetSnapshot(bool resetReservoir) { var size = Math.Min((int)_count.GetValue(), _values.Length); if (size == 0) { return(new UniformSnapshot(0, 0.0, Enumerable.Empty <long>())); } var snapshotValues = new UserValueWrapper[size]; Array.Copy(_values, snapshotValues, size); Array.Sort(snapshotValues, UserValueWrapper.Comparer); var minValue = snapshotValues[0].UserValue; var maxValue = snapshotValues[size - 1].UserValue; var result = new UniformSnapshot( _count.GetValue(), _sum.GetValue(), snapshotValues.Select(v => v.Value), true, minValue, maxValue); if (resetReservoir) { Array.Clear(_values, 0, snapshotValues.Length); _count.SetValue(0L); _sum.SetValue(0.0); } return(result); }
// ReSharper restore MemberCanBePrivate.Global /// <inheritdoc cref="IReservoir" /> public IReservoirSnapshot GetSnapshot(bool resetReservoir) { var size = Size; if (size == 0) { return(new UniformSnapshot(0, 0.0, Enumerable.Empty <long>())); } var snapshotValues = new UserValueWrapper[size]; Array.Copy(_values, snapshotValues, size); if (resetReservoir) { _count.SetValue(0L); _sum.SetValue(0.0); } Array.Sort(snapshotValues, UserValueWrapper.Comparer); var minValue = snapshotValues[0].UserValue; var maxValue = snapshotValues[size - 1].UserValue; return(new UniformSnapshot( _count.GetValue(), _sum.GetValue(), snapshotValues.Select(v => v.Value), valuesAreSorted: true, minUserValue: minValue, maxUserValue: maxValue)); }
public void Get() { // ReSharper disable UnusedVariable var x = _num.GetValue(); // ReSharper restore UnusedVariable }
/// <inheritdoc /> public double GetValue(bool resetMetric = false) { return(resetMetric ? _gauge.GetAndReset() : _gauge.GetValue()); }
public void Can_add_value() { _num.Add(7.0).Should().Be(7.0); _num.GetValue().Should().Be(7.0); }