public void CanDecToValue(long initial, long value, long expected) { var tslong = new ThreadSafeLong(initial); tslong.DecTo(value); Assert.Equal(expected, tslong.Value); }
public void ThreadSafeLong_ValueSet() { var tsdouble = new ThreadSafeLong(); tsdouble.Value = 3L; Assert.AreEqual(3L, tsdouble.Value); }
public void CanAddValue(long initial, long added, long expected) { var tslong = new ThreadSafeLong(initial); tslong.Add(added); Assert.Equal(expected, tslong.Value); }
public void CanSetValue(long value) { var tslong = new ThreadSafeLong(0); tslong.Add(value); Assert.Equal(value, tslong.Value); }
public void ThreadSafeLong_Add() { var tsdouble = new ThreadSafeLong(3L); tsdouble.Add(2L); tsdouble.Add(5L); Assert.Equal(10L, tsdouble.Value); }
public void ThreadSafeLong_Constructors() { var tsdouble = new ThreadSafeLong(0L); Assert.Equal(0L, tsdouble.Value); tsdouble = new ThreadSafeLong(1L); Assert.Equal(1L, tsdouble.Value); }
public ProgressReport(int totalSteps) { if (totalSteps < 1) { throw new System.ArgumentException("Argument \"numberOfSteps\" cannot be less than 1."); } currentStep = new ThreadSafeLong(0); this.totalSteps = new ThreadSafeLong(totalSteps); }
public void ThreadSafeLong_Overrides() { var tsdouble = new ThreadSafeLong(9L); var equaltsdouble = new ThreadSafeLong(9L); var notequaltsdouble = new ThreadSafeLong(10L); Assert.Equal("9", tsdouble.ToString()); Assert.True(tsdouble.Equals(equaltsdouble)); Assert.False(tsdouble.Equals(notequaltsdouble)); Assert.False(tsdouble.Equals(null)); Assert.True(tsdouble.Equals(9L)); Assert.False(tsdouble.Equals(10L)); Assert.Equal(9L.GetHashCode(), tsdouble.GetHashCode()); }
public async Task AddMultiThreads(int threads, int observations) { var tslong = new ThreadSafeLong(0); var testData = new IEnumerable <long> [threads]; var sum = 0L; for (var i = 0; i < threads; i++) { var data = GenerateTestData(observations); sum += data.sum; testData[i] = data.items; } await Task.WhenAll(testData.Select(async d => { foreach (long item in d) { await Task.Yield(); tslong.Add(item); } }).ToArray()); Assert.Equal(sum, tslong.Value); }
public async Task DecToMultiThreads(int threads, int observations) { var tslong = new ThreadSafeLong(0); var testData = new IEnumerable <long> [threads]; var min = long.MaxValue; for (var i = 0; i < threads; i++) { var data = GenerateTestData(observations); min = Math.Min(data.min, min); testData[i] = data.items; } await Task.WhenAll(testData.Select(async d => { foreach (long item in d) { await Task.Yield(); tslong.DecTo(item); } }).ToArray()); Assert.Equal(min, tslong.Value); }
public void ThreadSafeLong_ValueSet() { var tsdouble = new ThreadSafeLong(3L); Assert.Equal(3L, tsdouble.Value); }
public HistogramHighBucketsStore(double[] bucketBounds) { _bounds = bucketBounds; Buckets = new ThreadSafeLong[bucketBounds.Length + 1]; // Allocate one more element for +Inf value }
public void CanInitConstructor(long value) { var tslong = new ThreadSafeLong(value); Assert.Equal(value, tslong.Value); }