Пример #1
0
        public void RemoveWrongIndexTest_4()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 1; i < 3; i++)
            {
                dya.Append(i);
            }
            try
            {
                dya.Remove(2);
            }catch (IndexOutOfRangeException) { }

            Assert.AreEqual(2, dya.count);
            Assert.AreEqual(1, dya.GetItem(0));
            Assert.AreEqual(2, dya.GetItem(1));

            try
            {
                Assert.AreEqual(0, dya.GetItem(2));
            }catch (IndexOutOfRangeException) { }

            dya.Remove(1);

            try
            {
                dya.Remove(1);
            }catch (IndexOutOfRangeException) { }
            try
            {
                Assert.AreEqual(0, dya.GetItem(1));
            }
            catch (IndexOutOfRangeException) { }
            Assert.AreEqual(1, dya.GetItem(0));
        }
Пример #2
0
        public void RemoveTest_1()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 16; i++)
            {
                dya.Append(i);
            }
            dya.Remove(0);

            //Проверка на смещение элементов
            for (int i = 0; i < dya.count; i++)
            {
                Assert.AreEqual(i + 1, dya.GetItem(i));
            }

            //Проверка на отсутствие элемента в конце после смещения
            try
            {
                Assert.AreEqual(0, dya.GetItem(15));
            }
            catch (IndexOutOfRangeException) { }

            //Проверка размера буфера после удаления
            Assert.AreEqual(16, dya.capacity);

            //Проверка длины массива
            Assert.AreEqual(15, dya.count);
        }
Пример #3
0
        public void AppendTest()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 12; i++)
            {
                dya.Append(i);
            }
            Assert.AreEqual(0, dya.GetItem(0));
            Assert.AreEqual(11, dya.GetItem(11));
            Assert.AreEqual(12, dya.count);
        }
Пример #4
0
        public void InsertIntoNotEmptyArrayWithoutChangeBufferSize()
        {
            //Некорректная вставка в непустой массив без изменения размера буфера
            DynArray <int> array = new DynArray <int>();

            MakeAppend(array, 15);

            array.Insert(33, 15);

            Assert.Equal(16, array.count);
            Assert.Equal(16, array.array.Length);
            Assert.Equal(33, array.GetItem(15));
            Assert.Throws <ArgumentOutOfRangeException>(() => array.GetItem(16));
            Assert.Equal(16, array.capacity);
        }
Пример #5
0
        public static void RemoveFromMiddleCapacityChanged()
        {
            var testArray = new DynArray <int>();

            for (var i = 1; i <= 16; i++)
            {
                if (i == 10)
                {
                    testArray.Append(0);
                }
                testArray.Append(i);
            }

            Assert.AreEqual(17, testArray.count, "Test RemoveFromMiddleCapacityChanged: Initial array are malformed. Count don't equal 17");
            Assert.AreEqual(32, testArray.capacity, "Test RemoveFromMiddleCapacityChanged: Initial array are malformed. Capacity don't equal 32");

            testArray.Remove(16);

            Assert.AreEqual(16, testArray.count, "Test RemoveFromMiddleCapacityChanged: Array are malformed. Count don't equal 16");
            Assert.AreEqual(32, testArray.capacity, "Test RemoveFromMiddleCapacityChanged: Array are malformed. Capacity don't equal 32");

            testArray.Remove(9);

            Assert.AreEqual(15, testArray.count, "Test RemoveFromMiddleCapacityChanged: Array are malformed. Count don't equal 15");
            Assert.AreEqual(21, testArray.capacity, "Test RemoveFromMiddleCapacityChanged: Array are malformed. Capacity don't equal 21");

            for (var i = 0; i < testArray.count; i++)
            {
                Assert.AreEqual(i + 1, testArray.GetItem(i), "RemoveFromMiddleCapacityChanged: Problem during enumeration of result array: sequence is corrupted");
            }
        }
Пример #6
0
        public static void InsertInMiddle()
        {
            var testArray = new DynArray <int>();

            for (var i = 1; i <= 5; i++)
            {
                if (i == 3)
                {
                    continue;
                }
                testArray.Append(i);
            }

            Assert.AreEqual(4, testArray.count, "Test InsertInMiddle: Initial array are malformed. Count don't equal 4");
            Assert.AreEqual(16, testArray.capacity, "Test InsertInMiddle: Initial array are malformed. Capacity don't equal 16");

            testArray.Insert(3, 2);

            Assert.AreEqual(5, testArray.count, "Test InsertInMiddle: Array are malformed. Count don't equal 5");
            Assert.AreEqual(16, testArray.capacity, "Test InsertInMiddle: Array are malformed. Capacity don't equal 16");

            for (var i = 0; i < testArray.count; i++)
            {
                Assert.AreEqual(i + 1, testArray.GetItem(i), "InsertInMiddle: Problem during enumeration of result array: sequence is corrupted");
            }
        }
        public void Test_GetItem_WhenIndexIsCount()
        {
            var actualItem = 1;
            var array      = new DynArray <int>();

            array.Append(actualItem);
            Assert.Catch <ArgumentOutOfRangeException>(() => array.GetItem(2));
        }
