コード例 #1
0
        public void UnmanagedArray_BasicAccess()
        {
            int size          = 256;
            var testArray     = new UnmanagedArray <int>(size, true);
            var baselineArray = Enumerable.Range(0, size).ToArray();

            // test creation
            Assert.AreEqual(0, testArray.Sum());

            // test copy
            testArray.Copy(baselineArray);
            Assert.AreEqual(size * (size - 1) / 2, testArray.Sum());
            Assert.IsTrue(this.AreIdentical(testArray, baselineArray));

            // test set one value
            int index = 11;

            testArray[index] = 1024;
            Assert.AreEqual(1024, testArray[index]);
            Assert.IsTrue(this.AreIdentical(testArray.Skip(index + 1), baselineArray.Skip(index + 1)));
            Assert.IsFalse(this.AreIdentical(testArray, baselineArray));

            // test get one value
            baselineArray[index] = testArray[index];
            Assert.IsTrue(this.AreIdentical(testArray, baselineArray));

            // test clear
            testArray.Clear();
            Assert.AreEqual(0, testArray.Sum());
        }