public void CanConstructSafeArray() { SafeArray <int> a = new SafeArray <int>(500); a[1] = 1000; Assert.Equal(1000, a[1]); a.Acquire(); Assert.Equal(1000, a[1]); a.Acquire(); a.Release(); Assert.Equal(1000, a[1]); a.Release(); Assert.Equal(1000, a[1]); a.Close(); Assert.True(a.IsClosed); Assert.Throws <ObjectDisposedException>(() => a[1] == 1000); //int r = a[(2,3)] }
public void FillSetup() { InfoThis(); T fill = GM <T> .Random(); Info($"Array fill value is {fill}."); SetValue("fill", fill); SetValue("managedArray", new T[ArraySize]); SafeArray <T> nativeArray = new SafeArray <T>(ArraySize); nativeArray.Acquire(); SetValue("nativeArray", new SafeArray <T>(ArraySize)); }
public void ArithmeticMutiplyGlobalSetup() { InfoThis(); (T mul, T fill) = GM <T> .RandomMultiplyFactorAndValue(); SafeArray <T> na = new SafeArray <T>(ArraySize); T[] ma = new T[ArraySize]; Info($"Array fill value is {fill}."); Info($"Array mul value is {mul}."); na.Fill(fill); for (int i = 0; i < ma.Length; i++) { ma[i] = fill; } na.Acquire(); SetValue("fill", fill); SetValue("mul", mul); SetValue("managedArray", ma); SetValue("nativeArray", na); }