Пример #8
0
        public void IncorrectGetElementTest(
            int start, int end,
            int getIndex)
        {
            DynArray <int> array = CreateDynArrayWithRange(start, end);

            Assert.That(() => array.GetItem(getIndex), Throws.TypeOf <IndexOutOfRangeException>());
        }
Пример #9
0
        public void InsertOverLoadTest()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 16; i++)
            {
                dya.Append(i);
            }

            Assert.AreEqual(16, dya.count);

            dya.Insert(300, 5);

            Assert.AreEqual(300, dya.GetItem(5));
            Assert.AreEqual(5, dya.GetItem(6));

            Assert.AreEqual(17, dya.count);
        }
Пример #10
0
        public void RemoveWithoutDecreaseBufferSizeTest()
        {
            //удаление элемента, когда в результате размер буфера остаётся прежним (проверьте также размер буфера);
            DynArray <int> array = new DynArray <int>();

            MakeAppend(array, 4);

            array.Append(33);

            MakeAppend(array, 4);

            array.Remove(4);

            Assert.Equal(8, array.count);
            Assert.Equal(16, array.array.Length);
            Assert.Equal(42, array.GetItem(4));
            Assert.Throws <ArgumentOutOfRangeException>(() => array.GetItem(9));
            Assert.Equal(16, array.capacity);
        }
Пример #11
0
        public void RemoveWithDecreaseBufferSizeTest()
        {
            //удаление элемента, когда в результате понижается размер буфера (проверьте также корректное изменение размера буфера);
            DynArray <int> array = new DynArray <int>();

            MakeAppend(array, 12);

            array.Append(33);

            MakeAppend(array, 4);

            array.Remove(12);

            Assert.Equal(16, array.count);
            Assert.Equal(21, array.array.Length);
            Assert.Equal(42, array.GetItem(12));
            Assert.Throws <ArgumentOutOfRangeException>(() => array.GetItem(22));
            Assert.Equal(21, array.capacity);
        }
Пример #12
0
        public void CorrectGetElementTest(
            int start, int end,
            int getIndex, int expectedValue,
            int expectedCount, int expectedCapacity)
        {
            DynArray <int> array = CreateDynArrayWithRange(start, end);

            Assert.True(array.count == expectedCount);
            Assert.True(array.capacity == expectedCapacity);
            Assert.True(array.GetItem(getIndex) == expectedValue);
        }
Пример #13
0
        public void InsertOverLoadTest_2()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 16; i++)
            {
                dya.Insert(i, i);
            }

            Assert.AreEqual(15, dya.GetItem(15));
            Assert.AreEqual(16, dya.count);

            dya.Insert(100, 15);

            Assert.AreEqual(32, dya.capacity);

            Assert.AreEqual(14, dya.GetItem(14));
            Assert.AreEqual(100, dya.GetItem(15));
            Assert.AreEqual(15, dya.GetItem(16));
        }
Пример #14
0
        public void InsertWrongIndexTest_1()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 16; i++)
            {
                dya.Append(i);
            }
            try
            {
                dya.Insert(100, 17);
            }
            catch (IndexOutOfRangeException) { }
            Assert.AreEqual(15, dya.GetItem(15));
            try
            {
                Assert.AreEqual(0, dya.GetItem(17));
            }
            catch (IndexOutOfRangeException) { }
        }
