public void Test_add_and_remove()
        {
            MyDynamicArray <int> arr = new MyDynamicArray <int>();

            for (int i = 0; i < 100; i++)
            {
                arr.Add(i);
            }
            for (int i = 0; i < 100; i++)
            {
                arr.Remove(i);
            }

            Assert.True(arr.IsEmpty());


            for (int i = 0; i < 1000; i++)
            {
                arr.Add(i);
            }
            for (int i = 0; i < 1000; i++)
            {
                arr.Remove(i);
            }

            Assert.True(arr.IsEmpty());


            for (int i = 0; i < 10000; i++)
            {
                arr.Add(i);
            }
            for (int i = 0; i < 10000; i++)
            {
                arr.Remove(i);
            }

            Assert.True(arr.IsEmpty());
        }
        public void Test_resize_remove()
        {
            int initialCapacity      = 50;
            MyDynamicArray <int> arr = new MyDynamicArray <int>(initialCapacity);

            FillDynamicArray(arr, initialCapacity * 5, 1);

            for (int i = 0; i < initialCapacity * 5; i++)
            {
                arr.Remove(1);
            }

            // assert
            Assert.Equal(0, arr.Size);
            Assert.Equal(initialCapacity, arr.Capacity);
        }