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());
        }
        public void Test_Append_WhenCapacityIsNotChanged()
        {
            var newCount = 16;
            var array    = new DynArray <int>();

            for (var i = 0; i < newCount; i++)
            {
                array.Append(i + 1);
            }
            var arrayRepr = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]";

            Assert.AreEqual(16, array.capacity);
            Assert.AreEqual(newCount, array.count);
            Assert.AreEqual(arrayRepr, array.ToString());
        }
        public void Test_Insert_WhenCapacityIsChanged()
        {
            var newCount = 18;
            var array    = new DynArray <int>();

            for (var i = 0; i < newCount; i++)
            {
                array.Insert(i + 1, i);
            }
            var arrayRepr = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]";

            Assert.AreEqual(16 * 2, array.capacity);
            Assert.AreEqual(newCount, array.count);
            Assert.AreEqual(arrayRepr, array.ToString());
        }
        public void Test_Insert_WhenCapacityIsNotChanged()
        {
            var newCount = 16;
            var array    = new DynArray <int>();

            for (var i = 0; i < newCount; i++)
            {
                array.Insert(i + 1, 0);
            }
            var arrayRepr = "[16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]";

            Assert.AreEqual(16, array.capacity);
            Assert.AreEqual(newCount, array.count);
            Assert.AreEqual(arrayRepr, array.ToString());
        }
        public void Test_MakeArray_WhenNewCapacityIsHigher()
        {
            var newCapacity = 100;
            var newCount    = 18;
            var array       = new DynArray <int>();

            for (var i = 0; i < newCount; i++)
            {
                array.Append(i + 1);
            }
            var arrayRepr = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]";

            array.MakeArray(newCapacity);
            Assert.AreEqual(newCapacity, array.capacity);
            Assert.AreEqual(newCount, array.count);
            Assert.AreEqual(arrayRepr, array.ToString());
        }
        public void Test_Remove_WhenCapacityIsNotChangedWhenSizeIsHalfOfCapacity()
        {
            var newCount = 18;
            var array    = new DynArray <int>();

            for (var i = 0; i < newCount; i++)
            {
                array.Insert(i + 1, i);
            }
            array.Remove(17);
            array.Remove(5);
            var arrayRepr = "[1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]";

            Assert.AreEqual(16 * 2, array.capacity);
            Assert.AreEqual(newCount - 2, array.count);
            Assert.AreEqual(arrayRepr, array.ToString());
        }