public void CopyToTest() { _array.Add("string 1"); _array.Add("string 2"); _array.Add("string 3"); var usualArray = new string[100]; _array.CopyTo(usualArray, 30); Assert.AreEqual(usualArray[30], "string 1"); Assert.AreEqual(usualArray[31], "string 2"); Assert.AreEqual(usualArray[32], "string 3"); Assert.Pass(); }
static void Main(string[] args) { DynamicArray <int> dynamicIntArray = new DynamicArray <int>(5); dynamicIntArray.Add(11); dynamicIntArray.Add(22); dynamicIntArray.Add(33); dynamicIntArray.Add(44); dynamicIntArray.Add(55); dynamicIntArray.Add(66); dynamicIntArray.Add(77); dynamicIntArray.Add(88); dynamicIntArray.Add(99); dynamicIntArray.Add(110); Console.WriteLine(dynamicIntArray.IndexOf(99)); Console.WriteLine(dynamicIntArray.Get(5)); int [] arr = new int[dynamicIntArray.Count]; dynamicIntArray.CopyTo(arr, 0); foreach (int i in arr) { Console.WriteLine(i); } Console.WriteLine(dynamicIntArray.Contains(11)); dynamicIntArray.Insert(10, 120); dynamicIntArray.Insert(11, 130); dynamicIntArray.Remove(55); }
public void CopyToTest3() { DynamicArray <int> array = new DynamicArray <int>(); List <int> list = new List <int>(); FillCollections(array, list); for (int i = 0; i < DEFAULT_STEPS_COUNT; i++) { int incrCount = RandomTestsUtils.Random.Next(10); var resArray = new int[array.Count + incrCount]; var resList = new int[list.Count + incrCount]; int index = RandomTestsUtils.Random.Next(array.Count); int count = RandomTestsUtils.Random.Next(array.Count - index); int arrayIndex = RandomTestsUtils.Random.Next(resArray.Length - count + 1); array.CopyTo(index, resArray, arrayIndex, count); list.CopyTo(index, resList, arrayIndex, count); if (!HaveEqualsElements(resArray, resList)) { Assert.Fail(); } } }
public static void GenericCopyTo() { DynamicArray<int> darray = new DynamicArray<int>(1); DynamicArray<int> dcopy = new DynamicArray<int>(1); darray.Insert(Data, 0, 0); darray.CopyTo(dcopy, 0); Assert.That(darray, Is.EqualTo(dcopy)); }
public static void GenericCopyTo() { DynamicArray <int> darray = new DynamicArray <int>(1); DynamicArray <int> dcopy = new DynamicArray <int>(1); darray.Insert(Data, 0, 0); darray.CopyTo(dcopy, 0); Assert.That(darray, Is.EqualTo(dcopy)); }
public void CopyTo() { int[] a = new int[Round + 10]; DynamicArray <int> array = new DynamicArray <int>(); for (int i = 0; i < Round; i++) { array.Add(i); } array.CopyTo(a, 10); for (int i = 0; i < Round; i++) { Assert.True(i == a[i + 10]); } }
public void CopyToTest1() { DynamicArray <int> array = new DynamicArray <int>(); List <int> list = new List <int>(); FillCollections(array, list); var resArray = new int[array.Count]; var resList = new int[list.Count]; array.CopyTo(resArray); list.CopyTo(resList); if (!HaveEqualsElements(resArray, resList)) { Assert.Fail(); } }
public void CanCopyTo() { var obj1 = new object(); var obj2 = new object(); var obj3 = new object(); var array = new DynamicArray(baseSize, growthFactor, maximumOverheadFactor) { obj1, obj2, obj3 }; var array2 = new object[3]; array.CopyTo(array2, 0); Assert.Equal(obj1, array2[0]); Assert.Equal(obj2, array2[1]); Assert.Equal(obj3, array2[2]); }
{ // Демонстрация работы с DynamicArray, написано ужасно, но как лучше не знаю. static void Main() { Console.WriteLine("Демонстрация работы бибоиотеки Dynamic_Array"); DynamicArray <int> da = new DynamicArray <int>(); Console.WriteLine($"Создание экземпляра DynamicArray конструктором без параметров, вместимость: {da.Capacity}"); DynamicArray <int> da2 = new DynamicArray <int>(4); Console.WriteLine($"Создание экземпляра DynamicArray конструктором с параметром 4, вместимость: {da2.Capacity}"); List <int> lst1 = new List <int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; DynamicArray <int> da3 = new DynamicArray <int>(lst1); Console.WriteLine($"Создание экземпляра DynamicArray конструктором принимающим на вход другую коллекцию IEnumerable\n" + $"Длина коллекции List: {lst1.Count}, вместимость: {lst1.Capacity}, содержимое: {string.Join(", ", lst1)};\n" + $"Длина коллекции DynamicArray: {da3.Count}, вместимость: {da3.Capacity}, содержимое: {da3}"); Console.WriteLine("Метод Add, позволяющий добавлять в конец массива новые данные. При нехватке места для добавления элемента массив удваивается: "); int count = 1; while (count < 6) { da2.Add(count); Console.WriteLine($"Колличество элементов: {da2.Count}, вместимость: {da2.Capacity}, коллекция {da2}"); count++; } Console.WriteLine($"Метод AddRange добавляющий в конец массива содержимое коллекции IEnumerable. Содержимое коллекции da2 до добавления lst1: {da2}, вместимость: {da2.Capacity}"); da2.AddRange(lst1); Console.WriteLine($"Метод AddRange добавляющий в конец массива содержимое коллекции IEnumerable. Содержимое коллекции da2 после добавления lst1: {da2}, вместимость: {da2.Capacity}"); da2.Remove(5); Console.WriteLine($"Метод Remove удаляющий из коллекции пепрвое вхождение заданного элемента (5). Содержимое коллекции da2 после удаления 5: {da2}, вместимость: {da2.Capacity}"); da2.Insert(4, 5); da2.Insert(4, 5); Console.WriteLine($"Метод Insert, позволяющую вставить объект по нужному индексу Содержимое коллекции da2 после двойного добавления 5: {da2}, вместимость: {da2.Capacity}"); Console.WriteLine($"Свйойство Lenght - получение колличества элементов (В данном случае Count): {da2.Count}, вместимость: {da2.Capacity}"); Console.WriteLine("Реализация IEnumerable и Ienumerable<T>"); foreach (int i in da3) { Console.WriteLine(i); } Console.WriteLine("Реализация доступа по индексу"); for (int i = 0; i < da3.Count; i++) { Console.WriteLine(da3[i]); } try { Console.WriteLine(da3[10]); } catch (ArgumentOutOfRangeException ex) { Console.WriteLine($"Демонстрация ошибки при доступе мимо индекса: {ex.Message}"); } Console.WriteLine("Доступ к элементам с конца, при использовании отрицательного индекса:"); count = -1; while (count >= da3.Count * -1) { Console.WriteLine($"Индекс: {count}; содержимое: {da3[count]}"); count--; } Console.WriteLine($"Метод ToArray возввращающий обычный массив: {string.Join(", ", da3.ToArray())}"); DynamicArray <int> da4 = da3.Clone() as DynamicArray <int>; Console.WriteLine($"Реализация интерфейса IClonable: {string.Join(", ", da4)}"); Console.WriteLine($"Перегрузка оператора Equals: {da3.Equals(da4)}, ==, {da3 == da4}"); CycledDynamicArray <int> cycledArray = new CycledDynamicArray <int>(da3); Console.WriteLine("Массив CycledDynamicArray на базе DynamicArray с зацикленным итератором:"); count = 0; foreach (int i in cycledArray) { Console.WriteLine(i); count++; if (count > 30) { break; } } Console.WriteLine("Перерыв"); count = 0; foreach (int i in cycledArray) { Console.WriteLine(i); count++; if (count > 30) { break; } } Console.WriteLine("Демонстрация работы метода расширения ToDynamicArray:"); List <int> list1 = new List <int> { 1, 2, 3 }; List <int> list2 = new List <int> { 4, 5, 6 }; DynamicArray <int> customArray = list1.Concat(list2).ToDynamicArray(); foreach (int i in customArray) { Console.WriteLine("!" + i); } DynamicArray <int> da5 = new DynamicArray <int>(new int[] { 7, 7, 7 }); int[] mass = da3.ToArray(); da5.CopyTo(mass, 6); Console.WriteLine($"Работа метода CopyTo: {string.Join(", ", mass)}"); // Работа с InsertWithFeedback: Console.WriteLine(da5.InsertWithFeedback(4, 1)); Console.WriteLine(da5); Console.ReadLine(); }