public void ToString_Item_StringToString()
        {
            //arrange
            CustomMadeList <string> customMadeList = new CustomMadeList <string>();

            customMadeList.Add("1");
            customMadeList.Add("2");
            string expected = "1 2 ";
            string actual;

            //act
            actual = customMadeList.ToString();
            //assert
            Assert.AreEqual(expected, actual);
        }
        public void Remove_Item_RemovesCorrectItem()
        {
            //arange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();

            customMadeList.Add(2);
            customMadeList.Add(3);
            int expected = 3;
            int actual;

            //act
            customMadeList.Remove(2);
            actual = customMadeList[0];
            //assert
            Assert.AreEqual(expected, actual);
        }
        public void Remove_Item_RemovesFirstInstance()
        {
            //arange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();

            customMadeList.Add(1);
            customMadeList.Add(2);
            customMadeList.Add(1);
            int expected = 2;
            int actual;

            //act
            customMadeList.Remove(1);
            actual = customMadeList[0];
            //assert
            Assert.AreEqual(expected, actual);
        }
        public void MinusOverload_Item_ListTwoIsEmpty()
        {
            //arrange
            CustomMadeList <int> customMadeList1 = new CustomMadeList <int>();

            customMadeList1.Add(1);
            customMadeList1.Add(2);
            CustomMadeList <int> customMadeList2 = new CustomMadeList <int>();
            int expected = 2;
            int actual;
            //act
            CustomMadeList <int> customMadeList3 = customMadeList1 - customMadeList2;

            actual = customMadeList3.Count;
            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void Add_Item_CapasityGrows()
        {
            //arange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();
            int expacted = 8;
            int actual;

            //act
            customMadeList.Add(1);
            customMadeList.Add(1);
            customMadeList.Add(1);
            customMadeList.Add(1);
            customMadeList.Add(1);
            actual = customMadeList.Capacity;
            //assert
            Assert.AreEqual(expacted, actual);
        }
        public void MinusOverload_Item_CorrectCapacity()
        {
            //arrange
            CustomMadeList <int> customMadeList1 = new CustomMadeList <int>();

            customMadeList1.Add(1);
            customMadeList1.Add(2);
            CustomMadeList <int> customMadeList2 = new CustomMadeList <int>();

            customMadeList2.Add(2);
            int expected = 4;
            int actual;
            //act
            CustomMadeList <int> customMadeList3 = customMadeList1 - customMadeList2;

            actual = customMadeList3.Capacity;
            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void MinusOverload_Item_WroksWithString()
        {
            //arrange
            CustomMadeList <string> customMadeList1 = new CustomMadeList <string>();

            customMadeList1.Add("1");
            customMadeList1.Add("2");
            CustomMadeList <string> customMadeList2 = new CustomMadeList <string>();

            customMadeList2.Add("2");
            int expected = 1;
            int actual;
            //act
            CustomMadeList <int> customMadeList3 = customMadeList1 - customMadeList2;

            actual = customMadeList3.Count;
            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void MinusOverload_Item_OnlySubtractsOne()
        {
            //arrange
            CustomMadeList <int> customMadeList1 = new CustomMadeList <int>();

            customMadeList1.Add(2);
            customMadeList1.Add(2);
            CustomMadeList <int> customMadeList2 = new CustomMadeList <int>();

            customMadeList2.Add(2);
            int expected = 1;
            int actual;
            //act
            CustomMadeList <int> customMadeList3 = customMadeList1 - customMadeList2;

            actual = customMadeList3.Count;
            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void Add_Item_CapacityOfFour()
        {
            //arange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();
            int expectedResult = 4;
            int actualResult;

            //act
            customMadeList.Add(1);
            actualResult = customMadeList.Capacity;
            //assert
            Assert.AreEqual(expectedResult, actualResult);
        }
        public void Add_Item_CountIncreaseByOne()
        {
            //arange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();
            int expectedResult = 1;
            int actualResult;

            //act
            customMadeList.Add(1);
            actualResult = customMadeList.Count;
            //assert
            Assert.AreEqual(expectedResult, actualResult);
        }
        public void MinusOverload_Item_ListOneIsSmaller()
        {
            //arrange
            CustomMadeList <int> customMadeList1 = new CustomMadeList <int>();

            customMadeList1.Add(1);
            customMadeList1.Add(2);
            CustomMadeList <int> customMadeList2 = new CustomMadeList <int>();

            customMadeList2.Add(2);
            customMadeList2.Add(3);
            customMadeList2.Add(2);
            customMadeList2.Add(4);
            int expected = 1;
            int actual;
            //act
            CustomMadeList <int> customMadeList3 = customMadeList1 - customMadeList2;

            actual = customMadeList3.Count;
            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void Remove_Item_RemovedIntIsZero()
        {
            //arange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();

            customMadeList.Add(1);
            int expected = 0;
            int actual;

            //act
            customMadeList.Remove(1);
            actual = customMadeList[0];
        }
        public void ToString_Item_AllItemsAreAString()
        {
            //arrange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();

            customMadeList.Add(1);
            string expected = "1";
            string actual;

            //act
            actual = customMadeList.ToString();
            //assert
            Assert.AreEqual(expected, actual);
        }
        public void Remove_Item_CountDecreaseByOne()
        {
            //Arange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();

            customMadeList.Add(1);
            int expected = 0;
            int actual;

            //Act
            customMadeList.Remove(1);
            actual = customMadeList.Count;
            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void Remove_Item_CapacityDoesNotShrink()
        {
            //arange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();

            for (int i = 0; i <= 5; i++)
            {
                customMadeList.Add(1);
            }
            int expected = 8;
            int actual;

            //act
            customMadeList.Remove(1);
            actual = customMadeList.Capacity;
            //assert
            Assert.AreEqual(expected, actual);
        }
        public void PlusOverload_Item_CorrectCountWithString()
        {
            //arrange
            CustomMadeList <string> customMadeList = new CustomMadeList <string>();

            customMadeList.Add("1");
            CustomMadeList <string> customMadeList2 = new CustomMadeList <string>();

            customMadeList2.Add("2");
            int expected = 2;
            int actual;
            //act
            CustomMadeList <string> customMadeList3 = customMadeList2 + customMadeList;

            actual = customMadeList3.Count;
            //assert
            Assert.AreEqual(expected, actual);
        }
        public void PlusOverload_Item_ListOneUnchanged()
        {
            //arrange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();

            customMadeList.Add(1);
            CustomMadeList <int> customMadeList2 = new CustomMadeList <int>();

            customMadeList2.Add(2);
            int expected = 1;
            int actual;
            //act
            CustomMadeList <int> customMadeList3 = customMadeList2 + customMadeList;

            actual = customMadeList[0];
            //assert
            Assert.AreEqual(expected, actual);
        }
        public void PlusOverload_Item_CorrectCount()
        {
            //arrange
            CustomMadeList <int> customMadeList = new CustomMadeList <int>();

            customMadeList.Add(1);
            CustomMadeList <int> customMadeList2 = new CustomMadeList <int>();

            customMadeList2.Add(2);
            int expected = 2;
            int actual;
            //act
            CustomMadeList <int> customMadeList3 = customMadeList2 + customMadeList;

            actual = customMadeList3.Count;
            //assert
            Assert.AreEqual(expected, actual);
        }