Esempio n. 1
0
        /// <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));
        }
Esempio n. 3
0
 public void Get()
 {
     // ReSharper disable UnusedVariable
     var x = _num.GetValue();
     // ReSharper restore UnusedVariable
 }
Esempio n. 4
0
 /// <inheritdoc />
 public double GetValue(bool resetMetric = false)
 {
     return(resetMetric ? _gauge.GetAndReset() : _gauge.GetValue());
 }
Esempio n. 5
0
 public void Can_add_value()
 {
     _num.Add(7.0).Should().Be(7.0);
     _num.GetValue().Should().Be(7.0);
 }