Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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));
 }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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();
            }
        }
Ejemplo n.º 8
0
        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]);
        }
Ejemplo n.º 9
0
    {           // Демонстрация работы с 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();
        }