public static void ContainsItem()
        {
            var index = new SortedCollection <SqlObject, long>();
            var items = new BigList <SqlObject>();

            items.Add(SqlObject.Integer(435));
            items.Add(SqlObject.Integer(1920));
            items.Add(SqlObject.Integer(9182));

            var comparer = new CollectionComparer(items);

            index.InsertSort(items[0], 0, comparer);
            index.InsertSort(items[1], 1, comparer);
            index.InsertSort(items[2], 2, comparer);

            Assert.True(index.Contains(SqlObject.Integer(435), comparer));
            Assert.False(index.Contains(SqlObject.Integer(21), comparer));
        }
        public static void CreateFromOtherIndex()
        {
            var index = new SortedCollection <SqlObject, long>();
            var items = new BigList <SqlObject>();

            items.Add(SqlObject.Integer(435));
            items.Add(SqlObject.Integer(1920));
            items.Add(SqlObject.Integer(9182));

            var comparer = new CollectionComparer(items);

            index.InsertSort(items[0], 0, comparer);
            index.InsertSort(items[1], 1, comparer);
            index.InsertSort(items[2], 2, comparer);

            var index2 = new SortedCollection <SqlObject, long>(index);

            Assert.Equal(index.Count, index2.Count);
        }
        public static void SearcLast_Sort()
        {
            var index = new SortedCollection <SqlObject, long>();
            var items = new BigList <SqlObject>();

            items.Add(SqlObject.Integer(435));
            items.Add(SqlObject.Integer(1920));
            items.Add(SqlObject.Integer(9182));

            var comparer = new CollectionComparer(items);

            index.InsertSort(items[0], 0, comparer);
            index.InsertSort(items[1], 1, comparer);
            index.InsertSort(items[2], 2, comparer);

            Assert.Equal(3, index.Count);

            var first = index.SearchLast(SqlObject.Integer(435), comparer);

            Assert.Equal(0, first);
        }
        public static void RemoveFromEnumerator()
        {
            var index = new SortedCollection <SqlObject, long>();

            FillIndexWith(index, 1024);

            var enumerator = index.GetEnumerator();

            Assert.True(enumerator.MoveNext());
            enumerator.Remove();
            Assert.True(enumerator.MoveNext());
            enumerator.Remove();

            while (enumerator.MoveNext())
            {
                enumerator.Remove();
            }

            Assert.False(enumerator.MoveNext());
            Assert.Equal(0, index.Count);
        }
        public static void AddAndRemoveItem()
        {
            var index = new SortedCollection <SqlObject, long>();
            var items = new BigList <SqlObject>();

            items.Add(SqlObject.Integer(435));
            items.Add(SqlObject.Integer(1920));
            items.Add(SqlObject.Integer(9182));

            var comparer = new CollectionComparer(items);

            index.InsertSort(items[0], 0, comparer);
            index.InsertSort(items[1], 1, comparer);
            index.InsertSort(items[2], 2, comparer);

            Assert.Equal(3, index.Count);

            var value = index.RemoveSort(SqlObject.Integer(435), 0, comparer);

            Assert.Equal(0, value);
        }