1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using NUnit.Framework;
- using Unity.Collections.LowLevel.Unsafe;
- using Unity.Collections.Tests;
-
- internal class UnsafeCounterTests
- {
- [Test]
- public unsafe void UnsafeAtomicCounter32_AddSub()
- {
- int value = 0;
- var counter = new UnsafeAtomicCounter32(&value);
-
- Assert.AreEqual(0, counter.Add(123));
- Assert.AreEqual(123, counter.Add(0));
- Assert.AreEqual(123, counter.Sub(0));
- Assert.AreEqual(123, counter.AddSat(1, 123));
- Assert.AreEqual(123, counter.SubSat(1, 123));
-
- counter.AddSat(0xffff, 256);
- Assert.AreEqual(256, counter.Add(0));
-
- counter.SubSat(0xffff, -256);
- Assert.AreEqual(-256, counter.Add(0));
- }
-
- [Test]
- public unsafe void UnsafeAtomicCounter64_AddSub()
- {
- long value = 0;
- var counter = new UnsafeAtomicCounter64(&value);
-
- Assert.AreEqual(0, counter.Add(123));
- Assert.AreEqual(123, counter.Add(0));
- Assert.AreEqual(123, counter.Sub(0));
- Assert.AreEqual(123, counter.AddSat(1, 123));
- Assert.AreEqual(123, counter.SubSat(1, 123));
-
- counter.AddSat(0xffff, 256);
- Assert.AreEqual(256, counter.Add(0));
-
- counter.SubSat(0xffff, -256);
- Assert.AreEqual(-256, counter.Add(0));
- }
- }
|