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)); }