Example #1
0
        public static void RemoveRange()
        {
            var distributedArray = new BigArray <int>();

            int size      = 4 * MaxBlockSize;
            var checkList = new List <int>(size);

            for (int i = 0; i < size; i++)
            {
                distributedArray.Add(i);
                checkList.Add(i);
            }

            //Remove elements from different blocks
            distributedArray.RemoveRange(MaxBlockSize / 2, MaxBlockSize);
            checkList.RemoveRange(MaxBlockSize / 2, MaxBlockSize);
            Assert.AreEqual(distributedArray.Count, checkList.Count);

            distributedArray.RemoveRange(0, 1);
            checkList.RemoveRange(0, 1);
            Assert.AreEqual(distributedArray.Count, checkList.Count);

            distributedArray.RemoveRange(distributedArray.Count - 1, 1);
            checkList.RemoveRange(checkList.Count - 1, 1);
            Assert.AreEqual(distributedArray.Count, checkList.Count);

            CheckEqual(distributedArray, checkList);

            //Clear distibutedArray
            distributedArray.RemoveRange(0, distributedArray.Count);
            Assert.IsTrue(distributedArray.Count == 0);

            var emptyArray = new BigArray <int>();

            emptyArray.RemoveRange(0, 0);
            Assert.IsEmpty(emptyArray);

            //Exceptions
            Assert.IsTrue(ExceptionManager.IsThrowActionException
                          <ArgumentOutOfRangeException, int, int>
                              (distributedArray.RemoveRange, -1, 1));
            Assert.IsTrue(ExceptionManager.IsThrowActionException
                          <ArgumentOutOfRangeException, int, int>
                              (distributedArray.RemoveRange, distributedArray.Count - 1, 2));
        }