예제 #1
0
        public void TestClear()
        {
            BigArray <int> bigArray = new BigArray <int>(10);

            bigArray[0] = 1;
            bigArray[1] = 2;
            bigArray[2] = 1;
            bigArray[3] = 3;
            bigArray[4] = 4;
            bigArray[5] = 5;
            bigArray[6] = 1;
            bigArray[7] = 6;
            bigArray[8] = 7;
            bigArray[9] = 8;

            Assert.IsTrue(bigArray.IndexOf(0) == -1);
            bigArray.Clear(3, 1);
            Assert.IsTrue(bigArray.IndexOf(0) == 3);
            bigArray.Clear();
            for (int i = 0; i < 10; i++)
            {
                Assert.IsTrue(bigArray[i] == 0);
            }
        }
예제 #2
0
        public void TestClear()
        {
            BigArray<int> bigArray = new BigArray<int>(10);
            bigArray[0] = 1;
            bigArray[1] = 2;
            bigArray[2] = 1;
            bigArray[3] = 3;
            bigArray[4] = 4;
            bigArray[5] = 5;
            bigArray[6] = 1;
            bigArray[7] = 6;
            bigArray[8] = 7;
            bigArray[9] = 8;

            Assert.IsTrue(bigArray.IndexOf(0) == -1);
            bigArray.Clear(3, 1);
            Assert.IsTrue(bigArray.IndexOf(0) == 3);
            bigArray.Clear();
            for (int i = 0; i < 10; i++)
            {
                Assert.IsTrue(bigArray[i] == 0);
            }
        }
예제 #3
0
        public static void AddRangeAndInsertRange()
        {
            var distributedArray = new BigArray <int>();
            var size             = MaxBlockSize * 2;

            var array1 = new int[size / 4];
            var array2 = new int[size / 4];
            var array3 = new int[size / 4];
            var array4 = new int[size / 4];

            //1
            for (int i = size / 4; i < size / 2; i++)
            {
                array1[i - size / 4] = i;
            }
            distributedArray.AddRange(array1);
            Assert.AreEqual(distributedArray.Count, size / 4);
            //2
            for (int i = 0; i < size / 4; i++)
            {
                array2[i] = i;
            }
            distributedArray.InsertRange(0, array2);
            Assert.AreEqual(distributedArray.Count, size / 2);
            //3
            for (int i = size / 2; i < size * 3 / 4; i++)
            {
                array3[i - size / 2] = i;
            }
            distributedArray.AddRange(array3);
            Assert.AreEqual(distributedArray.Count, size * 3 / 4);
            //4
            for (int i = size * 3 / 4; i < size; i++)
            {
                array4[i - size * 3 / 4] = i;
            }
            distributedArray.InsertRange(distributedArray.Count, array4);
            Assert.AreEqual(distributedArray.Count, size);

            //Check insertion in the empty array
            distributedArray.Clear();
            distributedArray.InsertRange(0, array1);

            //DA must be : 0,1,2,3...,n-1,n
            for (int i = 0; i < distributedArray.Count - 1; i++)
            {
                Assert.IsTrue(distributedArray[i] + 1 == distributedArray[i + 1]);
            }

            //Exceptions
            Assert.IsTrue(ExceptionManager.IsThrowActionException
                          <ArgumentNullException, int, ICollection <int> >
                              (distributedArray.InsertRange, 0, null));

            Assert.IsTrue(ExceptionManager.IsThrowActionException
                          <ArgumentOutOfRangeException, int, ICollection <int> >
                              (distributedArray.InsertRange, -1, new Collection <int>()));
            Assert.IsTrue(ExceptionManager.IsThrowActionException
                          <ArgumentOutOfRangeException, int, ICollection <int> >
                              (distributedArray.InsertRange, distributedArray.Count + 1, new Collection <int>()));
        }