Exemplo n.º 1
0
        public int Count()
        {
            if (this._head == null)
            {
                return(0);
            }

            var result = 0;
            var queue  = new DynamicArray <OptimizedChildSiblingTreeNode <T> >(true);

            queue.AddLast(this._head);

            while (queue.TryRemoveLast(out var next))
            {
                result++;
                if (next.RightSibling != null)
                {
                    queue.AddLast(next.RightSibling);
                }

                if (next.FirstChild != null)
                {
                    queue.AddLast(next.FirstChild);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public void SetLength_NonEmptyShrink_PreservesContent()
        {
            var arr = new DynamicArray <int>(4);

            arr.AddLast(42);
            arr.AddLast(13);
            arr.AddLast(5);
            arr.Length = 1;
            Assert.That(arr[0], Is.EqualTo(42));
        }
Exemplo n.º 3
0
        public void SetLength_NonEmptyGrowInsideCapacity_PreservesContent()
        {
            var arr = new DynamicArray <int>(4);

            arr.AddLast(42);
            arr.Length = 3;
            Assert.That(arr[0], Is.EqualTo(42));
        }
Exemplo n.º 4
0
            static WeakReference <object> Initialize()
            {
                var obj = new object();
                var arr = new DynamicArray <object>(true);

                arr.AddLast(obj);
                arr.Length = 0;
                return(new(obj));
            }