public void EnumerableTest()
        {
            for (int i = 0; i < DEFAULT_STEPS_COUNT; i++)
            {
                CycledDynamicArray <int> array = new CycledDynamicArray <int>();

                for (int j = 0; j < DEFAULT_COUNT_OF_ELEMENTS; j++)
                {
                    array.Add(Random.Next(DEFAULT_RANDOM_ELEMENT_MIN_VALUE, DEFAULT_RANDOM_ELEMENT_MAX_VALUE));
                }

                int overLimitIterationsCount = 10;
                int cntIterations            = 0;
                foreach (var item in array)
                {
                    cntIterations++;
                    if (cntIterations > array.Count + overLimitIterationsCount)
                    {
                        break;
                    }
                }

                if (cntIterations < array.Count)
                {
                    Assert.Fail();
                }
            }
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            CycledDynamicArray <int> item = new CycledDynamicArray <int>()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
            };
            DynamicArray <int> c     = new DynamicArray <int>(100);
            DynamicArray <int> item2 = new DynamicArray <int>()
            {
                11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10
            };
            DynamicArray <int> a = new DynamicArray <int> (20);

            a.Add(1);
            a.Add(2);
            a.Add(3);
            a.AddRange(item2);
            item2.Capacity = 100;

            var g = item2.ToArray();

            //Console.WriteLine(a.IsInsert(3, 99999));
            //Console.WriteLine(a.IsInsert(1, 10000));
            // c = (DynamicArray <int>)a.Clone();

            foreach (var item1 in c)
            {
                Console.Write($"{item1} ");
            }
            Console.ReadLine();
        }
 public CycledDynamicArrayEnumerator(CycledDynamicArray <T> array)
 {
     this.array = new T[array.Count];
     for (int i = 0; i <= array.Count; i++)
     {
         this.array[i] = array[i];
     }
     index = -1;
 }
Exemplo n.º 4
0
        static void TestsOfCycledArray()
        {
            CycledDynamicArray <int> test = new CycledDynamicArray <int>();

            //DynamicArray<int> test = new DynamicArray<int>();
            test.AddRange(new int[] { 7, 9, 4, 3, 2 });

            // Можно просто зажать enter или любую другую клавишу, чтобы увидеть, что он циклический
            // или просто убрать ReadKey)
            int pos = 0;

            foreach (var item in test)
            {
                if (pos % test.Length == 0)
                {
                    Console.WriteLine("=========================================");
                }
                Console.WriteLine($"[{pos++}] = {item}");
                Console.ReadKey();
            }
        }
Exemplo n.º 5
0
 static void Main(string[] args)
 {
     SuperDynamicArray <int>  super_array  = new SuperDynamicArray <int>();
     CycledDynamicArray <int> cycled_array = new CycledDynamicArray <int>();
 }
 public CycledDynamicArrayEnumerator(CycledDynamicArray <T> subject) : base(subject)
 {
 }
Exemplo n.º 7
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();
        }