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

            testArray.Copy(baselineArray);
            Assert.IsTrue(this.AreIdentical(testArray, baselineArray));
            Assert.AreEqual(baselineArray.Sum(), testArray.Sum());

            testArray.Resize(size + 10, true);
            Assert.AreEqual(baselineArray.Sum(), testArray.Sum());
            Assert.IsTrue(this.AreIdentical(testArray.Take(size), baselineArray));
        }
コード例 #2
0
ファイル: ValuePin.cs プロジェクト: vnmone/vvvv-sdk
        override protected void ChangeSliceCount()
        {
            int oldCount = 0;

            if (FValues != null)
            {
                oldCount = FValues.Length;
            }
            double[] tmp = new double[oldCount];

            //save old values
            for (int i = 0; i < oldCount; i++)
            {
                tmp[i] = FValues[i];
            }

            FValues.Resize(FSliceCount * FDimension);

            //set old values to new array
            for (int i = 0; i < Math.Min(FSliceCount * FDimension, oldCount); i++)
            {
                FValues[i] = tmp[i];
            }
            if (oldCount > 0)
            {
                for (int i = oldCount; i < FSliceCount * FDimension; i++)
                {
                    FValues[i] = tmp[oldCount - 1];
                }
            }
            else
            {
                for (int i = oldCount; i < FSliceCount * FDimension; i++)
                {
                    FValues[i] = FDefault;
                }
            }
        }