public void TestInsertItself() { // // [] Insert itself into array list. // ArrayList arrList = new ArrayList((ICollection)strHeroes); ArrayList[] arrayListTypes = new ArrayList[] { (ArrayList)arrList.Clone(), (ArrayList)ArrayList.Adapter(arrList).Clone(), (ArrayList)arrList.GetRange(0, arrList.Count).Clone(), (ArrayList)ArrayList.Synchronized(arrList).Clone() }; int start = 3; foreach (ArrayList arrayListType in arrayListTypes) { arrList = arrayListType; // InsertRange values. arrList.InsertRange(start, arrList); // Verify InsertRange. for (int ii = 0; ii < arrList.Count; ++ii) { string expectedItem; if (ii < start) { expectedItem = strHeroes[ii]; } else if (start <= ii && ii - start < strHeroes.Length) { expectedItem = strHeroes[ii - start]; } else { expectedItem = strHeroes[(ii - strHeroes.Length)]; } Assert.Equal(0, expectedItem.CompareTo((string)arrList[ii])); } //[] Verify that ArrayList does not pass the internal array to CopyTo arrList.Clear(); for (int i = 0; i < 64; ++i) { arrList.Add(i); } ArrayList arrInsert = new ArrayList(); for (int i = 0; i < 4; ++i) { arrInsert.Add(i); } MyCollection myCollection = new MyCollection(arrInsert); arrList.InsertRange(4, myCollection); Assert.Equal(0, myCollection.StartIndex); Assert.Equal(4, myCollection.Array.Length); } }
public void TestInsertItself() { // // [] Insert itself into array list. // ArrayList arrList = new ArrayList((ICollection)strHeroes); ArrayList[] arrayListTypes = new ArrayList[] { (ArrayList)arrList.Clone(), (ArrayList)ArrayList.Adapter(arrList).Clone(), (ArrayList)arrList.GetRange(0, arrList.Count).Clone(), (ArrayList)ArrayList.Synchronized(arrList).Clone()}; int start = 3; foreach (ArrayList arrayListType in arrayListTypes) { arrList = arrayListType; // InsertRange values. arrList.InsertRange(start, arrList); // Verify InsertRange. for (int ii = 0; ii < arrList.Count; ++ii) { string expectedItem; if (ii < start) { expectedItem = strHeroes[ii]; } else if (start <= ii && ii - start < strHeroes.Length) { expectedItem = strHeroes[ii - start]; } else { expectedItem = strHeroes[(ii - strHeroes.Length)]; } Assert.Equal(0, expectedItem.CompareTo((string)arrList[ii])); } //[] Verify that ArrayList does not pass the internal array to CopyTo arrList.Clear(); for (int i = 0; i < 64; ++i) { arrList.Add(i); } ArrayList arrInsert = new ArrayList(); for (int i = 0; i < 4; ++i) { arrInsert.Add(i); } MyCollection myCollection = new MyCollection(arrInsert); arrList.InsertRange(4, myCollection); Assert.Equal(0, myCollection.StartIndex); Assert.Equal(4, myCollection.Array.Length); } }