Example #1
0
        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)]
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }