Exemplo n.º 1
0
        public void Append(T item)
        {
            if (Size == _box.Size * _line)
            {
                _box.Append(new VectorArray <T>(_line));
            }

            _box.Get(Size / _line).Append(item);
            Size++;
        }
Exemplo n.º 2
0
        public void Add(T item)
        {
            if (_size == _array.Size * _vector)
            {
                _array.Add(new T[_vector]);
            }

            _array.Get(_size / _vector)[_size % _vector] = item;
            _size++;
        }
Exemplo n.º 3
0
 public void Add(T item)
 {
     if (Size() == array.Size() * capacity)
     {
         array.Add(new VectorArray <T>(capacity));
     }
     array.Get(array.Size() - 1).Add(item);
     size++;
 }
Exemplo n.º 4
0
        public void Enqueue(uint priority, T item)
        {
            Size++;
            if (priority + 1 > _box.Size)
            {
                for (var i = _box.Size; i <= priority; i++)
                {
                    _box.Append(new FactorArray <T>());
                }
            }

            _box.Get((int)priority).Append(item);
        }
Exemplo n.º 5
0
        public void Add(T item, int index)
        {
            if (size == array.Size() * vector)
            {
                array.Add(new T[vector]);
            }

            int slice = index / vector;
            int pos   = index % vector;

            if (index < size)
            {
                int lastSlice = size / vector;
                int lastSize  = size % vector;

                int currentSlice = lastSlice;
                T[] currentArray = array.Get(array.Size() - 1);
                if (currentSlice > slice)
                {
                    if (lastSize > 0)
                    {
                        Utils.MoveForward <T>(currentArray, 0, lastSize);
                    }
                    T[] prevArray = array.Get(currentSlice - 1);
                    currentArray[0] = prevArray[vector - 1];
                    currentArray    = prevArray;
                    --currentSlice;
                    while (currentSlice > slice)
                    {
                        Utils.MoveForward <T>(currentArray, 0, vector - 1);
                        prevArray       = array.Get(currentSlice - 1);
                        currentArray[0] = prevArray[vector - 1];
                        currentArray    = prevArray;
                        --currentSlice;
                    }
                    if (pos < vector)
                    {
                        Utils.MoveForward <T>(currentArray, pos, vector - pos - 1);
                    }
                }
                else
                {
                    if (pos < lastSize)
                    {
                        Utils.MoveForward <T>(currentArray, pos, lastSize - pos);
                    }
                }
            }

            array.Get(slice)[pos] = item;
            ++size;
        }
Exemplo n.º 6
0
        public void Add(T item)
        {
            if (Size == _actualSize.Length * (_vector / 2))
            {
                Resize(_array);
            }

            var outerIndex = Size / (_vector / 2);
            var innerIndex = Size % (_vector / 2);

            _array.Get(outerIndex)[innerIndex]   = item;
            _actualSize[_actualSize.Length - 1] += 1;
        }
        static double readValueInEnd(IArray <string> array)
        {
            Stopwatch stopWatch = Stopwatch.StartNew();
            string    item      = array.Get(array.Size() - 1);

            stopWatch.Stop();
            return(stopWatch.Elapsed.TotalMilliseconds);
        }
        static void printArray(IArray <int> arr)
        {
            int n = arr.Size();

            for (int i = 0; i < n; i += 1)
            {
                Console.Write(arr.Get(i) + " ");
            }
            Console.WriteLine();
        }
        static double readValueInPositionRandom(IArray <string> array)
        {
            var       rand      = new Random();
            int       index     = rand.Next(0, array.Size() - 1);
            Stopwatch stopWatch = Stopwatch.StartNew();
            string    item      = array.Get(index);

            stopWatch.Stop();
            return(stopWatch.Elapsed.TotalMilliseconds);
        }
        public static void AddToEndTest(IArray <string> array)
        {
            int    length       = 100;
            string addedElement = "1000";

            addValues(array, length);

            array.Add(addedElement);

            Assert.AreEqual(addedElement, array.Get(array.Size() - 1), "Последний элемент не равен добавленному");
        }
        public static void RemoveFirstElement(IArray <string> array)
        {
            int length = 100;

            addValues(array, length, "element");

            array.Add("RemovedElement", 0);

            string removeElement = array.Pop();

            Assert.AreNotEqual(removeElement, array.Get(0), "Элемент совпадает с удаленным");
        }
        public static void RemoveLasteElement(IArray <string> array)
        {
            int length = 100;

            addValues(array, length, "element");

            array.Add("RemovedElement");

            string removeElement = array.Pop();

            Assert.AreNotEqual(removeElement, array.Get(array.Size() - 1), "Последний элемент совпадает с удаленным");
        }
        public static void RemoveRandomPositionElement(IArray <string> array)
        {
            int length = 100;
            var rand   = new Random();
            int index  = rand.Next(0, array.Size());

            addValues(array, length, "element");

            array.Add("RemovedElement", index);

            string removeElement = array.Remove(index);

            Assert.AreNotEqual(removeElement, array.Get(index), "Элемент совпадает с удаленным");
        }
        public static void AddToRandomPositionTest(IArray <string> array)
        {
            int    length       = 100;
            string addedElement = "1000";

            addValues(array, length);

            var rand  = new Random();
            int index = rand.Next(0, array.Size());

            array.Add(addedElement, index);

            Assert.AreEqual(addedElement, array.Get(index), "Не совпадают");
        }
        public static void AddWithIndexOverSizeArray(IArray <string> array)
        {
            int    length            = 10;
            string addedElement      = "1000";
            int    indexAddedElement = 20;

            addValues(array, length);

            array.Add(addedElement, indexAddedElement);


            Assert.AreEqual(array.Size(), indexAddedElement + 1, "Длинна массива меньше чем индекс добавленного элемента");

            Assert.AreEqual(addedElement, array.Get(indexAddedElement), "Не совпадают");
        }
Exemplo n.º 16
0
        public void Add(T item, int index)
        {
            if (Size() == array.Size() * capacity)
            {
                array.Add(new VectorArray <T>(capacity));
            }

            for (int i = array.Size() - 1; i > (index / capacity); i--)
            {
                IArray <T> row     = array.Get(i);
                IArray <T> prevRow = array.Get(i - 1);
                row.Add(prevRow.Get(prevRow.Size() - 1), 0);
                prevRow.Remove(prevRow.Size() - 1);
            }
            array.Get(index / capacity).Add(item, index % capacity);
            size++;
        }
Exemplo n.º 17
0
        public IAspect <TIn, TOut> Get(Type parameter)
        {
            var implementations = _implementations.Get(parameter);
            var length          = implementations.Length;

            if (implementations.Length > 0)
            {
                var store = new DynamicStore <IAspect <TIn, TOut> >(32);
                for (var i = 0u; i < length; i++)
                {
                    var registrations = _registrations.Get(implementations[i].GenericTypeArguments);
                    store = store.Add(new Store <IAspect <TIn, TOut> >(registrations));
                }

                return(new CompositeAspect <TIn, TOut>(store.Get().Instance));
            }

            return(EmptyAspect <TIn, TOut> .Default);
        }
Exemplo n.º 18
0
        public T Remove(int index)
        {
            T result = Get(index);

            size--;
            array.Get(index / capacity).Remove(index % capacity);
            for (int i = (index / capacity) + 1; i < array.Size(); i++)
            {
                IArray <T> row     = array.Get(i);
                IArray <T> prevRow = array.Get(i - 1);
                prevRow.Add(row.Get(0));
                row.Remove(0);
            }
            if (array.Get(array.Size() - 1).Size() == 0)
            {
                array.Remove(array.Size() - 1);
            }
            return(result);
        }