14 instantiations of ImmutableSegmentedList
Microsoft.CodeAnalysis (14)
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (6)
76public static readonly ImmutableSegmentedList<T> Empty = new(new SegmentedList<T>()); 148return new ImmutableSegmentedList<T>(list); 177return new ImmutableSegmentedList<T>(list); 209=> new ImmutableSegmentedList<TOutput>(_list.ConvertAll(converter)); 232=> new ImmutableSegmentedList<T>(_list.FindAll(match)); 300return new ImmutableSegmentedList<T>(self._list.GetRange(index, count));
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+PrivateMarshal.cs (4)
26return new ImmutableSegmentedList<T>(list); 35return new ImmutableSegmentedList<T>(list); 44return new ImmutableSegmentedList<T>(list); 49=> list is not null ? new ImmutableSegmentedList<T>(list) : default;
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (4)
126=> new ImmutableSegmentedList<TOutput>(ReadOnlyList.ConvertAll(converter)); 144=> new ImmutableSegmentedList<T>(ReadOnlyList.FindAll(match)); 196return new ImmutableSegmentedList<T>(ReadOnlyList.GetRange(index, count)); 327_list = new ImmutableSegmentedList<T>(ReadOnlyList);
415 references to ImmutableSegmentedList
Microsoft.CodeAnalysis (151)
src\Dependencies\Collections\RoslynImmutableInterlocked.cs (26)
33public static bool Update<T>(ref ImmutableSegmentedList<T> location, Func<ImmutableSegmentedList<T>, ImmutableSegmentedList<T>> transformer) 38var oldValue = ImmutableSegmentedList<T>.PrivateMarshal.VolatileRead(in location); 41var newValue = transformer(oldValue); 48var interlockedResult = InterlockedCompareExchange(ref location, newValue, oldValue); 74public static bool Update<T, TArg>(ref ImmutableSegmentedList<T> location, Func<ImmutableSegmentedList<T>, TArg, ImmutableSegmentedList<T>> transformer, TArg transformerArgument) 79var oldValue = ImmutableSegmentedList<T>.PrivateMarshal.VolatileRead(in location); 82var newValue = transformer(oldValue, transformerArgument); 89var interlockedResult = InterlockedCompareExchange(ref location, newValue, oldValue); 105public static ImmutableSegmentedList<T> InterlockedExchange<T>(ref ImmutableSegmentedList<T> location, ImmutableSegmentedList<T> value) 107return ImmutableSegmentedList<T>.PrivateMarshal.InterlockedExchange(ref location, value); 119public static ImmutableSegmentedList<T> InterlockedCompareExchange<T>(ref ImmutableSegmentedList<T> location, ImmutableSegmentedList<T> value, ImmutableSegmentedList<T> comparand) 121return ImmutableSegmentedList<T>.PrivateMarshal.InterlockedCompareExchange(ref location, value, comparand); 133public static bool InterlockedInitialize<T>(ref ImmutableSegmentedList<T> location, ImmutableSegmentedList<T> value) 135return InterlockedCompareExchange(ref location, value, default(ImmutableSegmentedList<T>)).IsDefault;
src\Dependencies\Collections\Segmented\ImmutableSegmentedList.cs (15)
16public static ImmutableSegmentedList<T> Create<T>() 17=> ImmutableSegmentedList<T>.Empty; 20public static ImmutableSegmentedList<T> Create<T>(T item) 21=> ImmutableSegmentedList<T>.Empty.Add(item); 24public static ImmutableSegmentedList<T> Create<T>(params T[] items) 25=> ImmutableSegmentedList<T>.Empty.AddRange(items); 28public static ImmutableSegmentedList<T>.Builder CreateBuilder<T>() 29=> ImmutableSegmentedList<T>.Empty.ToBuilder(); 32public static ImmutableSegmentedList<T> CreateRange<T>(IEnumerable<T> items) 33=> ImmutableSegmentedList<T>.Empty.AddRange(items); 36public static ImmutableSegmentedList<T> ToImmutableSegmentedList<T>(this IEnumerable<T> source) 38if (source is ImmutableSegmentedList<T> existingList) 41return ImmutableSegmentedList<T>.Empty.AddRange(source); 45public static ImmutableSegmentedList<T> ToImmutableSegmentedList<T>(this ImmutableSegmentedList<T>.Builder builder)
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (61)
20/// <para>There are different scenarios best for <see cref="ImmutableSegmentedList{T}"/> and others 24/// <see cref="ImmutableSegmentedList{T}"/>:</para> 29/// <description><see cref="ImmutableSegmentedList{T}"/> Complexity</description> 73internal readonly partial struct ImmutableSegmentedList<T> : IImmutableList<T>, IReadOnlyList<T>, IList<T>, IList, IEquatable<ImmutableSegmentedList<T>> 76public static readonly ImmutableSegmentedList<T> Empty = new(new SegmentedList<T>()); 114public static bool operator ==(ImmutableSegmentedList<T> left, ImmutableSegmentedList<T> right) 117public static bool operator !=(ImmutableSegmentedList<T> left, ImmutableSegmentedList<T> right) 120public static bool operator ==(ImmutableSegmentedList<T>? left, ImmutableSegmentedList<T>? right) 123public static bool operator !=(ImmutableSegmentedList<T>? left, ImmutableSegmentedList<T>? right) 129var self = this; 141public ImmutableSegmentedList<T> Add(T value) 143var self = this; 161public ImmutableSegmentedList<T> AddRange(IEnumerable<T> items) 163var self = this; 171if (items is ImmutableSegmentedList<T> immutableList) 173else if (items is ImmutableSegmentedList<T>.Builder builder) 201public ImmutableSegmentedList<T> Clear() 208public ImmutableSegmentedList<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> converter) 231public ImmutableSegmentedList<T> FindAll(Predicate<T> match) 257var self = this; 272var self = this; 293public ImmutableSegmentedList<T> GetRange(int index, int count) 295var self = this; 310public ImmutableSegmentedList<T> Insert(int index, T item) 312var self = this; 325public ImmutableSegmentedList<T> InsertRange(int index, IEnumerable<T> items) 327var self = this; 341var self = this; 361public ImmutableSegmentedList<T> Remove(T value) 363var self = this; 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 375var self = this; 385public ImmutableSegmentedList<T> RemoveAll(Predicate<T> match) 395public ImmutableSegmentedList<T> RemoveAt(int index) 404public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items) 409var self = this; 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 433var self = this; 452public ImmutableSegmentedList<T> RemoveRange(int index, int count) 454var self = this; 468public ImmutableSegmentedList<T> Replace(T oldValue, T newValue) 470var self = this; 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 484var self = this; 496public ImmutableSegmentedList<T> Reverse() 498var self = this; 508public ImmutableSegmentedList<T> Reverse(int index, int count) 516public ImmutableSegmentedList<T> SetItem(int index, T value) 525public ImmutableSegmentedList<T> Sort() 527var self = this; 539public ImmutableSegmentedList<T> Sort(IComparer<T>? comparer) 541var self = this; 553public ImmutableSegmentedList<T> Sort(Comparison<T> comparison) 560var self = this; 572public ImmutableSegmentedList<T> Sort(int index, int count, IComparer<T>? comparer) 592return obj is ImmutableSegmentedList<T> other 596public bool Equals(ImmutableSegmentedList<T> other)
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (5)
23internal Builder(ImmutableSegmentedList<T> list) 80public ImmutableSegmentedList<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> converter) 103public ImmutableSegmentedList<T> FindAll(Predicate<T> match) 143public ImmutableSegmentedList<T> GetRange(int index, int count) 219public ImmutableSegmentedList<T> ToImmutable()
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+PrivateMarshal.cs (12)
20internal static ImmutableSegmentedList<T> VolatileRead(in ImmutableSegmentedList<T> location) 29internal static ImmutableSegmentedList<T> InterlockedExchange(ref ImmutableSegmentedList<T> location, ImmutableSegmentedList<T> value) 38internal static ImmutableSegmentedList<T> InterlockedCompareExchange(ref ImmutableSegmentedList<T> location, ImmutableSegmentedList<T> value, ImmutableSegmentedList<T> comparand) 48internal static ImmutableSegmentedList<T> AsImmutableSegmentedList(SegmentedList<T>? list) 51/// <inheritdoc cref="SegmentedCollectionsMarshal.AsSegmentedList{T}(ImmutableSegmentedList{T})"/> 52internal static SegmentedList<T>? AsSegmentedList(ImmutableSegmentedList<T> list)
src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (7)
21private ImmutableSegmentedList<T> _list; 29internal ValueBuilder(ImmutableSegmentedList<T> list) 76var originalList = RoslynImmutableInterlocked.InterlockedExchange(ref _list, default); 125public readonly ImmutableSegmentedList<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> converter) 143public readonly ImmutableSegmentedList<T> FindAll(Predicate<T> match) 191public ImmutableSegmentedList<T> GetRange(int index, int count) 325public ImmutableSegmentedList<T> ToImmutable()
src\Dependencies\Collections\Segmented\ImmutableSegmentedListExtensions.cs (9)
17public static bool All<T>(this ImmutableSegmentedList<T> immutableList, Func<T, bool> predicate) 33public static bool Any<T>(this ImmutableSegmentedList<T> immutableList) 41public static bool Any<T>(this ImmutableSegmentedList<T>.Builder builder) 49public static bool Any<T>(this ImmutableSegmentedList<T> immutableList, Func<T, bool> predicate) 65public static T Last<T>(this ImmutableSegmentedList<T> immutableList) 74public static T Last<T>(this ImmutableSegmentedList<T>.Builder builder) 86public static T Last<T>(this ImmutableSegmentedList<T> immutableList, Func<T, bool> predicate) 103public static IEnumerable<TResult> Select<T, TResult>(this ImmutableSegmentedList<T> immutableList, Func<T, TResult> selector) 120public static int BinarySearch<TElement, TValue>(this ImmutableSegmentedList<TElement> array, TValue value, Func<TElement, TValue, int> comparer)
src\Dependencies\Collections\Segmented\SegmentedCollectionsMarshal.cs (16)
98/// Gets an <see cref="ImmutableSegmentedList{T}"/> value wrapping the input <see cref="SegmentedList{T}"/>. 101/// <param name="list">The input segmented list to wrap in the returned <see cref="ImmutableSegmentedList{T}"/> value.</param> 102/// <returns>An <see cref="ImmutableSegmentedList{T}"/> value wrapping <paramref name="list"/>.</returns> 106/// list, and that it won't be modified once the returned <see cref="ImmutableSegmentedList{T}"/> value starts 108/// <see cref="ImmutableSegmentedList{T}"/> values to change after its creation. 111/// If <paramref name="list"/> is <see langword="null"/>, the returned <see cref="ImmutableSegmentedList{T}"/> value 112/// will be uninitialized (i.e. its <see cref="ImmutableSegmentedList{T}.IsDefault"/> property will be 116public static ImmutableSegmentedList<T> AsImmutableSegmentedList<T>(SegmentedList<T>? list) 117=> ImmutableSegmentedList<T>.PrivateMarshal.AsImmutableSegmentedList(list); 120/// Gets the underlying <see cref="SegmentedList{T}"/> for an input <see cref="ImmutableSegmentedList{T}"/> value. 122/// <typeparam name="T">The type of elements in the input <see cref="ImmutableSegmentedList{T}"/> value.</typeparam> 123/// <param name="list">The input <see cref="ImmutableSegmentedList{T}"/> value to get the underlying <see cref="SegmentedList{T}"/> from.</param> 129/// don't expect the contents of the <see cref="ImmutableSegmentedList{T}"/> value to change. 132/// If <paramref name="list"/> is uninitialized (i.e. its <see cref="ImmutableSegmentedList{T}.IsDefault"/> property is 136public static SegmentedList<T>? AsSegmentedList<T>(ImmutableSegmentedList<T> list) 137=> ImmutableSegmentedList<T>.PrivateMarshal.AsSegmentedList(list);
Microsoft.CodeAnalysis.UnitTests (264)
Collections\ImmutableListTestBase.cs (86)
28internal abstract IReadOnlyList<T> GetListQuery<T>(ImmutableSegmentedList<T> list); 30private protected abstract ImmutableSegmentedList<TOutput> ConvertAllImpl<T, TOutput>(ImmutableSegmentedList<T> list, Converter<T, TOutput> converter); 32private protected abstract void ForEachImpl<T>(ImmutableSegmentedList<T> list, Action<T> action); 34private protected abstract ImmutableSegmentedList<T> GetRangeImpl<T>(ImmutableSegmentedList<T> list, int index, int count); 36private protected abstract void CopyToImpl<T>(ImmutableSegmentedList<T> list, T[] array); 38private protected abstract void CopyToImpl<T>(ImmutableSegmentedList<T> list, T[] array, int arrayIndex); 40private protected abstract void CopyToImpl<T>(ImmutableSegmentedList<T> list, int index, T[] array, int arrayIndex, int count); 42private protected abstract bool ExistsImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match); 44private protected abstract T? FindImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match); 46private protected abstract ImmutableSegmentedList<T> FindAllImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match); 48private protected abstract int FindIndexImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match); 50private protected abstract int FindIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, Predicate<T> match); 52private protected abstract int FindIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, int count, Predicate<T> match); 54private protected abstract T? FindLastImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match); 56private protected abstract int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match); 58private protected abstract int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, Predicate<T> match); 60private protected abstract int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, int count, Predicate<T> match); 62private protected abstract bool TrueForAllImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> test); 64private protected abstract int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, T item); 66private protected abstract int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, T item, IComparer<T>? comparer); 68private protected abstract int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, int index, int count, T item, IComparer<T>? comparer); 74CopyToImpl(ImmutableSegmentedList<int>.Empty, array); 75CopyToImpl(ImmutableSegmentedList<int>.Empty, array, 0); 76CopyToImpl(ImmutableSegmentedList<int>.Empty, 0, array, 0, 0); 77((ICollection)this.GetListQuery(ImmutableSegmentedList<int>.Empty)).CopyTo(array, 0); 83var list = ImmutableSegmentedList.Create(1, 2); 114ForEachImpl(ImmutableSegmentedList<int>.Empty, n => { throw ExceptionUtilities.Unreachable(); }); 116var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(5, 3)); 134Assert.False(ExistsImpl(ImmutableSegmentedList<int>.Empty, n => true)); 136var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(1, 5)); 144Assert.True(FindAllImpl(ImmutableSegmentedList<int>.Empty, n => true).IsEmpty); 145var list = ImmutableSegmentedList<int>.Empty.AddRange(new[] { 2, 3, 4, 5, 6 }); 146var actual = FindAllImpl(list, n => n % 2 == 1); 154Assert.Equal(0, FindImpl(ImmutableSegmentedList<int>.Empty, n => true)); 155var list = ImmutableSegmentedList<int>.Empty.AddRange(new[] { 2, 3, 4, 5, 6 }); 162Assert.Equal(0, FindLastImpl(ImmutableSegmentedList<int>.Empty, n => { throw ExceptionUtilities.Unreachable(); })); 163var list = ImmutableSegmentedList<int>.Empty.AddRange(new[] { 2, 3, 4, 5, 6 }); 170Assert.Equal(-1, FindIndexImpl(ImmutableSegmentedList<int>.Empty, n => true)); 171Assert.Equal(-1, FindIndexImpl(ImmutableSegmentedList<int>.Empty, 0, n => true)); 172Assert.Equal(-1, FindIndexImpl(ImmutableSegmentedList<int>.Empty, 0, 0, n => true)); 175var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(100, 5).Concat(Enumerable.Range(100, 5))); 224Assert.Equal(-1, FindLastIndexImpl(ImmutableSegmentedList<int>.Empty, n => true)); 225Assert.Equal(-1, FindLastIndexImpl(ImmutableSegmentedList<int>.Empty, 0, n => true)); 226Assert.Equal(-1, FindLastIndexImpl(ImmutableSegmentedList<int>.Empty, 0, 0, n => true)); 229var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(100, 5).Concat(Enumerable.Range(100, 5))); 332Assert.True(ConvertAllImpl<int, float>(ImmutableSegmentedList<int>.Empty, n => n).IsEmpty); 333var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(5, 10)); 336var actual = ConvertAllImpl(list, converter); 343Assert.True(GetRangeImpl(ImmutableSegmentedList<int>.Empty, 0, 0).IsEmpty); 344var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(5, 10)); 352var actual = GetRangeImpl(list, index, count); 361Assert.True(TrueForAllImpl(ImmutableSegmentedList<int>.Empty, n => false)); 362var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(5, 10)); 371var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(5, 10)); 382var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(5, 10)); 396Assert.Throws<ArgumentNullException>("comparison", () => this.SortTestHelper(ImmutableSegmentedList<int>.Empty, (Comparison<int>)null!)); 403ImmutableSegmentedList<int>.Empty, 404ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(1, 50)), 405ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(1, 50).Reverse()), 408foreach (var scenario in scenarios) 451var query = basis.ToImmutableSegmentedList(); 493var query = inputData.ToImmutableSegmentedList(); 527private protected abstract void RemoveAllTestHelper<T>(ImmutableSegmentedList<T> list, Predicate<T> test); 529private protected abstract void ReverseTestHelper<T>(ImmutableSegmentedList<T> list, int index, int count); 531private protected abstract List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list); 533private protected abstract List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, Comparison<T> comparison); 535private protected abstract List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, IComparer<T>? comparer); 537private protected abstract List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, int index, int count, IComparer<T>? comparer); 546/// Asserts that the <see cref="ImmutableSegmentedList{T}"/> or <see cref="ImmutableSegmentedList{T}.Builder"/>'s 569private void TrueForAllTestHelper<T>(ImmutableSegmentedList<T> list, Predicate<T> test)
Collections\ImmutableSegmentedListBuilderTest.cs (57)
28ImmutableSegmentedList<string>.Builder builder = ImmutableSegmentedList.CreateBuilder<string>(); 35var builder = ImmutableSegmentedList<int>.Empty.ToBuilder(); 44var list = builder.ToImmutable(); 56var list = ImmutableSegmentedList<int>.Empty.Add(1); 67var list2 = builder.ToImmutable(); 82var mutable = ImmutableSegmentedList<int>.Empty.ToBuilder(); 83var immutable1 = mutable.ToImmutable(); 87var immutable2 = mutable.ToImmutable(); 96var builder = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(1, 10)).ToBuilder(); 118var collection = ImmutableSegmentedList<int>.Empty.Add(1); 123var newImmutable = builder.ToImmutable(); 131var mutable = ImmutableSegmentedList<int>.Empty.ToBuilder(); 144var mutable = ImmutableSegmentedList<int>.Empty.ToBuilder(); 161var mutable = ImmutableSegmentedList<int>.Empty.ToBuilder(); 175var mutable = ImmutableSegmentedList<int>.Empty.ToBuilder(); 207var mutable = ImmutableSegmentedList<int>.Empty.ToBuilder(); 359ImmutableSegmentedList<string>.Builder builder = ImmutableSegmentedList.CreateBuilder<string>(); 379var list = new[] { 1, 2, 3 }.ToImmutableSegmentedList(); 380var builder = new ImmutableSegmentedList<int>.Builder(list); 395var list = new[] { 1, 2, 3 }.ToImmutableSegmentedList(); 396var builder = new ImmutableSegmentedList<int>.Builder(list); 404ImmutableSegmentedList<int>.Builder builder = ImmutableSegmentedList.CreateBuilder<int>(); 409var list = builder.ToImmutableSegmentedList(); 422ImmutableSegmentedList<int>.Builder? nullBuilder = null; 428return ImmutableSegmentedList<T>.Empty.AddRange(contents).ToBuilder(); 431private protected override void RemoveAllTestHelper<T>(ImmutableSegmentedList<T> list, Predicate<T> test) 442private protected override void ReverseTestHelper<T>(ImmutableSegmentedList<T> list, int index, int count) 451internal override IReadOnlyList<T> GetListQuery<T>(ImmutableSegmentedList<T> list) 456private protected override ImmutableSegmentedList<TOutput> ConvertAllImpl<T, TOutput>(ImmutableSegmentedList<T> list, Converter<T, TOutput> converter) 459private protected override void ForEachImpl<T>(ImmutableSegmentedList<T> list, Action<T> action) 462private protected override ImmutableSegmentedList<T> GetRangeImpl<T>(ImmutableSegmentedList<T> list, int index, int count) 465private protected override void CopyToImpl<T>(ImmutableSegmentedList<T> list, T[] array) 468private protected override void CopyToImpl<T>(ImmutableSegmentedList<T> list, T[] array, int arrayIndex) 471private protected override void CopyToImpl<T>(ImmutableSegmentedList<T> list, int index, T[] array, int arrayIndex, int count) 474private protected override bool ExistsImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 477private protected override T? FindImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 481private protected override ImmutableSegmentedList<T> FindAllImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 484private protected override int FindIndexImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 487private protected override int FindIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, Predicate<T> match) 490private protected override int FindIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, int count, Predicate<T> match) 493private protected override T? FindLastImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 497private protected override int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 500private protected override int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, Predicate<T> match) 503private protected override int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, int count, Predicate<T> match) 506private protected override bool TrueForAllImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> test) 509private protected override int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, T item) 512private protected override int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, T item, IComparer<T>? comparer) 515private protected override int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, int index, int count, T item, IComparer<T>? comparer) 518private protected override List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list) 525private protected override List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, Comparison<T> comparison) 532private protected override List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, IComparer<T>? comparer) 539private protected override List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, int index, int count, IComparer<T>? comparer)
Collections\ImmutableSegmentedListTest.cs (112)
43var actual = ImmutableSegmentedList<int>.Empty; 107var empty = ImmutableSegmentedList<GenericParameterHelper?>.Empty; 108Assert.True(IsSame(empty, ImmutableSegmentedList<GenericParameterHelper>.Empty)); 126var list = ImmutableSegmentedList<int>.Empty; 139var bulkList = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(1, 10).Select(i => i * 10)); 146var list = ImmutableSegmentedList<int>.Empty; 149list = list.AddRange(ImmutableSegmentedList<int>.Empty.AddRange(new[] { 6, 7, 8 })); 151list = list.AddRange(ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(9, 1000))); 158var list = ImmutableSegmentedList<int>.Empty; 159ImmutableSegmentedList<int>.Builder builder = ImmutableSegmentedList.CreateBuilder<int>(); 170var emptyList = ImmutableSegmentedList.Create<string>(); 176var nonEmptyListDefaultComparer = ImmutableSegmentedList.Create("5"); 193var list = ImmutableSegmentedList<int>.Empty; 245var list = ImmutableSegmentedList<int>.Empty; 269var list = ImmutableSegmentedList.Create(1); 278var list = ImmutableSegmentedList<int>.Empty; 294var list = ImmutableSegmentedList<int>.Empty; 295var nonEmptyList = ImmutableSegmentedList.Create(1); 301list = list.InsertRange(2, ImmutableSegmentedList<int>.Empty); 302list = list.InsertRange(3, ImmutableSegmentedList<int>.Empty.InsertRange(0, Enumerable.Range(4, 100))); 312var list = ImmutableSegmentedList<GenericParameterHelper?>.Empty; 332var collection = ImmutableSegmentedList.Create(1, 2, 3); 333var modified = collection.Remove(2, null); 345ImmutableSegmentedList<int> list = ImmutableSegmentedList<int>.Empty; 369System.Collections.Immutable.IImmutableList<int> list2 = ImmutableSegmentedList<int>.Empty; 396var list = ImmutableSegmentedList<int>.Empty; 415var list = ImmutableSegmentedList<int>.Empty; 422var list = ImmutableSegmentedList<int>.Empty; 450var list = ImmutableSegmentedList<string>.Empty; 473var list = ImmutableSegmentedList.CreateRange(Enumerable.Range(1, 3)); 525var list = ImmutableSegmentedList<int>.Empty.Add(3).Add(5).Add(8); 534list = ImmutableSegmentedList<int>.Empty.Add(3).Add(3).Add(5); 544var list = ImmutableSegmentedList.Create(new Person { Name = "Andrew", Age = 20 }); 546var updatedList = list.Replace(newAge, newAge, new NameOnlyEqualityComparer()); 562Assert.Throws<ArgumentException>("oldValue", () => ImmutableSegmentedList<int>.Empty.Replace(5, 3)); 568Assert.False(ImmutableSegmentedList<int>.Empty.Equals(null)); 569Assert.False(ImmutableSegmentedList<int>.Empty.Equals("hi")); 570Assert.True(ImmutableSegmentedList<int>.Empty.Equals(ImmutableSegmentedList<int>.Empty)); 571Assert.False(ImmutableSegmentedList<int>.Empty.Add(3).Equals(ImmutableSegmentedList<int>.Empty.Add(3))); 579ImmutableSegmentedList<string> list = ImmutableSegmentedList.Create<string>(); 595ImmutableSegmentedList<string> list = new[] { "a", "b" }.ToImmutableSegmentedList(); 605var list = ImmutableSegmentedList.Create("a"); 612Assert.Throws<ArgumentNullException>("match", () => ImmutableSegmentedList<int>.Empty.RemoveAll(null!)); 618Assert.True(ImmutableSegmentedList<int>.Empty.RemoveRange(0, 0).IsEmpty); 620var list = ImmutableSegmentedList.Create(1, 2, 3); 632var list = ImmutableSegmentedList.Create(1, 2, 3); 633var removed2eq = list.RemoveRange(new[] { 2 }, null); 641var list = ImmutableSegmentedList.Create(1, 2, 3); 644ImmutableSegmentedList<int> removed2 = list.RemoveRange(new[] { 2 }); 648ImmutableSegmentedList<int> removed13 = list.RemoveRange(new[] { 1, 3, 5 }); 656var listWithDuplicates = ImmutableSegmentedList.Create(1, 2, 2, 3); 667var list = ImmutableSegmentedList.Create("a"); 689var collection = ImmutableSegmentedList.Create(1); 714var emptyList = ImmutableSegmentedList.Create<int>(); 717var populatedList = ImmutableSegmentedList.Create(3, 2, 1); 724var emptyList = ImmutableSegmentedList.Create<int>(); 729var listOfOne = emptyList.Add(5); 773ImmutableSegmentedList<double> list = ImmutableSegmentedList.Create<double>(1, 2, 3); 815var list = new[] { 1, 2, 3 }.ToImmutableSegmentedList(); 830var list = new[] { 1, 2, 3 }.ToImmutableSegmentedList(); 837return ImmutableSegmentedList<T>.Empty.AddRange(contents); 840private protected override void RemoveAllTestHelper<T>(ImmutableSegmentedList<T> list, Predicate<T> test) 844var actual = list.RemoveAll(test); 848private protected override void ReverseTestHelper<T>(ImmutableSegmentedList<T> list, int index, int count) 852var actual = list.Reverse(index, count); 856private protected override List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list) 861private protected override List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, Comparison<T> comparison) 866private protected override List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, IComparer<T>? comparer) 871private protected override List<T> SortTestHelper<T>(ImmutableSegmentedList<T> list, int index, int count, IComparer<T>? comparer) 876internal override IReadOnlyList<T> GetListQuery<T>(ImmutableSegmentedList<T> list) 881private protected override ImmutableSegmentedList<TOutput> ConvertAllImpl<T, TOutput>(ImmutableSegmentedList<T> list, Converter<T, TOutput> converter) 884private protected override void ForEachImpl<T>(ImmutableSegmentedList<T> list, Action<T> action) 887private protected override ImmutableSegmentedList<T> GetRangeImpl<T>(ImmutableSegmentedList<T> list, int index, int count) 890private protected override void CopyToImpl<T>(ImmutableSegmentedList<T> list, T[] array) 893private protected override void CopyToImpl<T>(ImmutableSegmentedList<T> list, T[] array, int arrayIndex) 896private protected override void CopyToImpl<T>(ImmutableSegmentedList<T> list, int index, T[] array, int arrayIndex, int count) 899private protected override bool ExistsImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 902private protected override T? FindImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 906private protected override ImmutableSegmentedList<T> FindAllImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 909private protected override int FindIndexImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 912private protected override int FindIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, Predicate<T> match) 915private protected override int FindIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, int count, Predicate<T> match) 918private protected override T? FindLastImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 922private protected override int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> match) 925private protected override int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, Predicate<T> match) 928private protected override int FindLastIndexImpl<T>(ImmutableSegmentedList<T> list, int startIndex, int count, Predicate<T> match) 931private protected override bool TrueForAllImpl<T>(ImmutableSegmentedList<T> list, Predicate<T> test) 934private protected override int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, T item) 937private protected override int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, T item, IComparer<T>? comparer) 940private protected override int BinarySearchImpl<T>(ImmutableSegmentedList<T> list, int index, int count, T item, IComparer<T>? comparer)
Collections\ImmutablesTestBase.cs (2)
55if (first is ImmutableSegmentedList<T> firstSegmented 56&& second is ImmutableSegmentedList<T> secondSegmented)
Collections\IndexOfTests.cs (4)
50var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(100, 5).Concat(Enumerable.Range(100, 5))); 118var list = ImmutableSegmentedList<int>.Empty.AddRange(Enumerable.Range(100, 5).Concat(Enumerable.Range(100, 5)));
Collections\SegmentedCollectionsMarshalTests.cs (3)
440ImmutableSegmentedList<T> immutableList = SegmentedCollectionsMarshal.AsImmutableSegmentedList(list); 483SegmentedList<T>? list = SegmentedCollectionsMarshal.AsSegmentedList(ImmutableSegmentedList<T>.Empty); 506ImmutableSegmentedList<T> immutableList = ImmutableSegmentedList.Create(new T[17]);