public void AtomicInt32SupportsGetAndAddNegativesMultiThreaded() { const int expected = 1000; var i = new AtomicInt32(); System.Threading.Tasks.Parallel.For(0, expected, j => i.GetAndAdd(1)); Assert.AreEqual(expected, (int)i); Assert.AreEqual(expected, i.Value); }
public void AtomicInt32SupportsGetAndAdd() { const int expected = 1000; var i = new AtomicInt32(); for (int j = 0; j < expected; j++) { i.GetAndAdd(1); } Assert.AreEqual(expected, (int)i); Assert.AreEqual(expected, i.Value); }
public void AtomicInt32SupportsGetAndAddNegatives() { const int expected = 0; var i = new AtomicInt32(); i.GetAndSet(1000); for (int j = 0; j < 1000; j++) { i.GetAndAdd(-1); } Assert.AreEqual(expected, (int)i); Assert.AreEqual(expected, i.Value); }