Пример #15
0
        public void InsertTest()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 12; i++)
            {
                dya.Append(i);
            }

            //Проверка значений элементов(5-го и 6-го) до вставки нового
            //
            Assert.AreEqual(5, dya.GetItem(5));
            Assert.AreEqual(6, dya.GetItem(6));

            //Проверка значения 11-го элемента(последнего добавленного) до вставки нового
            Assert.AreEqual(11, dya.GetItem(11));

            //Проверка значения 12-го элемента(после последнего добавленного)  до вставки нового
            try
            {
                Assert.AreEqual(0, dya.GetItem(12));
            }
            catch (IndexOutOfRangeException) { }

            //Проверка на количество элементов до вставки
            Assert.AreEqual(12, dya.count);

            //Проверка размера буфера до вставки
            //
            Assert.AreEqual(16, dya.capacity);

            //Вставка нового элемента на место 5-го элемента
            dya.Insert(300, 5);

            //Проверка значений элементов(5-го и 6-го) после вставки нового
            //
            Assert.AreEqual(300, dya.GetItem(5));
            Assert.AreEqual(5, dya.GetItem(6));

            //Проверка значений 11-го и 12-го элементов после вставки нового
            //
            Assert.AreEqual(10, dya.GetItem(11));
            Assert.AreEqual(11, dya.GetItem(12));

            //Проверка на количество элементов после вставки
            Assert.AreEqual(13, dya.count);

            //Проверка размера буфера после вставки
            //
            Assert.AreEqual(16, dya.capacity);
        }
Пример #16
0
        public void AppendWithoutExtendBufferTest()
        {
            //вставка элемента, когда в итоге размер буфера не превышен (проверьте также размер буфера);
            DynArray <int> array = new DynArray <int>();

            array.Append(42);

            Assert.Equal(1, array.count);
            Assert.Equal(16, array.array.Length);
            Assert.Equal(42, array.GetItem(0));
            Assert.Equal(16, array.capacity);
        }
        public void Test_GetItem_WhenIndexIsZero()
        {
            var actualItem = 1;
            var actualRepr = "[1]";
            var array      = new DynArray <int>();

            array.Append(actualItem);
            var item = array.GetItem(0);

            Assert.AreEqual(actualItem, item);
            Assert.AreEqual(actualRepr, array.ToString());
        }
Пример #18
0
        public void RemoveTest_3()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 1; i < 4; i++)
            {
                dya.Append(i);
            }

            dya.Remove(1);
            Assert.AreEqual(1, dya.GetItem(0));
            Assert.AreEqual(3, dya.GetItem(1));
            try
            {
                Assert.AreEqual(0, dya.GetItem(2));
            }
            catch (IndexOutOfRangeException) { }
            dya.Remove(1);
            Assert.AreEqual(1, dya.GetItem(0));
            try
            {
                Assert.AreEqual(0, dya.GetItem(1));
            }
            catch (IndexOutOfRangeException) { }
            dya.Remove(0);
            try
            {
                Assert.AreEqual(0, dya.GetItem(0));
            }
            catch (IndexOutOfRangeException) { }
        }
Пример #19
0
        public void AppendWithExtendBufferTest()
        {
            //вставка элемента, когда в результате превышен размер буфера (проверьте также корректное изменение размера буфера);
            DynArray <int> array = new DynArray <int>();

            MakeAppend(array, 17);

            Assert.Equal(17, array.count);
            Assert.Equal(32, array.array.Length);
            for (int i = 0; i < array.count; i++)
            {
                Assert.Equal(42, array.GetItem(i));
            }
            Assert.Equal(32, array.capacity);
        }
Пример #20
0
        public void InsertWrongIndexTest_2()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 1; i < 17; i++)
            {
                dya.Append(i);
            }

            try
            {
                dya.Insert(100, -1);
            }
            catch (IndexOutOfRangeException) { }
            Assert.AreEqual(1, dya.GetItem(0));
        }
Пример #21
0
        public void RemoveTest_2()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 17; i++)
            {
                dya.Append(i);
            }

            for (int i = 0; i < 17; i++)
            {
                Assert.AreEqual(i, dya.GetItem(0));
                dya.Remove(0);
            }

            Assert.AreEqual(16, dya.capacity);
            Assert.AreEqual(0, dya.count);
        }
