public void ConstructorDefaultsValueToZero() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp)) { Assert.That(intPtr.Value, Is.EqualTo(0)); } }
public void ConstructorSetsInitialValue() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp, 123)) { Assert.That(intPtr.Value, Is.EqualTo(123)); } }
public void ParallelForJobCanUseParallelPtr() { using (NativeArray <long> array = new NativeArray <long>( 3, Allocator.TempJob)) { NativeArray <long> arrayCopy = array; arrayCopy[0] = 10; arrayCopy[1] = 20; arrayCopy[2] = 30; using (NativeLongPtr sum = new NativeLongPtr( Allocator.TempJob)) { ParallelForTestJob job = new ParallelForTestJob { Array = array, Sum = sum.GetParallel() }; job.Run(array.Length); Assert.That(sum.Value, Is.EqualTo(60)); } } }
public void DisposeRequiresReadAccess() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp)) { AssertRequiresReadOrWriteAccess( intPtr, intPtr.Dispose); } }
public void DisposeMakesUnusable() { NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp); intPtr.Dispose(); Assert.That( () => intPtr.Value = 10, Throws.TypeOf <InvalidOperationException>()); }
public void ParallelIncrementIncrementsValue() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp, 123)) { NativeLongPtr.Parallel parallel = intPtr.GetParallel(); parallel.Increment(); Assert.That(intPtr.Value, Is.EqualTo(124)); } }
public void SetValueRequiresReadAccess() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp)) { NativeLongPtr copy = intPtr; AssertRequiresReadOrWriteAccess( intPtr, () => copy.Value = 123); } }
public void GetValueRequiresReadAccess() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp)) { long value; AssertRequiresReadOrWriteAccess( intPtr, () => value = intPtr.Value); } }
public void GetValueReturnsWhatSetValueSets() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp)) { NativeLongPtr copy = intPtr; copy.Value = 123; Assert.That(intPtr.Value, Is.EqualTo(123)); } }
public void IsCreatedOnlyReturnsTrueBeforeDispose() { NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp); Assert.That(intPtr.IsCreated, Is.True); intPtr.Dispose(); Assert.That(intPtr.IsCreated, Is.False); }
public void ParallelAddRequiresReadAccess() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp)) { NativeLongPtr.Parallel parallel = intPtr.GetParallel(); AssertRequiresReadOrWriteAccess( intPtr, () => parallel.Add(10)); } }
public void ParallelDecrementRequiresReadAccess() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp)) { NativeLongPtr.Parallel parallel = intPtr.GetParallel(); AssertRequiresReadOrWriteAccess( intPtr, parallel.Decrement); } }
public void CanDeallocateOnJobCompletion() { NativeLongPtr intPtr = new NativeLongPtr(Allocator.TempJob); var job = new DeallocateOnJobCompletionJob { LongPtr = intPtr }; job.Run(); Assert.That( () => intPtr.Value = 10, Throws.TypeOf <InvalidOperationException>()); }
public void ParallelAddOffsetsValue() { using (NativeLongPtr intPtr = new NativeLongPtr(Allocator.Temp, 123)) { NativeLongPtr.Parallel parallel = intPtr.GetParallel(); parallel.Add(5); Assert.That(intPtr.Value, Is.EqualTo(128)); parallel.Add(-15); Assert.That(intPtr.Value, Is.EqualTo(113)); } }
private static void AssertRequiresReadOrWriteAccess( NativeLongPtr intPtr, Action action) { intPtr.TestUseOnlySetAllowReadAndWriteAccess(false); try { Assert.That( () => action(), Throws.TypeOf <InvalidOperationException>()); } finally { intPtr.TestUseOnlySetAllowReadAndWriteAccess(true); } }