Пример #22
0
        public void RemoveWrongIndexTest_1()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 16; i++)
            {
                dya.Append(i);
            }
            try
            {
                dya.Remove(17);
            }
            catch (IndexOutOfRangeException) { }
            for (int i = 0; i < dya.count; i++)
            {
                Assert.AreEqual(i, dya.GetItem(i));
            }
        }
        public void InsertTest_if_Buffer_Has_not_Changed()
        {
            DynArray testDynArr = new DynArray();

            for (int item = 1; item < 4; item++)
            {
                testDynArr.AppEnd(item);
            }
            testDynArr.Insert(1, 19);

            int    expectedCount = 4;
            string expectedItem  = "19";
            int    actualCount   = testDynArr.GetCount();
            string actualItem    = testDynArr.GetItem(1).ToString();

            Assert.AreEqual(expectedCount, actualCount);    // проверка, что количество элементов изменилось
            Assert.IsTrue(testDynArr.GetCapacity() == 16);  // проверка, что ёмкость буфера прежняя
            Assert.IsTrue(expectedItem == actualItem);      // проверка, что по данному индексу добавлен искомый элемент
        }
        public void InsertTest_if_Buffer_Changed()
        {
            DynArray testDynArr = new DynArray();

            for (int item = 1; item < 17; item++)
            {
                testDynArr.AppEnd(item);
            }

            testDynArr.Insert(3, 315);

            int    expectedCount = 17;
            string expectedItem  = "315";
            int    actualCount   = testDynArr.GetCount();
            string actualItem    = testDynArr.GetItem(3).ToString();

            Assert.AreEqual(expectedCount, actualCount);    // проверка, что количество элементов изменилось
            Assert.IsTrue(testDynArr.GetCapacity() == 32);  // проверка, что буфер увеличился
            Assert.IsTrue(expectedItem == actualItem);      // проверка, что по данному индексу добавлен искомый элемент
        }
Пример #25
0
        public void InsertWrongIndexTest_3()
        {
            DynArray <int> dya = new DynArray <int>();

            for (int i = 0; i < 8; i++)
            {
                dya.Append(i);
            }
            try
            {
                dya.Insert(100, 16);
            }
            catch (IndexOutOfRangeException) { }
            try
            {
                Assert.AreEqual(0, dya.GetItem(16));
            }
            catch (IndexOutOfRangeException) { }
            Assert.AreEqual(8, dya.count);
        }
Пример #26
0
        public static void InsertInHead()
        {
            var testArray = new DynArray <int>();

            for (var i = 1; i <= 4; i++)
            {
                testArray.Append(i);
            }

            Assert.AreEqual(4, testArray.count, "Test InsertInHead: Initial array are malformed. Count don't equal 4");
            Assert.AreEqual(16, testArray.capacity, "Test InsertInHead: Initial array are malformed. Capacity don't equal 16");

            testArray.Insert(0, 0);

            Assert.AreEqual(5, testArray.count, "Test InsertInHead: Array are malformed. Count don't equal 5");
            Assert.AreEqual(16, testArray.capacity, "Test InsertInHead: Array are malformed. Capacity don't equal 16");

            for (var i = 0; i < testArray.count; i++)
            {
                Assert.AreEqual(i, testArray.GetItem(i), "InsertInHead: Problem during enumeration of result array: sequence is corrupted");
            }
        }
Пример #27
0
        public static void RemoveFromTail()
        {
            var testArray = new DynArray <int>();

            for (var i = 1; i <= 5; i++)
            {
                testArray.Append(i);
            }

            Assert.AreEqual(5, testArray.count, "Test RemoveFromTail: Initial array are malformed. Count don't equal 5");
            Assert.AreEqual(16, testArray.capacity, "Test RemoveFromTail: Initial array are malformed. Capacity don't equal 16");

            testArray.Remove(4);

            Assert.AreEqual(4, testArray.count, "Test RemoveFromTail: Array are malformed. Count don't equal 4");
            Assert.AreEqual(16, testArray.capacity, "Test RemoveFromTail: Array are malformed. Capacity don't equal 16");

            for (var i = 0; i < testArray.count; i++)
            {
                Assert.AreEqual(i + 1, testArray.GetItem(i), "RemoveFromTail: Problem during enumeration of result array: sequence is corrupted");
            }
        }
        public void DeleteTest_Buffer_Did_not_Change()
        {
            DynArray testDynArr = new DynArray();

            for (int item = 1; item < 5; item++)
            {
                testDynArr.AppEnd(item);
            }

            testDynArr.Delete(1);

            int expectedCount    = 3;
            int actualCount      = testDynArr.GetCount();
            int expectedCapacity = 16;
            int actualCapacity   = testDynArr.GetCapacity();

            Assert.AreEqual(expectedCount, actualCount);        // проверка, что количество элементов изменилось
            Assert.AreEqual(expectedCapacity, actualCapacity);  // проверка, что ёмкость буфер не изменилась

            for (int i = 0; i < testDynArr.GetCount(); i++)
            {
                Assert.IsFalse(testDynArr.GetItem(i).ToString() == "2"); // проверка, что удаленный элемент отсутствует
            }
        }
        public void Test_GetItem_WhenIndexIsNegative()
        {
            var array = new DynArray <int>();

            Assert.Catch <ArgumentOutOfRangeException>(() => array.GetItem(-1));
        }